Hi Alan, On 11/26/2011 02:27 AM, Alan Stern wrote: > On Sat, 26 Nov 2011, Hauke Mehrtens wrote: > >>> Main question would be whether a linux device driver can provide >>> multiple system functions. I tend to say it can. So I would suggest to >>> have a single device driver providing OHCI and EHCI functionality. >> >> @USB guys, how do I design a driver for a linux device providing ohci >> and ehci functionality at the same time. The device has two address >> spaces one for ehci and one for ohci functions. > > How many IRQ lines? The ehci and ohci controller are sharing one IRQ line. > > And incidentally, in what sense is this _one_ device? Are you sure > it's not _two_ devices in one package? This is an SoC, so in hardware it is a chip with many functionality. On the internal bus it is connected as one device, which offers two address spaces. I do not have access to the detailed hardware specs just some other driver source code. > >> I thought about registering one controller (ehci or ohci) with >> usb_create_shared_hcd(). The code then will be in an own module and not >> in echi_hcd.ko and ochi_hcd.ko like for pci, I hope this works. >> Is there a better solution to do this, is there an other driver with the >> same problem already solved? > > I don't know of any other driver that does this. Your best solution is > probably write a driver that registers two child platform devices, and > write two corresponding platform drivers, one for the EHCI part and one > for the OHCI part. Thanks for this tip. I did this and it is working nicely. It has an other advantage, for the ssb bus I was able to use the same platform drivers as used for the bcma bus. > > Alan Stern > Hauke -- 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