Re: [PATCH 2/3 v6] arm: omap: am335x: enable phy controls

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

 



Hi,

On Tue, May 22, 2012 at 12:36 AM, Felipe Balbi <balbi@xxxxxx> wrote:
> Hi,
>
> On Mon, May 07, 2012 at 06:31:28AM +0000, Gupta, Ajay Kumar wrote:
>> Hi
>> > On Wed, May 02, 2012 at 10:03:10AM +0000, Gupta, Ajay Kumar wrote:
>> > > Hi,
>> > >
>> > > [..]
>> > > > > > > + static u8 ti816x, ti814x, ti81xx, am33xx, once;
>> > > > > > > +
>> > > > > > > + if (!once) {
>> > > > > > > +         ti816x = cpu_is_ti816x();
>> > > > > > > +         ti814x = cpu_is_ti814x();
>> > > > > > > +         ti81xx = cpu_is_ti81xx();
>> > > > > > > +         am33xx = cpu_is_am33xx();
>> > > > > > > +         once = 1;
>> > > > > > > + }
>> > > > > >
>> > > > > > wow!!! This is so wrong... This whole omap_phy_internal needs to
>> > > > become
>> > > > > > a driver. I'm not taking this patch, sorry. Only the next one,
>> > if it
>> > > > > > compiles properly.
>> > > > >
>> > > > > I understand you have been asking for a driver for
>> > omap_phy_internal
>> > > > but
>> > > > > the same time this patch and above change was based on feedback
>> > from
>> > >
>> > > [...]
>> > >
>> > > > Most likely you have a revision register around to test against it
>> > and,
>> > >
>> > > Yes, correct, revision register can be used and so cpu_is_xxx check
>> > can be dropped.
>> > >
>> > > > even if you decide not to use the revision resgister (why would you
>> > even decided
>> > > > that ?) you don't need 5 u8 variables for this. You could have
>> > something
>> > > > like:
>> > > >
>> > > > u8 features = 0;
>> > > >
>> > > > if (cpu_is_ti816x())
>> > > >         features |= OMAP_PHY_HAS_PWRDN_BITS;
>> > > >
>> > > > then, when you need to check for your usbphycfg register, you could:
>> > > >
>> > > > if (features & OMAP_PHY_HAS_PWRDN_BITS) {
>> > > >         usbphycfg &= ~(USBPHY_CM_PWRDN | USBPHY_OTG_PWRDN
>> > > >                         | USBPHY_DPINPUT | USBPHY_DMINPUT);
>> > > >         usbphycfg |= (USBPHY_OTGVDET_EN | USBPHY_OTGSESSEND_EN
>> > > >                         | USBPHY_DPOPBUFCTL | USBPHY_DMOPBUFCTL);
>> > > > } else {
>> > > >         usbphycfg |= TI816X_USBPHY0_NORMAL_MODE;
>> > > >         usbphycfg &= ~TI816X_USBPHY_REFCLK_OSC;
>> > > > }
>> > > >
>> > > > Ideally, though, this would be done by matching against a revision
>> > > > register and completely drop the CPU tests.
>> > >
>> > > Agree. But we need to first kill omap_phy_internal and add a separate
>> > > driver for the same and then add phy control support for ti81xx/am33xx
>> > so
>> > > I think it will have to wait longer.
>> >
>> > why ? You don't need a "driver" to be able to read a revision register.
>> > You already read/write to many registers without this file being using
>> > any of the driver model infrastructure. Still, it can wait a little
>> > longer, no problems.
>>
>> If this file is not following any driver model then why to allow to even
>> grow it further. We should not have allowed the omap4 phy control at first
>> place itself.
>
> patches fixing legacy stuff are highly welcome, you have no idea ;-)
> Still, I believe Kishon has a version of this converted to a proper PHY
> driver. Kishon, do I understand you correctly ?

Thats right. All these PHY specific settings should be done in phy
driver and for SCM specific settings, Eduardo has a version of it.

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

  Powered by Linux