[Letux-kernel] [PATCH] phy-twl4030-usb: initialize charging-related stuff via pm_runtime

Tony Lindgren tony at atomide.com
Wed Aug 24 16:46:39 CEST 2016


* Andreas Kemnade <andreas at kemnade.info> [160824 01:05]:
> On Tue, 23 Aug 2016 15:59:06 -0700
> Tony Lindgren <tony at atomide.com> wrote:
> 
> > * Andreas Kemnade <andreas at kemnade.info> [160822 13:10]:
> > > --- a/drivers/phy/phy-twl4030-usb.c
> > > +++ b/drivers/phy/phy-twl4030-usb.c
> > > @@ -469,6 +469,11 @@ static int __maybe_unused
> > > twl4030_usb_runtime_resume(struct device *dev)
> > > (PHY_CLK_CTRL_CLOCKGATING_EN | PHY_CLK_CTRL_CLK32K_EN));
> > >  
> > > +	twl4030_i2c_access(twl, 1);
> > > +	twl4030_usb_set_mode(twl, twl->usb_mode);
> > > +	if (twl->usb_mode == T2_USB_MODE_ULPI)
> > > +		twl4030_i2c_access(twl, 0);
> > > +	mdelay(50);
> > >  	return 0;
> > >  }
> > >  
> > 
> > Can you check for some register instead of the mdelay?
> > 
> I am quoting the TPS65950 TRM here (page 443):
> 
> > "The software must set the POWER_CTRL[5] OTG_EN bit to 1 at least 50
> > ms before forcing the BCIMFSTS4[2] USBFASTMCHG bit to 1."
> 
> So the answer is: no

Oh OK, can you please add a comment for that to the code for
the delay?

Also, since we're using threaded irq msleep() should work here
instead of mdelay()?

Regards,

Tony


More information about the Letux-kernel mailing list