diff options
| -rw-r--r-- | drivers/usb/renesas_usbhs/common.c | 7 | ||||
| -rw-r--r-- | include/linux/usb/renesas_usbhs.h | 8 | 
2 files changed, 15 insertions, 0 deletions
diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index b4cf555ce58..17bf1f74377 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c @@ -291,18 +291,25 @@ static u32 usbhsc_default_pipe_type[] = {   */  static void usbhsc_power_ctrl(struct usbhs_priv *priv, int enable)  { +	struct platform_device *pdev = usbhs_priv_to_pdev(priv);  	struct device *dev = usbhs_priv_to_dev(priv);  	if (enable) {  		/* enable PM */  		pm_runtime_get_sync(dev); +		/* enable platform power */ +		usbhs_platform_call(priv, power_ctrl, pdev, priv->base, enable); +  		/* USB on */  		usbhs_sys_clock_ctrl(priv, enable);  	} else {  		/* USB off */  		usbhs_sys_clock_ctrl(priv, enable); +		/* disable platform power */ +		usbhs_platform_call(priv, power_ctrl, pdev, priv->base, enable); +  		/* disable PM */  		pm_runtime_put_sync(dev);  	} diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h index c9fceb9f769..0d3f9887925 100644 --- a/include/linux/usb/renesas_usbhs.h +++ b/include/linux/usb/renesas_usbhs.h @@ -67,6 +67,14 @@ struct renesas_usbhs_platform_callback {  	/*  	 * option:  	 * +	 * for board specific clock control +	 */ +	void (*power_ctrl)(struct platform_device *pdev, +			   void __iomem *base, int enable); + +	/* +	 * option: +	 *  	 * Phy reset for platform  	 */  	void (*phy_reset)(struct platform_device *pdev);  |