On 7/6/07, Arnd Bergmann <[EMAIL PROTECTED]> 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. [EMAIL PROTECTED] (403) 399-0195 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev