On Thu, May 6, 2010 at 1:18 PM, Anatolij Gustschin <agust@xxxxxxx> wrote: > Hi Grant, > > On Tue, 27 Apr 2010 10:51:21 -0600 > Grant Likely <grant.likely@xxxxxxxxxxxx> wrote: > >> On Tue, Apr 27, 2010 at 10:11 AM, Anatolij Gustschin <agust@xxxxxxx> wrote: >> > Factor out common code for registering a FSL EHCI platform >> > device into new fsl_usb2_register_device() function. This >> > is done to avoid code duplication while adding code for >> > instantiating of MPC5121 dual role USB platform devices. >> > Then, the subsequent patch can use >> > for_each_compatible_node(np, NULL, "fsl,mpc5121-usb2-dr") { >> > ... >> > fsl_usb2_register_device(); >> > } >> > >> > Signed-off-by: Anatolij Gustschin <agust@xxxxxxx> >> > Cc: Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx> >> > Cc: Grant Likely <grant.likely@xxxxxxxxxxxx> >> > --- >> > arch/powerpc/sysdev/fsl_soc.c | 231 +++++++++++++++++++--------------------- >> >> Hi Anatolij, >> >> Thanks for this work. However, I've got concerns. >> >> Forgive me for ragging on code that you didn't write, but this >> fsl_soc.c code for registering the USB device really doesn't belong >> here anymore. It should be part of the drivers/usb/host/ehci-fsl.c >> and the driver should do of-style binding (Which should be a lot >> easier if I manage to get the merge of platform bus and of_platform >> bus into 2.6.35). > > Now I moved the USB devices registration code to > drivers/usb/host/ehci-fsl.c and added of-style binding there. It > works for one platform driver based on your test-devicetree branch. > It seems I can't bind more than one driver to the device described > in the tree. But I need to bind at least 2 drivers, ehci-hcd and > fsl-usb2-udc. For USB OTG support I need additional one to be bound > to the same USB dual role device (also tree different drivers > simultaneously). > I also can't register UDC device in the ehci-fsl.c since registering > of the UDC device should also be possible independent of the EHCI-HDC > driver (for USB device support we do not need host controller driver). > Is it possible to bind more than one driver to the same device > simultaneously? If so, how can I implement this? No, the linux driver model can bind exactly one driver to a struct device. However, that doesn't mean you can't have multiple struct devices (in whatever form they come) to tell the Linux kernel about all the details of a single hardware device. >> This patch series makes the fsl_soc.c code even more complicated, and >> scatters what is essentially driver code over even more places in the >> arch/powerpc tree. I'm really not keen on it being merged in this >> form. > > Now I see one reason why it has been originally implemented > this way. Should be a solvable problem. The fsl_soc.c stuff was originally written simply because the infrastructure wasn't there for doing it any other way. We're long past that point now. I don't have time to dig into the details now (merge window and all), but ping me in a few weeks and I'll take another look to see if I can help you. g. -- 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