On Fri, Sep 30, 2011 at 2:49 PM, Felipe Balbi <balbi@xxxxxx> wrote: > Hi, > > On Fri, Sep 30, 2011 at 02:45:32PM +0530, Munegowda, Keshava wrote: >> On Fri, Sep 30, 2011 at 1:04 PM, Felipe Balbi <balbi@xxxxxx> wrote: >> > Hi, >> > >> > On Fri, Sep 30, 2011 at 01:15:55AM -0600, Paul Walmsley wrote: >> >> > The hwmod structure of usb_host_hs and usb_tll are >> >> > retrieved and registered with omap device >> >> > >> >> > Signed-off-by: Keshava Munegowda <keshava_mgowda@xxxxxx> >> >> > Reviewed-by: Partha Basak <parthab@xxxxxxxxxxxx> >> >> > --- >> >> > arch/arm/mach-omap2/usb-host.c | 100 ++++++++++++++-------------------------- >> >> > 1 files changed, 34 insertions(+), 66 deletions(-) >> >> > >> >> > diff --git a/arch/arm/mach-omap2/usb-host.c b/arch/arm/mach-omap2/usb-host.c >> >> > index 89ae298..771dc78 100644 >> >> > --- a/arch/arm/mach-omap2/usb-host.c >> >> > +++ b/arch/arm/mach-omap2/usb-host.c >> >> > @@ -28,51 +28,28 @@ >> >> >> >> > + oh[0] = omap_hwmod_lookup(USBHS_UHH_HWMODNAME); >> >> > + if (!oh[0]) { >> >> > + pr_err("Could not look up %s\n", USBHS_UHH_HWMODNAME); >> >> > + return; >> >> > } >> >> > >> >> > - if (platform_device_register(&usbhs_device) < 0) >> >> > - printk(KERN_ERR "USBHS platform_device_register failed\n"); >> >> > + oh[1] = omap_hwmod_lookup(USBHS_TLL_HWMODNAME); >> >> > + if (!oh[1]) { >> >> > + pr_err("Could not look up %s\n", USBHS_TLL_HWMODNAME); >> >> > + return; >> >> > + } >> >> > >> >> > -init_end: >> >> > - return; >> >> > + od = omap_device_build_ss(OMAP_USBHS_DEVICE, bus_id, oh, 2, >> >> > + (void *)&usbhs_data, sizeof(usbhs_data), >> >> > + omap_uhhtll_latency, >> >> > + ARRAY_SIZE(omap_uhhtll_latency), false); >> >> >> >> Usually there's something wrong with omap_devices that contain >> >> multiple hwmods. Is there some reason why there isn't a separate driver >> >> for the TLL? Judging by a brief look at drivers/mfd/omap_usb_host.c, the >> >> TLL handling looks logically distinct? >> > >> > Yes, I have the same feeling. To my understanding, USB Host Subsystem on >> > OMAP is composed of the Transceiver-less link (TLL) and USB Host (UHH). >> > Aparently, they could be handled by separate drivers. >> > >> > -- >> > balbi >> >> yes, it can be as two separate drivers for uhh and tll; But i don't >> think driver can be used effectively. >> Now ehci and ohci gets the clocks , config reg and port settings >> through usb host which is sufficient. >> If you make them as two different drivers; then ehci and ohci has to >> interact with both the drivers separately. >> which will be an unnecessary complications. I feel not divided this >> driver into two > > Come again, EHCI/OHCI need clocks from UHH and TLL ?? If that's the > case, then there's really no easy way to handle this as a device can > have only one parent. yes, if you are using ehci phy mode ( port modes of UHH_HOSTCONFIG register) then uhh functional ( omap3: interface clocks too) is sufficient; if you are using ehci in tll mode , then you need tll functional clock too. regards keshava -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html