phy: usb: Add support for wake and USB low power mode for 7211 S2/S5
Add support for 7211 USB wake. Disable all possible 7211 USB logic for S2/S5 if USB wake is not enabled. On the 7211, the XHCI wake signal was not connected properly and only goes to the USB1_USB1_CTRL_TP_DIAG1 diagonstic register. The workaround is to have VPU code running that polls for the proper bit in the DIAG register and to wake the system when the bit is asserted. Signed-off-by: Al Cooper <alcooperx@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
This commit is contained in:

committed by
Kishon Vijay Abraham I

parent
5dfe1cec58
commit
b0c0b66c0b
@@ -46,8 +46,6 @@ struct brcm_usb_init_ops {
|
||||
void (*uninit_xhci)(struct brcm_usb_init_params *params);
|
||||
int (*get_dual_select)(struct brcm_usb_init_params *params);
|
||||
void (*set_dual_select)(struct brcm_usb_init_params *params, int mode);
|
||||
void (*wake_enable)(struct brcm_usb_init_params *params,
|
||||
int enable);
|
||||
};
|
||||
|
||||
struct brcm_usb_init_params {
|
||||
@@ -62,6 +60,8 @@ struct brcm_usb_init_params {
|
||||
const u32 *usb_reg_bits_map;
|
||||
const struct brcm_usb_init_ops *ops;
|
||||
struct regmap *syscon_piarbctl;
|
||||
bool wake_enabled;
|
||||
bool suspend_with_clocks;
|
||||
};
|
||||
|
||||
void brcm_usb_dvr_init_7445(struct brcm_usb_init_params *params);
|
||||
@@ -145,13 +145,6 @@ static inline void brcm_usb_uninit_xhci(struct brcm_usb_init_params *ini)
|
||||
ini->ops->uninit_xhci(ini);
|
||||
}
|
||||
|
||||
static inline void brcm_usb_wake_enable(struct brcm_usb_init_params *ini,
|
||||
int enable)
|
||||
{
|
||||
if (ini->ops->wake_enable)
|
||||
ini->ops->wake_enable(ini, enable);
|
||||
}
|
||||
|
||||
static inline int brcm_usb_get_dual_select(struct brcm_usb_init_params *ini)
|
||||
{
|
||||
if (ini->ops->get_dual_select)
|
||||
|
Reference in New Issue
Block a user