[PATCH] Add USB support to mpc8349-mitx board port

Grant Likely grant.likely at secretlab.ca
Sat Jul 7 15:46:48 EST 2007


On 7/6/07, Arnd Bergmann <arnd at arndb.de> wrote:
> On Saturday 07 July 2007, Grant Likely wrote:
> > --- a/arch/powerpc/platforms/83xx/mpc834x_itx.c
> > +++ b/arch/powerpc/platforms/83xx/mpc834x_itx.c
> > @@ -63,6 +63,8 @@ static void __init mpc834x_itx_setup_arch(void)
> >
> > ppc_md.pci_exclude_device = mpc83xx_exclude_device;
> > #endif
> > +
> > +mpc834x_usb_cfg();
> > }
>
> Why is that necessary? Shouldn't there be an of_platform_driver that
> simply does all the setup automatically if the device is present?

This call is actually for SoC setup stuff.  There are actually 2 USB
engines on the SoC, and this call figures out what mode the pins are
supposed to be in.  I think this stuff firmly falls into the platform
setup arena since it is highly chip specific.

You bring up a good point though.  The current usb support code in
sysdev/fsl_soc.c uses arch_initcall(fsl_usb_of_init) to go searching
for USB interfaces in the device tree, which are EHCI (and sometimes
OTG) compatible.  fsl_usb_of_init calls
platform_device_register_simple() for each USB device found which is
kind of a round about way of doing things.  That should probably be
depreciated and an of_platform_device binding should be added to the
EHCI driver.

This same comment probably goes for the other arch_initcall functions
in fsl_soc.c which do exactly the same thing for other devices.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195



More information about the Linuxppc-dev mailing list