On Mon, Feb 13, 2012 at 09:40:26AM +0000, Gupta, Ajay Kumar wrote: > Hi, > > On Mon, Feb 13, 2012 at 04:26:19AM +0000, Gupta, Ajay Kumar wrote: > > > Hi, > > > > * Ajay Kumar Gupta <ajay.gupta@xxxxxx> [120207 19:55]: > > > > > Switch on the phy for am335x. > > > > > > > > > > Signed-off-by: Ajay Kumar Gupta <ajay.gupta@xxxxxx> > > > > > --- > > > > > arch/arm/mach-omap2/omap_phy_internal.c | 21 ++++++++++++++---- > > --- > > > > > 1 files changed, 14 insertions(+), 7 deletions(-) > > > > > > > > > > diff --git a/arch/arm/mach-omap2/omap_phy_internal.c > > > > > b/arch/arm/mach- > > > > omap2/omap_phy_internal.c > > > > > index 4c90477..7129408 100644 > > > > > --- a/arch/arm/mach-omap2/omap_phy_internal.c > > > > > +++ b/arch/arm/mach-omap2/omap_phy_internal.c > > > > > @@ -266,7 +266,11 @@ void ti81xx_musb_phy_power(u8 on) > > > > > void __iomem *scm_base = NULL; > > > > > u32 usbphycfg; > > > > > > > > > > - scm_base = ioremap(TI81XX_SCM_BASE, SZ_2K); > > > > > + if (cpu_is_ti81xx()) > > > > > + scm_base = ioremap(TI81XX_SCM_BASE, SZ_2K); > > > > > + else if (cpu_is_am33xx()) > > > > > + scm_base = ioremap(AM33XX_SCM_BASE, SZ_2K); > > > > > + > > > > > if (!scm_base) { > > > > > pr_err("system control module ioremap failed\n"); > > > > > return; > > > > > @@ -278,16 +282,19 @@ void ti81xx_musb_phy_power(u8 on) > > > > > if (cpu_is_ti816x()) { > > > > > usbphycfg |= TI816X_USBPHY0_NORMAL_MODE; > > > > > usbphycfg &= ~TI816X_USBPHY_REFCLK_OSC; > > > > > - } else if (cpu_is_ti814x()) { > > > > > - usbphycfg &= ~(USBPHY_CM_PWRDN | > > USBPHY_OTG_PWRDN > > > > > - | USBPHY_DPINPUT | USBPHY_DMINPUT); > > > > > - usbphycfg |= (USBPHY_OTGVDET_EN | > > USBPHY_OTGSESSEND_EN > > > > > - | USBPHY_DPOPBUFCTL | USBPHY_DMOPBUFCTL); > > > > > + } else if (cpu_is_ti814x() || cpu_is_am33xx()) { > > > > > + usbphycfg &= ~(USBPHY_CM_PWRDN | > > USBPHY_OTG_PWRDN); > > > > > + usbphycfg |= USBPHY_OTGVDET_EN | > > USBPHY_OTGSESSEND_EN; > > > > > + if (cpu_is_ti814x()) { > > > > > + usbphycfg &= ~(USBPHY_DPINPUT | > > > > USBPHY_DMINPUT); > > > > > + usbphycfg |= USBPHY_DPOPBUFCTL > > > > > + | USBPHY_DMOPBUFCTL; > > > > > + } > > > > > } > > > > > } else { > > > > > if (cpu_is_ti816x()) > > > > > usbphycfg &= ~TI816X_USBPHY0_NORMAL_MODE; > > > > > - else if (cpu_is_ti814x()) > > > > > + else if (cpu_is_ti814x() || cpu_is_am33xx()) > > > > > usbphycfg |= USBPHY_CM_PWRDN | > > USBPHY_OTG_PWRDN; > > > > > > > > > > > > > Please remove all the cpu_is_xxxx calls from the *_phy_power > > functions. > > > > You should need those only in *_phy_init to set the right flags > > > > once, not every time you enable or disable the phy. > > > > > > Tony, > > > > > > This is a common function used by ti814x, ti816x and am335x and they > > > have mostly the same bit map but a few bits are different so we would > > > need to have cpu_is_xxxx. > > > > > > We use this *_phy_power(1) for phy on/init and *_phy_power(0) for phy > > > off and don't have separate *_phy_init(). Even in that case we would > > > require > > > cpu_is_xxxx() as phy power down bit is different for ti816x and same > > > for ti814x and am335x. > > > > > > Please let me know how should we handle this. > > > > use cpu_is_xxxx() to set a flag, and check on the flag. > > Are you saying save the flags once in a local static flag and use > the same later on? that's correct. -- balbi
Attachment:
signature.asc
Description: Digital signature