mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-26 14:14:01 +08:00
f0ede2c628
The old way of usb wakeup only supports platform with single SSUSB IP, such as mt8173, but mt2712 has two SSUSB IPs, so rebuild its flow and also supports the new glue layer of usb wakeup on mt2712 which is different from mt8173. Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
105 lines
2.3 KiB
C
105 lines
2.3 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* mtu3_dr.h - dual role switch and host glue layer header
|
|
*
|
|
* Copyright (C) 2016 MediaTek Inc.
|
|
*
|
|
* Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
|
|
*/
|
|
|
|
#ifndef _MTU3_DR_H_
|
|
#define _MTU3_DR_H_
|
|
|
|
#if IS_ENABLED(CONFIG_USB_MTU3_HOST) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
|
|
|
|
int ssusb_host_init(struct ssusb_mtk *ssusb, struct device_node *parent_dn);
|
|
void ssusb_host_exit(struct ssusb_mtk *ssusb);
|
|
int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb,
|
|
struct device_node *dn);
|
|
int ssusb_host_enable(struct ssusb_mtk *ssusb);
|
|
int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend);
|
|
void ssusb_wakeup_set(struct ssusb_mtk *ssusb, bool enable);
|
|
|
|
#else
|
|
|
|
static inline int ssusb_host_init(struct ssusb_mtk *ssusb,
|
|
|
|
struct device_node *parent_dn)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void ssusb_host_exit(struct ssusb_mtk *ssusb)
|
|
{}
|
|
|
|
static inline int ssusb_wakeup_of_property_parse(
|
|
struct ssusb_mtk *ssusb, struct device_node *dn)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline int ssusb_host_enable(struct ssusb_mtk *ssusb)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline int ssusb_wakeup_enable(struct ssusb_mtk *ssusb)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void ssusb_wakeup_disable(struct ssusb_mtk *ssusb)
|
|
{}
|
|
|
|
#endif
|
|
|
|
|
|
#if IS_ENABLED(CONFIG_USB_MTU3_GADGET) || IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
|
|
int ssusb_gadget_init(struct ssusb_mtk *ssusb);
|
|
void ssusb_gadget_exit(struct ssusb_mtk *ssusb);
|
|
#else
|
|
static inline int ssusb_gadget_init(struct ssusb_mtk *ssusb)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void ssusb_gadget_exit(struct ssusb_mtk *ssusb)
|
|
{}
|
|
#endif
|
|
|
|
|
|
#if IS_ENABLED(CONFIG_USB_MTU3_DUAL_ROLE)
|
|
int ssusb_otg_switch_init(struct ssusb_mtk *ssusb);
|
|
void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb);
|
|
int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on);
|
|
void ssusb_set_force_mode(struct ssusb_mtk *ssusb,
|
|
enum mtu3_dr_force_mode mode);
|
|
|
|
#else
|
|
|
|
static inline int ssusb_otg_switch_init(struct ssusb_mtk *ssusb)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb)
|
|
{}
|
|
|
|
static inline int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void
|
|
ssusb_set_force_mode(struct ssusb_mtk *ssusb, enum mtu3_dr_force_mode mode)
|
|
{}
|
|
|
|
#endif
|
|
|
|
#endif /* _MTU3_DR_H_ */
|