2 * mtu3_dr.h - dual role switch and host glue layer header
4 * Copyright (C) 2016 MediaTek Inc.
6 * Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
8 * This software is licensed under the terms of the GNU General Public
9 * License version 2, as published by the Free Software Foundation, and
10 * may be copied, distributed, and modified under those terms.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
22 #if IS_ENABLED(CONFIG_USB_MTU3_HOST) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
24 int ssusb_host_init(struct ssusb_mtk
*ssusb
, struct device_node
*parent_dn
);
25 void ssusb_host_exit(struct ssusb_mtk
*ssusb
);
26 int ssusb_wakeup_of_property_parse(struct ssusb_mtk
*ssusb
,
27 struct device_node
*dn
);
28 int ssusb_host_enable(struct ssusb_mtk
*ssusb
);
29 int ssusb_host_disable(struct ssusb_mtk
*ssusb
, bool suspend
);
30 int ssusb_wakeup_enable(struct ssusb_mtk
*ssusb
);
31 void ssusb_wakeup_disable(struct ssusb_mtk
*ssusb
);
35 static inline int ssusb_host_init(struct ssusb_mtk
*ssusb
,
37 struct device_node
*parent_dn
)
42 static inline void ssusb_host_exit(struct ssusb_mtk
*ssusb
)
45 static inline int ssusb_wakeup_of_property_parse(
46 struct ssusb_mtk
*ssusb
, struct device_node
*dn
)
51 static inline int ssusb_host_enable(struct ssusb_mtk
*ssusb
)
56 static inline int ssusb_host_disable(struct ssusb_mtk
*ssusb
, bool suspend
)
61 static inline int ssusb_wakeup_enable(struct ssusb_mtk
*ssusb
)
66 static inline void ssusb_wakeup_disable(struct ssusb_mtk
*ssusb
)
72 #if IS_ENABLED(CONFIG_USB_MTU3_GADGET) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
73 int ssusb_gadget_init(struct ssusb_mtk
*ssusb
);
74 void ssusb_gadget_exit(struct ssusb_mtk
*ssusb
);
76 static inline int ssusb_gadget_init(struct ssusb_mtk
*ssusb
)
81 static inline void ssusb_gadget_exit(struct ssusb_mtk
*ssusb
)
86 #if IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
87 int ssusb_otg_switch_init(struct ssusb_mtk
*ssusb
);
88 void ssusb_otg_switch_exit(struct ssusb_mtk
*ssusb
);
89 int ssusb_set_vbus(struct otg_switch_mtk
*otg_sx
, int is_on
);
93 static inline int ssusb_otg_switch_init(struct ssusb_mtk
*ssusb
)
98 static inline void ssusb_otg_switch_exit(struct ssusb_mtk
*ssusb
)
101 static inline int ssusb_set_vbus(struct otg_switch_mtk
*otg_sx
, int is_on
)
108 #endif /* _MTU3_DR_H_ */