Loading...
Note: File does not exist in v3.1.
1/*
2 * mtu3_dr.h - dual role switch and host glue layer header
3 *
4 * Copyright (C) 2016 MediaTek Inc.
5 *
6 * Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
7 *
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.
11 *
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.
16 *
17 */
18
19#ifndef _MTU3_DR_H_
20#define _MTU3_DR_H_
21
22#if IS_ENABLED(CONFIG_USB_MTU3_HOST) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
23
24int ssusb_host_init(struct ssusb_mtk *ssusb, struct device_node *parent_dn);
25void ssusb_host_exit(struct ssusb_mtk *ssusb);
26int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb,
27 struct device_node *dn);
28int ssusb_host_enable(struct ssusb_mtk *ssusb);
29int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend);
30int ssusb_wakeup_enable(struct ssusb_mtk *ssusb);
31void ssusb_wakeup_disable(struct ssusb_mtk *ssusb);
32
33#else
34
35static inline int ssusb_host_init(struct ssusb_mtk *ssusb,
36
37 struct device_node *parent_dn)
38{
39 return 0;
40}
41
42static inline void ssusb_host_exit(struct ssusb_mtk *ssusb)
43{}
44
45static inline int ssusb_wakeup_of_property_parse(
46 struct ssusb_mtk *ssusb, struct device_node *dn)
47{
48 return 0;
49}
50
51static inline int ssusb_host_enable(struct ssusb_mtk *ssusb)
52{
53 return 0;
54}
55
56static inline int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend)
57{
58 return 0;
59}
60
61static inline int ssusb_wakeup_enable(struct ssusb_mtk *ssusb)
62{
63 return 0;
64}
65
66static inline void ssusb_wakeup_disable(struct ssusb_mtk *ssusb)
67{}
68
69#endif
70
71
72#if IS_ENABLED(CONFIG_USB_MTU3_GADGET) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
73int ssusb_gadget_init(struct ssusb_mtk *ssusb);
74void ssusb_gadget_exit(struct ssusb_mtk *ssusb);
75#else
76static inline int ssusb_gadget_init(struct ssusb_mtk *ssusb)
77{
78 return 0;
79}
80
81static inline void ssusb_gadget_exit(struct ssusb_mtk *ssusb)
82{}
83#endif
84
85
86#if IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
87int ssusb_otg_switch_init(struct ssusb_mtk *ssusb);
88void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb);
89int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on);
90
91#else
92
93static inline int ssusb_otg_switch_init(struct ssusb_mtk *ssusb)
94{
95 return 0;
96}
97
98static inline void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb)
99{}
100
101static inline int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on)
102{
103 return 0;
104}
105
106#endif
107
108#endif /* _MTU3_DR_H_ */