Re: [PATCH] usb: musb: omap2430: Add support for idling phy when musb is idle

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 24, 2019 at 04:34:26PM -0700, Tony Lindgren wrote:
> I noticed that musb is blocking core retention for omap4 unlike for
> omap3. This is because for omap3 we have phy-twl4030-usb implement
> it's own PM runtime to handle errata "VUSB3V1 VBUS overvoltage
> debouncer not working when the PHY is powered down". That is done
> in order to keep the USB PHY powered when phy-twl4030-usb is loaded.
> 
> For the other USB PHYs, we need to enable and disable the PHY based on
> musb PM runtime. With the session bit based PM runtime for musb core,
> we can now idle the USB PHY always when musb is idle.
> 
> Note that adding these calls will not affect the twl4030 driver
> as it's phy functions will just query the PHY state without powering
> the PHY on or off.
> 
> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> ---
>  drivers/usb/musb/omap2430.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
> --- a/drivers/usb/musb/omap2430.c
> +++ b/drivers/usb/musb/omap2430.c
> @@ -531,6 +531,9 @@ static int omap2430_runtime_suspend(struct device *dev)
>  
>  	omap2430_low_level_exit(musb);
>  
> +	phy_power_off(musb->phy);
> +	phy_exit(musb->phy);
> +
>  	return 0;
>  }
>  
> @@ -542,6 +545,9 @@ static int omap2430_runtime_resume(struct device *dev)
>  	if (!musb)
>  		return 0;
>  
> +	phy_init(musb->phy);
> +	phy_power_on(musb->phy);
> +
>  	omap2430_low_level_init(musb);
>  	musb_writel(musb->mregs, OTG_INTERFSEL,
>  		    musb->context.otg_interfsel);

Applied.

Thanks,
-Bin.



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux