linux/drivers/usb/mtu3/mtu3_dr.h
<<
>>
Prefs
   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_enable(struct ssusb_mtk *ssusb);
  20int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend);
  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_enable(struct ssusb_mtk *ssusb)
  42{
  43        return 0;
  44}
  45
  46static inline int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend)
  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);
  60#else
  61static inline int ssusb_gadget_init(struct ssusb_mtk *ssusb)
  62{
  63        return 0;
  64}
  65
  66static inline void ssusb_gadget_exit(struct ssusb_mtk *ssusb)
  67{}
  68#endif
  69
  70
  71#if IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
  72int ssusb_otg_switch_init(struct ssusb_mtk *ssusb);
  73void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb);
  74void ssusb_mode_manual_switch(struct ssusb_mtk *ssusb, int to_host);
  75int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on);
  76void ssusb_set_force_mode(struct ssusb_mtk *ssusb,
  77                          enum mtu3_dr_force_mode mode);
  78
  79#else
  80
  81static inline int ssusb_otg_switch_init(struct ssusb_mtk *ssusb)
  82{
  83        return 0;
  84}
  85
  86static inline void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb)
  87{}
  88
  89static inline void
  90ssusb_mode_manual_switch(struct ssusb_mtk *ssusb, int to_host) {}
  91
  92static inline int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on)
  93{
  94        return 0;
  95}
  96
  97static inline void
  98ssusb_set_force_mode(struct ssusb_mtk *ssusb, enum mtu3_dr_force_mode mode)
  99{}
 100
 101#endif
 102
 103#endif          /* _MTU3_DR_H_ */
 104