Message ID | 1313581439-4279-2-git-send-email-keshava_mgowda@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On 08/17/2011 02:43 PM, Keshava Munegowda wrote: > From: Benoit Cousson <b-cousson@ti.com> > > Following 4 hwmod strcuture are added: > UHH hwmod of usbhs with uhh base address and functional clock, > EHCI hwmod with irq and base address, > OHCI hwmod with irq and base address, > TLL hwmod of usbhs with the TLL base address and irq. > > Signed-off-by: Benoit Cousson <b-cousson@ti.com> > Signed-off-by: Keshava Munegowda <keshava_mgowda@ti.com> > --- > arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 244 ++++++++++++++++++++++++++++ > 1 files changed, 244 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c > index 6201422..d8f08fa 100644 > --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c > +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c > @@ -68,6 +68,10 @@ static struct omap_hwmod omap44xx_mmc2_hwmod; > static struct omap_hwmod omap44xx_mpu_hwmod; > static struct omap_hwmod omap44xx_mpu_private_hwmod; > static struct omap_hwmod omap44xx_usb_otg_hs_hwmod; > +static struct omap_hwmod omap44xx_usb_host_hs_hwmod; > +static struct omap_hwmod omap44xx_usbhs_ohci_hwmod; > +static struct omap_hwmod omap44xx_usbhs_ehci_hwmod; > +static struct omap_hwmod omap44xx_usb_tll_hs_hwmod; > > /* > * Interconnects omap_hwmod structures > @@ -5336,6 +5340,242 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = { > .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), > }; > > +/* > + * 'usb_host_hs' class > + * high-speed multi-port usb host controller > + */ > +static struct omap_hwmod_ocp_if omap44xx_usb_host_hs__l3_main_2 = { > + .master = &omap44xx_usb_host_hs_hwmod, > + .slave = &omap44xx_l3_main_2_hwmod, > + .clk = "l3_div_ck", > + .user = OCP_USER_MPU | OCP_USER_SDMA, > +}; > + > +static struct omap_hwmod_class_sysconfig omap44xx_usb_host_hs_sysc = { > + .rev_offs = 0x0000, > + .sysc_offs = 0x0010, > + .syss_offs = 0x0014, > + .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE), what about SYSC_HAS_SOFTRESET? > + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | Did you intentionally miss out SIDLE_SMART_WKUP ? > + MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART | > + MSTANDBY_SMART_WKUP), > + .sysc_fields = &omap_hwmod_sysc_type2, > +}; > + ... <snip> ... > + > +/* > + * 'usb_tll_hs' class > + * usb_tll_hs module is the adapter on the usb_host_hs ports > + */ > +static struct omap_hwmod_class_sysconfig omap44xx_usb_tll_hs_sysc = { > + .rev_offs = 0x0000, > + .sysc_offs = 0x0010, > + .syss_offs = 0x0014, > + .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE), what about SYSC_HAS_SOFTRESET, SYSC_HAS_ENAWAKEUP and SYSC_HAS_CLOCKACTIVITY? > + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), > + .sysc_fields = &omap_hwmod_sysc_type1, > +}; > + > +static struct omap_hwmod_class omap44xx_usb_tll_hs_hwmod_class = { > + .name = "usbhs_tll", > + .sysc = &omap44xx_usb_tll_hs_sysc, > +}; > + ... regards, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Aug 24, 2011 at 12:27 PM, Roger Quadros <rogerq@ti.com> wrote: > Hi, > > On 08/17/2011 02:43 PM, Keshava Munegowda wrote: >> From: Benoit Cousson <b-cousson@ti.com> >> >> Following 4 hwmod strcuture are added: >> UHH hwmod of usbhs with uhh base address and functional clock, >> EHCI hwmod with irq and base address, >> OHCI hwmod with irq and base address, >> TLL hwmod of usbhs with the TLL base address and irq. >> >> Signed-off-by: Benoit Cousson <b-cousson@ti.com> >> Signed-off-by: Keshava Munegowda <keshava_mgowda@ti.com> >> --- >> arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 244 ++++++++++++++++++++++++++++ >> 1 files changed, 244 insertions(+), 0 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >> index 6201422..d8f08fa 100644 >> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >> @@ -68,6 +68,10 @@ static struct omap_hwmod omap44xx_mmc2_hwmod; >> static struct omap_hwmod omap44xx_mpu_hwmod; >> static struct omap_hwmod omap44xx_mpu_private_hwmod; >> static struct omap_hwmod omap44xx_usb_otg_hs_hwmod; >> +static struct omap_hwmod omap44xx_usb_host_hs_hwmod; >> +static struct omap_hwmod omap44xx_usbhs_ohci_hwmod; >> +static struct omap_hwmod omap44xx_usbhs_ehci_hwmod; >> +static struct omap_hwmod omap44xx_usb_tll_hs_hwmod; >> >> /* >> * Interconnects omap_hwmod structures >> @@ -5336,6 +5340,242 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = { >> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), >> }; >> >> +/* >> + * 'usb_host_hs' class >> + * high-speed multi-port usb host controller >> + */ >> +static struct omap_hwmod_ocp_if omap44xx_usb_host_hs__l3_main_2 = { >> + .master = &omap44xx_usb_host_hs_hwmod, >> + .slave = &omap44xx_l3_main_2_hwmod, >> + .clk = "l3_div_ck", >> + .user = OCP_USER_MPU | OCP_USER_SDMA, >> +}; >> + >> +static struct omap_hwmod_class_sysconfig omap44xx_usb_host_hs_sysc = { >> + .rev_offs = 0x0000, >> + .sysc_offs = 0x0010, >> + .syss_offs = 0x0014, >> + .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE), > > what about SYSC_HAS_SOFTRESET? Yes, I will add this for omap3 , for omap4 this flag is causing enumeration issue. for now , I will not add this for 4430. > >> + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | > > Did you intentionally miss out SIDLE_SMART_WKUP ? it is not there for omap3 but I will add this for omap4. > >> + MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART | >> + MSTANDBY_SMART_WKUP), >> + .sysc_fields = &omap_hwmod_sysc_type2, >> +}; >> + > > ... > <snip> > ... > >> + >> +/* >> + * 'usb_tll_hs' class >> + * usb_tll_hs module is the adapter on the usb_host_hs ports >> + */ >> +static struct omap_hwmod_class_sysconfig omap44xx_usb_tll_hs_sysc = { >> + .rev_offs = 0x0000, >> + .sysc_offs = 0x0010, >> + .syss_offs = 0x0014, >> + .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE), > > what about SYSC_HAS_SOFTRESET, SYSC_HAS_ENAWAKEUP and > SYSC_HAS_CLOCKACTIVITY? yes, I will add these flags ; I will send the v7 soon. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Aug 24, 2011 at 4:30 PM, Munegowda, Keshava <keshava_mgowda@ti.com> wrote: > On Wed, Aug 24, 2011 at 12:27 PM, Roger Quadros <rogerq@ti.com> wrote: >> Hi, >> >> On 08/17/2011 02:43 PM, Keshava Munegowda wrote: >>> From: Benoit Cousson <b-cousson@ti.com> >>> >>> Following 4 hwmod strcuture are added: >>> UHH hwmod of usbhs with uhh base address and functional clock, >>> EHCI hwmod with irq and base address, >>> OHCI hwmod with irq and base address, >>> TLL hwmod of usbhs with the TLL base address and irq. >>> >>> Signed-off-by: Benoit Cousson <b-cousson@ti.com> >>> Signed-off-by: Keshava Munegowda <keshava_mgowda@ti.com> >>> --- >>> arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 244 ++++++++++++++++++++++++++++ >>> 1 files changed, 244 insertions(+), 0 deletions(-) >>> >>> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >>> index 6201422..d8f08fa 100644 >>> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >>> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c >>> @@ -68,6 +68,10 @@ static struct omap_hwmod omap44xx_mmc2_hwmod; >>> static struct omap_hwmod omap44xx_mpu_hwmod; >>> static struct omap_hwmod omap44xx_mpu_private_hwmod; >>> static struct omap_hwmod omap44xx_usb_otg_hs_hwmod; >>> +static struct omap_hwmod omap44xx_usb_host_hs_hwmod; >>> +static struct omap_hwmod omap44xx_usbhs_ohci_hwmod; >>> +static struct omap_hwmod omap44xx_usbhs_ehci_hwmod; >>> +static struct omap_hwmod omap44xx_usb_tll_hs_hwmod; >>> >>> /* >>> * Interconnects omap_hwmod structures >>> @@ -5336,6 +5340,242 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = { >>> .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), >>> }; >>> >>> +/* >>> + * 'usb_host_hs' class >>> + * high-speed multi-port usb host controller >>> + */ >>> +static struct omap_hwmod_ocp_if omap44xx_usb_host_hs__l3_main_2 = { >>> + .master = &omap44xx_usb_host_hs_hwmod, >>> + .slave = &omap44xx_l3_main_2_hwmod, >>> + .clk = "l3_div_ck", >>> + .user = OCP_USER_MPU | OCP_USER_SDMA, >>> +}; >>> + >>> +static struct omap_hwmod_class_sysconfig omap44xx_usb_host_hs_sysc = { >>> + .rev_offs = 0x0000, >>> + .sysc_offs = 0x0010, >>> + .syss_offs = 0x0014, >>> + .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE), >> >> what about SYSC_HAS_SOFTRESET? > > Yes, I will add this for omap3 , for omap4 this flag is causing > enumeration issue. > for now , I will not add this for 4430. Roger, I can not add this SYSC_HAS_SOFTRESET for omap3 too; its blocks the port status change interrupts after the global suspend/resume; so v7 I add this for omap3, I will remove this and send it as v8 now. regards keshava > > >> >>> + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | >> >> Did you intentionally miss out SIDLE_SMART_WKUP ? > > it is not there for omap3 but I will add this for omap4. > > >> >>> + MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART | >>> + MSTANDBY_SMART_WKUP), >>> + .sysc_fields = &omap_hwmod_sysc_type2, >>> +}; >>> + >> >> ... >> <snip> >> ... >> >>> + >>> +/* >>> + * 'usb_tll_hs' class >>> + * usb_tll_hs module is the adapter on the usb_host_hs ports >>> + */ >>> +static struct omap_hwmod_class_sysconfig omap44xx_usb_tll_hs_sysc = { >>> + .rev_offs = 0x0000, >>> + .sysc_offs = 0x0010, >>> + .syss_offs = 0x0014, >>> + .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE), >> >> what about SYSC_HAS_SOFTRESET, SYSC_HAS_ENAWAKEUP and >> SYSC_HAS_CLOCKACTIVITY? > > yes, I will add these flags ; > > > I will send the v7 soon. > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 6201422..d8f08fa 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -68,6 +68,10 @@ static struct omap_hwmod omap44xx_mmc2_hwmod; static struct omap_hwmod omap44xx_mpu_hwmod; static struct omap_hwmod omap44xx_mpu_private_hwmod; static struct omap_hwmod omap44xx_usb_otg_hs_hwmod; +static struct omap_hwmod omap44xx_usb_host_hs_hwmod; +static struct omap_hwmod omap44xx_usbhs_ohci_hwmod; +static struct omap_hwmod omap44xx_usbhs_ehci_hwmod; +static struct omap_hwmod omap44xx_usb_tll_hs_hwmod; /* * Interconnects omap_hwmod structures @@ -5336,6 +5340,242 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = { .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), }; +/* + * 'usb_host_hs' class + * high-speed multi-port usb host controller + */ +static struct omap_hwmod_ocp_if omap44xx_usb_host_hs__l3_main_2 = { + .master = &omap44xx_usb_host_hs_hwmod, + .slave = &omap44xx_l3_main_2_hwmod, + .clk = "l3_div_ck", + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + +static struct omap_hwmod_class_sysconfig omap44xx_usb_host_hs_sysc = { + .rev_offs = 0x0000, + .sysc_offs = 0x0010, + .syss_offs = 0x0014, + .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE), + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | + MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART | + MSTANDBY_SMART_WKUP), + .sysc_fields = &omap_hwmod_sysc_type2, +}; + +static struct omap_hwmod_class omap44xx_usb_host_hs_hwmod_class = { + .name = "usbhs_uhh", + .sysc = &omap44xx_usb_host_hs_sysc, +}; + +static struct omap_hwmod_ocp_if *omap44xx_usb_host_hs_masters[] = { + &omap44xx_usb_host_hs__l3_main_2, +}; + +static struct omap_hwmod_addr_space omap44xx_usb_host_hs_addrs[] = { + { + .name = "uhh", + .pa_start = 0x4a064000, + .pa_end = 0x4a0647ff, + .flags = ADDR_TYPE_RT + }, + {} /* Terminating Entry */ +}; + +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__usb_host_hs = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_usb_host_hs_hwmod, + .clk = "l4_div_ck", + .addr = omap44xx_usb_host_hs_addrs, + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + +static struct omap_hwmod_ocp_if *omap44xx_usb_host_hs_slaves[] = { + &omap44xx_l4_cfg__usb_host_hs, +}; + +static struct omap_hwmod omap44xx_usb_host_hs_hwmod = { + .name = "usbhs_uhh", + .class = &omap44xx_usb_host_hs_hwmod_class, + .clkdm_name = "l3_init_clkdm", + .main_clk = "usb_host_hs_fck", + .prcm = { + .omap4 = { + .clkctrl_offs = OMAP4_CM_L3INIT_USB_HOST_CLKCTRL_OFFSET, + .context_offs = OMAP4_RM_L3INIT_USB_HOST_CONTEXT_OFFSET, + .modulemode = MODULEMODE_SWCTRL, + }, + }, + .slaves = omap44xx_usb_host_hs_slaves, + .slaves_cnt = ARRAY_SIZE(omap44xx_usb_host_hs_slaves), + .masters = omap44xx_usb_host_hs_masters, + .masters_cnt = ARRAY_SIZE(omap44xx_usb_host_hs_masters), + .flags = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY, + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), +}; + +/* 'usbhs_ohci' class */ +static struct omap_hwmod_class omap44xx_usbhs_ohci_hwmod_class = { + .name = "usbhs_ohci", +}; + +static struct omap_hwmod_irq_info omap44xx_usbhs_ohci_irqs[] = { + { .name = "ohci-irq", .irq = 76 + OMAP44XX_IRQ_GIC_START }, + { .irq = -1 } /* Terminating IRQ */ +}; + +static struct omap_hwmod_addr_space omap44xx_usbhs_ohci_addrs[] = { + { + .name = "ohci", + .pa_start = 0x4A064800, + .pa_end = 0x4A064BFF, + .flags = ADDR_MAP_ON_INIT + }, + {} +}; + +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__usbhs_ohci = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_usbhs_ohci_hwmod, + .clk = "l4_div_ck", + .addr = omap44xx_usbhs_ohci_addrs, + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + +static struct omap_hwmod_ocp_if *omap44xx_usbhs_ohci_slaves[] = { + &omap44xx_l4_cfg__usbhs_ohci, +}; + +static struct omap_hwmod_ocp_if *omap44xx_usbhs_ohci_masters[] = { + &omap44xx_usb_host_hs__l3_main_2, +}; + +static struct omap_hwmod omap44xx_usbhs_ohci_hwmod = { + .name = "usbhs_ohci", + .class = &omap44xx_usbhs_ohci_hwmod_class, + .clkdm_name = "l3_init_clkdm", + .mpu_irqs = omap44xx_usbhs_ohci_irqs, + .slaves = omap44xx_usbhs_ohci_slaves, + .slaves_cnt = ARRAY_SIZE(omap44xx_usbhs_ohci_slaves), + .masters = omap44xx_usbhs_ohci_masters, + .masters_cnt = ARRAY_SIZE(omap44xx_usbhs_ohci_masters), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .flags = HWMOD_INIT_NO_RESET | HWMOD_NO_IDLEST, +}; + +/* 'usbhs_ehci' class */ +static struct omap_hwmod_class omap44xx_usbhs_ehci_hwmod_class = { + .name = "usbhs_ehci", +}; + +static struct omap_hwmod_irq_info omap44xx_usbhs_ehci_irqs[] = { + { .name = "ehci-irq", .irq = 77 + OMAP44XX_IRQ_GIC_START }, + { .irq = -1 } /* Terminating IRQ */ +}; + +static struct omap_hwmod_addr_space omap44xx_usbhs_ehci_addrs[] = { + { + .name = "ehci", + .pa_start = 0x4A064C00, + .pa_end = 0x4A064FFF, + .flags = ADDR_MAP_ON_INIT + }, + {} /* Terminating Entry */ +}; + +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__usbhs_ehci = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_usbhs_ehci_hwmod, + .clk = "l4_div_ck", + .addr = omap44xx_usbhs_ehci_addrs, + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + +static struct omap_hwmod_ocp_if *omap44xx_usbhs_ehci_slaves[] = { + &omap44xx_l4_cfg__usbhs_ehci, +}; + +static struct omap_hwmod_ocp_if *omap44xx_usbhs_ehci_masters[] = { + &omap44xx_usb_host_hs__l3_main_2, +}; + + +static struct omap_hwmod omap44xx_usbhs_ehci_hwmod = { + .name = "usbhs_ehci", + .class = &omap44xx_usbhs_ehci_hwmod_class, + .clkdm_name = "l3_init_clkdm", + .mpu_irqs = omap44xx_usbhs_ehci_irqs, + .slaves = omap44xx_usbhs_ehci_slaves, + .slaves_cnt = ARRAY_SIZE(omap44xx_usbhs_ehci_slaves), + .masters = omap44xx_usbhs_ehci_masters, + .masters_cnt = ARRAY_SIZE(omap44xx_usbhs_ehci_masters), + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), + .flags = HWMOD_INIT_NO_RESET | HWMOD_NO_IDLEST, +}; + +/* + * 'usb_tll_hs' class + * usb_tll_hs module is the adapter on the usb_host_hs ports + */ +static struct omap_hwmod_class_sysconfig omap44xx_usb_tll_hs_sysc = { + .rev_offs = 0x0000, + .sysc_offs = 0x0010, + .syss_offs = 0x0014, + .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE), + .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), + .sysc_fields = &omap_hwmod_sysc_type1, +}; + +static struct omap_hwmod_class omap44xx_usb_tll_hs_hwmod_class = { + .name = "usbhs_tll", + .sysc = &omap44xx_usb_tll_hs_sysc, +}; + +static struct omap_hwmod_irq_info omap44xx_usb_tll_hs_irqs[] = { + { .name = "tll-irq", .irq = 78 + OMAP44XX_IRQ_GIC_START }, + { .irq = -1 } /* Terminating IRQ */ +}; + +static struct omap_hwmod_addr_space omap44xx_usb_tll_hs_addrs[] = { + { + .name = "tll", + .pa_start = 0x4a062000, + .pa_end = 0x4a063fff, + .flags = ADDR_TYPE_RT + }, + {} /* Terminating Entry */ +}; + +static struct omap_hwmod_ocp_if omap44xx_l4_cfg__usb_tll_hs = { + .master = &omap44xx_l4_cfg_hwmod, + .slave = &omap44xx_usb_tll_hs_hwmod, + .clk = "l4_div_ck", + .addr = omap44xx_usb_tll_hs_addrs, + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + +static struct omap_hwmod_ocp_if *omap44xx_usb_tll_hs_slaves[] = { + &omap44xx_l4_cfg__usb_tll_hs, +}; + +static struct omap_hwmod omap44xx_usb_tll_hs_hwmod = { + .name = "usbhs_tll", + .class = &omap44xx_usb_tll_hs_hwmod_class, + .clkdm_name = "l3_init_clkdm", + .mpu_irqs = omap44xx_usb_tll_hs_irqs, + .main_clk = "usb_tll_hs_ick", + .prcm = { + .omap4 = { + .clkctrl_offs = OMAP4_CM_L3INIT_USB_TLL_CLKCTRL_OFFSET, + .context_offs = OMAP4_RM_L3INIT_USB_TLL_CONTEXT_OFFSET, + .modulemode = MODULEMODE_HWCTRL, + }, + }, + .slaves = omap44xx_usb_tll_hs_slaves, + .slaves_cnt = ARRAY_SIZE(omap44xx_usb_tll_hs_slaves), + .flags = HWMOD_SWSUP_SIDLE, + .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), +}; + static __initdata struct omap_hwmod *omap44xx_hwmods[] = { /* dmm class */ @@ -5482,6 +5722,10 @@ static __initdata struct omap_hwmod *omap44xx_hwmods[] = { &omap44xx_wd_timer2_hwmod, &omap44xx_wd_timer3_hwmod, + &omap44xx_usb_host_hs_hwmod, + &omap44xx_usbhs_ohci_hwmod, + &omap44xx_usbhs_ehci_hwmod, + &omap44xx_usb_tll_hs_hwmod, NULL, };