[U-Boot] [PATCH] ulpi: add generic ULPI functionality

Marek Vasut marek.vasut at gmail.com
Sun Nov 6 00:13:52 CET 2011


> 2011/11/5 Marek Vasut <marek.vasut at gmail.com>
> 
> > > +int ulpi_wait(struct usb_ehci *ehci, u32 ulpi_value, u32 ulpi_mask)
> > 
> > So this works only with EHCI? How generic is it then ?
> 
> I thought until now that ULPI is EHCI-dependent, but isn't... Ok, what else
> should be supported? OHCI? I haven't any hardware to test it, but I could
> give it a try.

What about xHCI? I have no idea about OHCI, but why won't you be able to have 
OHCI and ULPI PHY?
> 
> > > +void ulpi_iface_ctrl_flags
> > > +     (struct usb_ehci *ehci, struct ulpi_regs *ulpi, int access_mode,
> > 
> > u32
> > 
> > > flags) +{
> > > +     switch (access_mode) {
> > > +     case WRITE:
> > > +             ulpi_write(ehci, (u32)&ulpi->iface_ctrl_write, flags);
> > > +             break;
> > > +     case SET:
> > > +             ulpi_write(ehci, (u32)&ulpi->iface_ctrl_set, flags);
> > > +             break;
> > > +     case CLEAR:
> > > +             ulpi_write(ehci, (u32)&ulpi->iface_ctrl_clear, flags);
> > > +             break;
> > > +     }
> > > +
> > > +}
> > 
> > Is this crap from linux or something?
> 
> No, Linux has offset-based access to ULPI registers, some structure
> otg_transceiver, where the driver sets the bits which it wants to be set in
> ULPI registers (if I understand it well) and family of functions, which set
> bits according to informations in otg_transceiver.

Ok, you have writel() functions, why do you need this switch stuff ?


More information about the U-Boot mailing list