]>
Commit | Line | Data |
---|---|---|
5fd54ace | 1 | // SPDX-License-Identifier: GPL-2.0 |
b3f4e727 CY |
2 | /* |
3 | * mtu3_dr.h - dual role switch and host glue layer header | |
4 | * | |
5 | * Copyright (C) 2016 MediaTek Inc. | |
6 | * | |
7 | * Author: Chunfeng Yun <chunfeng.yun@mediatek.com> | |
b3f4e727 CY |
8 | */ |
9 | ||
10 | #ifndef _MTU3_DR_H_ | |
11 | #define _MTU3_DR_H_ | |
12 | ||
d0ed062a | 13 | #if IS_ENABLED(CONFIG_USB_MTU3_HOST) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE) |
b3f4e727 CY |
14 | |
15 | int ssusb_host_init(struct ssusb_mtk *ssusb, struct device_node *parent_dn); | |
16 | void ssusb_host_exit(struct ssusb_mtk *ssusb); | |
17 | int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb, | |
18 | struct device_node *dn); | |
19 | int ssusb_host_enable(struct ssusb_mtk *ssusb); | |
20 | int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend); | |
f0ede2c6 | 21 | void ssusb_wakeup_set(struct ssusb_mtk *ssusb, bool enable); |
b3f4e727 CY |
22 | |
23 | #else | |
24 | ||
25 | static inline int ssusb_host_init(struct ssusb_mtk *ssusb, | |
26 | ||
27 | struct device_node *parent_dn) | |
28 | { | |
29 | return 0; | |
30 | } | |
31 | ||
32 | static inline void ssusb_host_exit(struct ssusb_mtk *ssusb) | |
33 | {} | |
34 | ||
35 | static inline int ssusb_wakeup_of_property_parse( | |
36 | struct ssusb_mtk *ssusb, struct device_node *dn) | |
37 | { | |
38 | return 0; | |
39 | } | |
40 | ||
41 | static inline int ssusb_host_enable(struct ssusb_mtk *ssusb) | |
42 | { | |
43 | return 0; | |
44 | } | |
45 | ||
46 | static inline int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend) | |
47 | { | |
48 | return 0; | |
49 | } | |
50 | ||
b926c1da | 51 | static inline void ssusb_wakeup_set(struct ssusb_mtk *ssusb, bool enable) |
b3f4e727 CY |
52 | {} |
53 | ||
54 | #endif | |
55 | ||
56 | ||
d0ed062a | 57 | #if IS_ENABLED(CONFIG_USB_MTU3_GADGET) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE) |
b3f4e727 CY |
58 | int ssusb_gadget_init(struct ssusb_mtk *ssusb); |
59 | void ssusb_gadget_exit(struct ssusb_mtk *ssusb); | |
60 | #else | |
61 | static inline int ssusb_gadget_init(struct ssusb_mtk *ssusb) | |
62 | { | |
63 | return 0; | |
64 | } | |
65 | ||
66 | static inline void ssusb_gadget_exit(struct ssusb_mtk *ssusb) | |
67 | {} | |
68 | #endif | |
69 | ||
d0ed062a CY |
70 | |
71 | #if IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE) | |
72 | int ssusb_otg_switch_init(struct ssusb_mtk *ssusb); | |
73 | void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb); | |
4aab6ad2 | 74 | void ssusb_mode_manual_switch(struct ssusb_mtk *ssusb, int to_host); |
d0ed062a | 75 | int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on); |
c776f2c3 CY |
76 | void ssusb_set_force_mode(struct ssusb_mtk *ssusb, |
77 | enum mtu3_dr_force_mode mode); | |
d0ed062a CY |
78 | |
79 | #else | |
80 | ||
81 | static inline int ssusb_otg_switch_init(struct ssusb_mtk *ssusb) | |
82 | { | |
83 | return 0; | |
84 | } | |
85 | ||
86 | static inline void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb) | |
87 | {} | |
88 | ||
4aab6ad2 CY |
89 | static inline void |
90 | ssusb_mode_manual_switch(struct ssusb_mtk *ssusb, int to_host) {} | |
91 | ||
d0ed062a CY |
92 | static inline int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on) |
93 | { | |
94 | return 0; | |
95 | } | |
96 | ||
c776f2c3 CY |
97 | static inline void |
98 | ssusb_set_force_mode(struct ssusb_mtk *ssusb, enum mtu3_dr_force_mode mode) | |
99 | {} | |
100 | ||
d0ed062a CY |
101 | #endif |
102 | ||
b3f4e727 | 103 | #endif /* _MTU3_DR_H_ */ |