mtu3_dr.h (2901B)
1/* SPDX-License-Identifier: GPL-2.0 */ 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> 8 */ 9 10#ifndef _MTU3_DR_H_ 11#define _MTU3_DR_H_ 12 13#if IS_ENABLED(CONFIG_USB_MTU3_HOST) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE) 14 15int ssusb_host_init(struct ssusb_mtk *ssusb, struct device_node *parent_dn); 16void ssusb_host_exit(struct ssusb_mtk *ssusb); 17int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb, 18 struct device_node *dn); 19int ssusb_host_resume(struct ssusb_mtk *ssusb, bool p0_skipped); 20int ssusb_host_suspend(struct ssusb_mtk *ssusb); 21void ssusb_wakeup_set(struct ssusb_mtk *ssusb, bool enable); 22 23#else 24 25static inline int ssusb_host_init(struct ssusb_mtk *ssusb, 26 27 struct device_node *parent_dn) 28{ 29 return 0; 30} 31 32static inline void ssusb_host_exit(struct ssusb_mtk *ssusb) 33{} 34 35static inline int ssusb_wakeup_of_property_parse( 36 struct ssusb_mtk *ssusb, struct device_node *dn) 37{ 38 return 0; 39} 40 41static inline int ssusb_host_resume(struct ssusb_mtk *ssusb, bool p0_skipped) 42{ 43 return 0; 44} 45 46static inline int ssusb_host_suspend(struct ssusb_mtk *ssusb) 47{ 48 return 0; 49} 50 51static inline void ssusb_wakeup_set(struct ssusb_mtk *ssusb, bool enable) 52{} 53 54#endif 55 56 57#if IS_ENABLED(CONFIG_USB_MTU3_GADGET) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE) 58int ssusb_gadget_init(struct ssusb_mtk *ssusb); 59void ssusb_gadget_exit(struct ssusb_mtk *ssusb); 60int ssusb_gadget_suspend(struct ssusb_mtk *ssusb, pm_message_t msg); 61int ssusb_gadget_resume(struct ssusb_mtk *ssusb, pm_message_t msg); 62bool ssusb_gadget_ip_sleep_check(struct ssusb_mtk *ssusb); 63 64#else 65static inline int ssusb_gadget_init(struct ssusb_mtk *ssusb) 66{ 67 return 0; 68} 69 70static inline void ssusb_gadget_exit(struct ssusb_mtk *ssusb) 71{} 72 73static inline int 74ssusb_gadget_suspend(struct ssusb_mtk *ssusb, pm_message_t msg) 75{ 76 return 0; 77} 78 79static inline int 80ssusb_gadget_resume(struct ssusb_mtk *ssusb, pm_message_t msg) 81{ 82 return 0; 83} 84 85static inline bool ssusb_gadget_ip_sleep_check(struct ssusb_mtk *ssusb) 86{ 87 return true; 88} 89 90#endif 91 92 93#if IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE) 94int ssusb_otg_switch_init(struct ssusb_mtk *ssusb); 95void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb); 96void ssusb_mode_switch(struct ssusb_mtk *ssusb, int to_host); 97int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on); 98void ssusb_set_force_mode(struct ssusb_mtk *ssusb, 99 enum mtu3_dr_force_mode mode); 100 101#else 102 103static inline int ssusb_otg_switch_init(struct ssusb_mtk *ssusb) 104{ 105 return 0; 106} 107 108static inline void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb) 109{} 110 111static inline void ssusb_mode_switch(struct ssusb_mtk *ssusb, int to_host) 112{} 113 114static inline int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on) 115{ 116 return 0; 117} 118 119static inline void 120ssusb_set_force_mode(struct ssusb_mtk *ssusb, enum mtu3_dr_force_mode mode) 121{} 122 123#endif 124 125#endif /* _MTU3_DR_H_ */