On 1/9/07, David Brownell <[EMAIL PROTECTED]> wrote: > On Tuesday 09 January 2007 2:41 pm, Meher wrote: > > Hi, > > I started going through the ohci-omap.c file and trying to make > > sense of the interfaces. I am stuck at the point where the interrupt > > handler is hooked with request_irq in the function, > > usb_hcd_omap_probe. Interrupt handler that is hooked is "usb_hcd_irq" > > which in turn calls driver->irq which turns out to be ohci_irq. > > Yes ... > > > > What is confusing to me is that OMAP USB is based on MUSB HDRC > > OTG core and its registers are not OHCI compatible (am I correct??). > > There are multiple OMAP chips. The ones that integrate the MUSB OTG > core (2430 and ISTR 3430) *also* have the same full speed USB support > that OMAP1 included ... > > But you can also use the musb_hdrc with a discrete "tusb6010" chip. > Or for that matter, with a DaVinci chip. (DaVinci combines a high > end video quality DSP with an ARM; it's not a mobile phone chip.) > Eventually I expect other (non-TI) chips to work with that driver. > (Presumably you've seen the nasty code from Mentor; IMO it's not even > worth considering use in any product, without first doing the cleanup > found in the musb_hdrc driver...) >
I am actually interested in the Davinci USB core but when I look at the drivers in drivers/usb/musb/ I have seen comments in the code like it is not implemented in the kernel HCD framework and it has to change some day. So I wanted to know the HCD framework and may be contribute in moving the musb code towards the HDC framework.. Is there any musb code that is HCD framework complaint? > > > So I expected a OMAP MUSB specific interrupt handler and low level > > functions to handle the MUSB registers for interrupts/FIFO handling > > etc., Can some one point me to where this stuff happens? > > I already did that when I said to look at drivers/usb/musb ... > > > > Also in a board view, when system is getting initialized, first > > usb_init function in drivers/core/usb.c is called and then respective > > HCD driver init methods are called?? > > From a board perspective the first thing that happens is that the > code in arch/arm/mach-omapX/board-Y.c gets called, and that will do > any pin configuration needed to cope with the USB in use on that > specific board. It will also create the platform device. > > Then MUCH later some host side usbcore mechanisms will initialize > their data structures. And after that, the driver probe() method > gets called -- either for musb_hdrc, for ohci-hcd, or omap_udc. > (The full speed OTG init is tricky though.) Yeah I have seen this from arch/arm/mach-davinci/board-davinci.c initializing the platform_deviec and setting up the resources etc. I beleve the platform devices should get initialized at startup without waiting for any event to occur right? I mean linux assumes platform devices exist at particular IO range and will try to communicate with them and initialize them at startup so as part of its __initcalls linux calls the probe function for the respective HCD's? > > - Dave > -- Regards, Meher ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel