Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-17 Thread Munegowda, Keshava
On Fri, Oct 14, 2011 at 11:50 PM, Paul Walmsley  wrote:
> Hi Keshava
>
> On Fri, 14 Oct 2011, Munegowda, Keshava wrote:
>
>> This updated patch is working perfectly on 3430 sdp.
>
> Great, thanks for testing this and the OMAP4 patch.  So, just FYI, I've
> pulled these patches into the branch 'usbhost_runtime_pm_14_devel_3.2' on
> git://git.pwsan.com/linux-2.6 - but I can't send these upstream until
> Samuel acks the MFD patch in this series.

Thanks Paul!  I request Samuel to ack on MFD patches.
Thanks a lot for helping me to complete the basic runtime pm adaptions.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-14 Thread Paul Walmsley
Hi Keshava

On Fri, 14 Oct 2011, Munegowda, Keshava wrote:

> This updated patch is working perfectly on 3430 sdp.

Great, thanks for testing this and the OMAP4 patch.  So, just FYI, I've 
pulled these patches into the branch 'usbhost_runtime_pm_14_devel_3.2' on 
git://git.pwsan.com/linux-2.6 - but I can't send these upstream until 
Samuel acks the MFD patch in this series.


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-14 Thread Munegowda, Keshava
On Fri, Oct 14, 2011 at 6:33 AM, Paul Walmsley  wrote:
>
> Hi
>
> I probably shouldn't have, but I've gone ahead and fixed a bunch of issues
> with this patch locally.  Modified patch below.  Please give it a test and
> ensure that it works for you.
>
>
> - Paul
>
> From: Keshava Munegowda 
> Date: Thu, 13 Oct 2011 17:27:28 -0600
> Subject: [PATCH] ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3
>
> Following 2 hwmod structures are added
>    1. usb_host_hs
>         The hwmod of usbhs with uhh, ehci and ohci base addresses
>         functional clock and ehci, ohci irqs
>
>    2. usb_tll_hs
>          hwmod of usbhs with the TLL base address and irq.
>
> Signed-off-by: Keshava Munegowda 
> Reviewed-by: Partha Basak 
> [p...@pwsan.com: fixed whitespace; removed nonexistent TLL->L4 CORE interface;
>  added master & slave for L4 CORE->TLL interface; skip registration on
>  3430ES1; fixed multiline comment style; updated to apply on Tony's cleanup
>  branch]
> Signed-off-by: Paul Walmsley 
> ---
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  221 
> 
>  1 files changed, 221 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> index ab35acb..060543e 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> @@ -84,6 +84,8 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp5_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp2_sidetone_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp3_sidetone_hwmod;
> +static struct omap_hwmod omap3xxx_usb_host_hs_hwmod;
> +static struct omap_hwmod omap3xxx_usb_tll_hs_hwmod;
>
>  /* L3 -> L4_CORE interface */
>  static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = {
> @@ -3123,6 +3125,218 @@ static struct omap_hwmod omap3xxx_mmc3_hwmod = {
>        .class          = &omap34xx_mmc_class,
>  };
>
> +/*
> + * 'usb_host_hs' class
> + * high-speed multi-port usb host controller
> + */
> +static struct omap_hwmod_ocp_if omap3xxx_usb_host_hs__l3_main_2 = {
> +       .master         = &omap3xxx_usb_host_hs_hwmod,
> +       .slave          = &omap3xxx_l3_main_hwmod,
> +       .clk            = "core_l3_ick",
> +       .user           = OCP_USER_MPU,
> +};
> +
> +static struct omap_hwmod_class_sysconfig omap3xxx_usb_host_hs_sysc = {
> +       .rev_offs       = 0x,
> +       .sysc_offs      = 0x0010,
> +       .syss_offs      = 0x0014,
> +       .sysc_flags     = (SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
> +                          SYSC_HAS_SIDLEMODE | SYSC_HAS_ENAWAKEUP |
> +                          SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> +       .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> +                          MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
> +       .sysc_fields    = &omap_hwmod_sysc_type1,
> +};
> +
> +static struct omap_hwmod_class omap3xxx_usb_host_hs_hwmod_class = {
> +       .name = "usb_host_hs",
> +       .sysc = &omap3xxx_usb_host_hs_sysc,
> +};
> +
> +static struct omap_hwmod_ocp_if *omap3xxx_usb_host_hs_masters[] = {
> +       &omap3xxx_usb_host_hs__l3_main_2,
> +};
> +
> +static struct omap_hwmod_addr_space omap3xxx_usb_host_hs_addrs[] = {
> +       {
> +               .name           = "uhh",
> +               .pa_start       = 0x48064000,
> +               .pa_end         = 0x480643ff,
> +               .flags          = ADDR_TYPE_RT
> +       },
> +       {
> +               .name           = "ohci",
> +               .pa_start       = 0x48064400,
> +               .pa_end         = 0x480647ff,
> +       },
> +       {
> +               .name           = "ehci",
> +               .pa_start       = 0x48064800,
> +               .pa_end         = 0x48064cff,
> +       },
> +       {}
> +};
> +
> +static struct omap_hwmod_ocp_if omap3xxx_l4_core__usb_host_hs = {
> +       .master         = &omap3xxx_l4_core_hwmod,
> +       .slave          = &omap3xxx_usb_host_hs_hwmod,
> +       .clk            = "usbhost_ick",
> +       .addr           = omap3xxx_usb_host_hs_addrs,
> +       .user           = OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
> +static struct omap_hwmod_ocp_if *omap3xxx_usb_host_hs_slaves[] = {
> +       &omap3xxx_l4_core__usb_host_hs,
> +};
> +
> +static struct omap_hwmod_opt_clk omap3xxx_usb_host_hs_opt_clks[] = {
> +         { .role = "ehci_logic_fck", .clk = "usbhost_120m_fck", },
> +};
> +
> +static struct omap_hwmod_irq_info omap3xxx_usb_host_hs_irqs[] = {
> +       { .name = "ohci-irq", .irq = 76 },
> +       { .name = "ehci-irq", .irq = 77 },
> +       { .irq = -1 }
> +};
> +
> +static struct omap_hwmod omap3xxx_usb_host_hs_hwmod = {
> +       .name           = "usb_host_hs",
> +       .class          = &omap3xxx_usb_host_hs_hwmod_class,
> +       .clkdm_name     = "l3_init_clkdm",
> +       .mpu_irqs       = omap3xxx_usb_host_hs_irqs,
> +       .main_clk       = "usbhost_48m_fck",
> +  

Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-14 Thread Munegowda, Keshava
On Fri, Oct 14, 2011 at 1:41 PM, Paul Walmsley  wrote:
> Hi
>
> On Fri, 14 Oct 2011, Munegowda, Keshava wrote:
>
>> On Fri, Oct 14, 2011 at 6:33 AM, Paul Walmsley  wrote:
>
>> >  static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
>> >        &omap3xxx_l3_main_hwmod,
>> >        &omap3xxx_l4_core_hwmod,
>> > @@ -3151,6 +3365,7 @@ static __initdata struct omap_hwmod 
>> > *omap3xxx_hwmods[] = {
>> >        &omap3xxx_uart1_hwmod,
>> >        &omap3xxx_uart2_hwmod,
>> >        &omap3xxx_uart3_hwmod,
>> > +
>>
>> why you have removed  &omap3xxx_usb_host_hs_hwmod,
>> and       &omap3xxx_usb_tll_hs_hwmod.?
>
> I have removed them because, according to the OMAP3430 ES1.0 Revision A
> TRM (SWPU100A), the HS USBHOST subsystem is not present on OMAP3430 ES1.0.
> Therefore the HS USBHOST modules must not be marked as being common to all
> OMAP3xxx chips in the hwmod data.
>
> If you have information that indicates that it's present on OMAP3430
> ES1.0, please let me know ASAP.


Thanks , I got your point

regards
keshava





>>
>>
>> >        /* dss class */
>> >        &omap3xxx_dss_dispc_hwmod,
>> >        &omap3xxx_dss_dsi1_hwmod,
>> > @@ -3206,6 +3421,8 @@ static __initdata struct omap_hwmod 
>> > *omap3430es1_hwmods[] = {
>> >  static __initdata struct omap_hwmod *omap3430es2plus_hwmods[] = {
>> >        &omap3xxx_dss_core_hwmod,
>> >        &omap3xxx_usbhsotg_hwmod,
>> > +       &omap3xxx_usb_host_hs_hwmod,
>> > +       &omap3xxx_usb_tll_hs_hwmod,
>> >        NULL
>> >  };
>> >
>> > @@ -3223,12 +3440,16 @@ static __initdata struct omap_hwmod 
>> > *omap36xx_hwmods[] = {
>> >        &omap36xx_sr1_hwmod,
>> >        &omap36xx_sr2_hwmod,
>> >        &omap3xxx_usbhsotg_hwmod,
>> > +       &omap3xxx_usb_host_hs_hwmod,
>> > +       &omap3xxx_usb_tll_hs_hwmod,
>> >        NULL
>> >  };
>> >
>> >  static __initdata struct omap_hwmod *am35xx_hwmods[] = {
>> >        &omap3xxx_dss_core_hwmod, /* XXX ??? */
>> >        &am35xx_usbhsotg_hwmod,
>> > +       &omap3xxx_usb_host_hs_hwmod,
>> > +       &omap3xxx_usb_tll_hs_hwmod,
>> >        NULL
>> >  };
>> >
>> > --
>> > 1.7.7
>> >
>> >
>>
>
>
> - Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-14 Thread Paul Walmsley
Hi

On Fri, 14 Oct 2011, Munegowda, Keshava wrote:

> On Fri, Oct 14, 2011 at 6:33 AM, Paul Walmsley  wrote:

> >  static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
> >        &omap3xxx_l3_main_hwmod,
> >        &omap3xxx_l4_core_hwmod,
> > @@ -3151,6 +3365,7 @@ static __initdata struct omap_hwmod 
> > *omap3xxx_hwmods[] = {
> >        &omap3xxx_uart1_hwmod,
> >        &omap3xxx_uart2_hwmod,
> >        &omap3xxx_uart3_hwmod,
> > +
> 
> why you have removed  &omap3xxx_usb_host_hs_hwmod,
> and   &omap3xxx_usb_tll_hs_hwmod.?

I have removed them because, according to the OMAP3430 ES1.0 Revision A 
TRM (SWPU100A), the HS USBHOST subsystem is not present on OMAP3430 ES1.0.  
Therefore the HS USBHOST modules must not be marked as being common to all 
OMAP3xxx chips in the hwmod data.

If you have information that indicates that it's present on OMAP3430 
ES1.0, please let me know ASAP.

> I think it is required here, please let me know.
> 
> regards
> keshava
> 
> 
> 
> 
> >        /* dss class */
> >        &omap3xxx_dss_dispc_hwmod,
> >        &omap3xxx_dss_dsi1_hwmod,
> > @@ -3206,6 +3421,8 @@ static __initdata struct omap_hwmod 
> > *omap3430es1_hwmods[] = {
> >  static __initdata struct omap_hwmod *omap3430es2plus_hwmods[] = {
> >        &omap3xxx_dss_core_hwmod,
> >        &omap3xxx_usbhsotg_hwmod,
> > +       &omap3xxx_usb_host_hs_hwmod,
> > +       &omap3xxx_usb_tll_hs_hwmod,
> >        NULL
> >  };
> >
> > @@ -3223,12 +3440,16 @@ static __initdata struct omap_hwmod 
> > *omap36xx_hwmods[] = {
> >        &omap36xx_sr1_hwmod,
> >        &omap36xx_sr2_hwmod,
> >        &omap3xxx_usbhsotg_hwmod,
> > +       &omap3xxx_usb_host_hs_hwmod,
> > +       &omap3xxx_usb_tll_hs_hwmod,
> >        NULL
> >  };
> >
> >  static __initdata struct omap_hwmod *am35xx_hwmods[] = {
> >        &omap3xxx_dss_core_hwmod, /* XXX ??? */
> >        &am35xx_usbhsotg_hwmod,
> > +       &omap3xxx_usb_host_hs_hwmod,
> > +       &omap3xxx_usb_tll_hs_hwmod,
> >        NULL
> >  };
> >
> > --
> > 1.7.7
> >
> >
> 


- Paul

Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-14 Thread Munegowda, Keshava
On Fri, Oct 14, 2011 at 6:33 AM, Paul Walmsley  wrote:
>
> Hi
>
> I probably shouldn't have, but I've gone ahead and fixed a bunch of issues
> with this patch locally.  Modified patch below.  Please give it a test and
> ensure that it works for you.
>
>
> - Paul
>
> From: Keshava Munegowda 
> Date: Thu, 13 Oct 2011 17:27:28 -0600
> Subject: [PATCH] ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3
>
> Following 2 hwmod structures are added
>    1. usb_host_hs
>         The hwmod of usbhs with uhh, ehci and ohci base addresses
>         functional clock and ehci, ohci irqs
>
>    2. usb_tll_hs
>          hwmod of usbhs with the TLL base address and irq.
>
> Signed-off-by: Keshava Munegowda 
> Reviewed-by: Partha Basak 
> [p...@pwsan.com: fixed whitespace; removed nonexistent TLL->L4 CORE interface;
>  added master & slave for L4 CORE->TLL interface; skip registration on
>  3430ES1; fixed multiline comment style; updated to apply on Tony's cleanup
>  branch]
> Signed-off-by: Paul Walmsley 
> ---
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  221 
> 
>  1 files changed, 221 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> index ab35acb..060543e 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> @@ -84,6 +84,8 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp5_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp2_sidetone_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp3_sidetone_hwmod;
> +static struct omap_hwmod omap3xxx_usb_host_hs_hwmod;
> +static struct omap_hwmod omap3xxx_usb_tll_hs_hwmod;
>
>  /* L3 -> L4_CORE interface */
>  static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = {
> @@ -3123,6 +3125,218 @@ static struct omap_hwmod omap3xxx_mmc3_hwmod = {
>        .class          = &omap34xx_mmc_class,
>  };
>
> +/*
> + * 'usb_host_hs' class
> + * high-speed multi-port usb host controller
> + */
> +static struct omap_hwmod_ocp_if omap3xxx_usb_host_hs__l3_main_2 = {
> +       .master         = &omap3xxx_usb_host_hs_hwmod,
> +       .slave          = &omap3xxx_l3_main_hwmod,
> +       .clk            = "core_l3_ick",
> +       .user           = OCP_USER_MPU,
> +};
> +
> +static struct omap_hwmod_class_sysconfig omap3xxx_usb_host_hs_sysc = {
> +       .rev_offs       = 0x,
> +       .sysc_offs      = 0x0010,
> +       .syss_offs      = 0x0014,
> +       .sysc_flags     = (SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
> +                          SYSC_HAS_SIDLEMODE | SYSC_HAS_ENAWAKEUP |
> +                          SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> +       .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> +                          MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
> +       .sysc_fields    = &omap_hwmod_sysc_type1,
> +};
> +
> +static struct omap_hwmod_class omap3xxx_usb_host_hs_hwmod_class = {
> +       .name = "usb_host_hs",
> +       .sysc = &omap3xxx_usb_host_hs_sysc,
> +};
> +
> +static struct omap_hwmod_ocp_if *omap3xxx_usb_host_hs_masters[] = {
> +       &omap3xxx_usb_host_hs__l3_main_2,
> +};
> +
> +static struct omap_hwmod_addr_space omap3xxx_usb_host_hs_addrs[] = {
> +       {
> +               .name           = "uhh",
> +               .pa_start       = 0x48064000,
> +               .pa_end         = 0x480643ff,
> +               .flags          = ADDR_TYPE_RT
> +       },
> +       {
> +               .name           = "ohci",
> +               .pa_start       = 0x48064400,
> +               .pa_end         = 0x480647ff,
> +       },
> +       {
> +               .name           = "ehci",
> +               .pa_start       = 0x48064800,
> +               .pa_end         = 0x48064cff,
> +       },
> +       {}
> +};
> +
> +static struct omap_hwmod_ocp_if omap3xxx_l4_core__usb_host_hs = {
> +       .master         = &omap3xxx_l4_core_hwmod,
> +       .slave          = &omap3xxx_usb_host_hs_hwmod,
> +       .clk            = "usbhost_ick",
> +       .addr           = omap3xxx_usb_host_hs_addrs,
> +       .user           = OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
> +static struct omap_hwmod_ocp_if *omap3xxx_usb_host_hs_slaves[] = {
> +       &omap3xxx_l4_core__usb_host_hs,
> +};
> +
> +static struct omap_hwmod_opt_clk omap3xxx_usb_host_hs_opt_clks[] = {
> +         { .role = "ehci_logic_fck", .clk = "usbhost_120m_fck", },
> +};
> +
> +static struct omap_hwmod_irq_info omap3xxx_usb_host_hs_irqs[] = {
> +       { .name = "ohci-irq", .irq = 76 },
> +       { .name = "ehci-irq", .irq = 77 },
> +       { .irq = -1 }
> +};
> +
> +static struct omap_hwmod omap3xxx_usb_host_hs_hwmod = {
> +       .name           = "usb_host_hs",
> +       .class          = &omap3xxx_usb_host_hs_hwmod_class,
> +       .clkdm_name     = "l3_init_clkdm",
> +       .mpu_irqs       = omap3xxx_usb_host_hs_irqs,
> +       .main_clk       = "usbhost_48m_fck",
> +  

Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-13 Thread Paul Walmsley

Hi

I probably shouldn't have, but I've gone ahead and fixed a bunch of issues 
with this patch locally.  Modified patch below.  Please give it a test and 
ensure that it works for you. 


- Paul

From: Keshava Munegowda 
Date: Thu, 13 Oct 2011 17:27:28 -0600
Subject: [PATCH] ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3

Following 2 hwmod structures are added
1. usb_host_hs
 The hwmod of usbhs with uhh, ehci and ohci base addresses
 functional clock and ehci, ohci irqs

2. usb_tll_hs
  hwmod of usbhs with the TLL base address and irq.

Signed-off-by: Keshava Munegowda 
Reviewed-by: Partha Basak 
[p...@pwsan.com: fixed whitespace; removed nonexistent TLL->L4 CORE interface;
 added master & slave for L4 CORE->TLL interface; skip registration on
 3430ES1; fixed multiline comment style; updated to apply on Tony's cleanup
 branch]
Signed-off-by: Paul Walmsley 
---
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  221 
 1 files changed, 221 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index ab35acb..060543e 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -84,6 +84,8 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp5_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp2_sidetone_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp3_sidetone_hwmod;
+static struct omap_hwmod omap3xxx_usb_host_hs_hwmod;
+static struct omap_hwmod omap3xxx_usb_tll_hs_hwmod;
 
 /* L3 -> L4_CORE interface */
 static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = {
@@ -3123,6 +3125,218 @@ static struct omap_hwmod omap3xxx_mmc3_hwmod = {
.class  = &omap34xx_mmc_class,
 };
 
+/*
+ * 'usb_host_hs' class
+ * high-speed multi-port usb host controller
+ */
+static struct omap_hwmod_ocp_if omap3xxx_usb_host_hs__l3_main_2 = {
+   .master = &omap3xxx_usb_host_hs_hwmod,
+   .slave  = &omap3xxx_l3_main_hwmod,
+   .clk= "core_l3_ick",
+   .user   = OCP_USER_MPU,
+};
+
+static struct omap_hwmod_class_sysconfig omap3xxx_usb_host_hs_sysc = {
+   .rev_offs   = 0x,
+   .sysc_offs  = 0x0010,
+   .syss_offs  = 0x0014,
+   .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
+  SYSC_HAS_SIDLEMODE | SYSC_HAS_ENAWAKEUP |
+  SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
+   .idlemodes  = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
+  MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
+   .sysc_fields= &omap_hwmod_sysc_type1,
+};
+
+static struct omap_hwmod_class omap3xxx_usb_host_hs_hwmod_class = {
+   .name = "usb_host_hs",
+   .sysc = &omap3xxx_usb_host_hs_sysc,
+};
+
+static struct omap_hwmod_ocp_if *omap3xxx_usb_host_hs_masters[] = {
+   &omap3xxx_usb_host_hs__l3_main_2,
+};
+
+static struct omap_hwmod_addr_space omap3xxx_usb_host_hs_addrs[] = {
+   {
+   .name   = "uhh",
+   .pa_start   = 0x48064000,
+   .pa_end = 0x480643ff,
+   .flags  = ADDR_TYPE_RT
+   },
+   {
+   .name   = "ohci",
+   .pa_start   = 0x48064400,
+   .pa_end = 0x480647ff,
+   },
+   {
+   .name   = "ehci",
+   .pa_start   = 0x48064800,
+   .pa_end = 0x48064cff,
+   },
+   {}
+};
+
+static struct omap_hwmod_ocp_if omap3xxx_l4_core__usb_host_hs = {
+   .master = &omap3xxx_l4_core_hwmod,
+   .slave  = &omap3xxx_usb_host_hs_hwmod,
+   .clk= "usbhost_ick",
+   .addr   = omap3xxx_usb_host_hs_addrs,
+   .user   = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
+static struct omap_hwmod_ocp_if *omap3xxx_usb_host_hs_slaves[] = {
+   &omap3xxx_l4_core__usb_host_hs,
+};
+
+static struct omap_hwmod_opt_clk omap3xxx_usb_host_hs_opt_clks[] = {
+ { .role = "ehci_logic_fck", .clk = "usbhost_120m_fck", },
+};
+
+static struct omap_hwmod_irq_info omap3xxx_usb_host_hs_irqs[] = {
+   { .name = "ohci-irq", .irq = 76 },
+   { .name = "ehci-irq", .irq = 77 },
+   { .irq = -1 }
+};
+
+static struct omap_hwmod omap3xxx_usb_host_hs_hwmod = {
+   .name   = "usb_host_hs",
+   .class  = &omap3xxx_usb_host_hs_hwmod_class,
+   .clkdm_name = "l3_init_clkdm",
+   .mpu_irqs   = omap3xxx_usb_host_hs_irqs,
+   .main_clk   = "usbhost_48m_fck",
+   .prcm = {
+   .omap2 = {
+   .module_offs = OMAP3430ES2_USBHOST_MOD,
+   .prcm_reg_id = 1,
+   .module_bit = OMAP3430ES2_EN_USBHOST1_SHIFT,
+   .idlest_reg_id = 1,
+   .idlest_idle_bi

Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-13 Thread Paul Walmsley
On Tue, 11 Oct 2011, Keshava Munegowda wrote:

> Following 2 hwmod structures are added
> 1. usb_host_hs
>  The hwmod of usbhs with uhh, ehci and ohci base addresses
>  functional clock and ehci, ohci irqs
> 
> 2. usb_tll_hs
>   hwmod of usbhs with the TLL base address and irq.
> 
> Signed-off-by: Keshava Munegowda 
> Reviewed-by: Partha Basak 
> ---
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  230 
> 
>  1 files changed, 230 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> index 59fdb9f..c06b4a4 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> @@ -84,6 +84,8 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod;

...

> +static struct omap_hwmod_ocp_if omap34xx_ick_cfg__usb_tll_hs = {
> + .clk= "usbtll_ick",
> + .addr   = omap34xx_usb_tll_hs_addrs,
> + .user   = OCP_USER_MPU | OCP_USER_SDMA,
> +};

This version doesn't respond to my previous comment:

"This interface is missing a .master and .slave.  It must have both.  So, 
dropping this patch until it's fixed."

Insert boilerplate frustration here...


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-11 Thread Munegowda, Keshava
On Tue, Oct 11, 2011 at 1:21 PM, Keshava Munegowda
 wrote:
> Following 2 hwmod structures are added
>    1. usb_host_hs
>         The hwmod of usbhs with uhh, ehci and ohci base addresses
>         functional clock and ehci, ohci irqs
>
>    2. usb_tll_hs
>          hwmod of usbhs with the TLL base address and irq.
>
> Signed-off-by: Keshava Munegowda 
> Reviewed-by: Partha Basak 
> ---
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  230 
> 
>  1 files changed, 230 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
> b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> index 59fdb9f..c06b4a4 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> @@ -84,6 +84,8 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp5_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp2_sidetone_hwmod;
>  static struct omap_hwmod omap3xxx_mcbsp3_sidetone_hwmod;
> +static struct omap_hwmod omap34xx_usb_host_hs_hwmod;
> +static struct omap_hwmod omap34xx_usb_tll_hs_hwmod;
>
>  /* L3 -> L4_CORE interface */
>  static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = {
> @@ -3196,6 +3198,229 @@ static struct omap_hwmod omap3xxx_mmc3_hwmod = {
>        .omap_chip      = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
>  };
>
> +/*
> + * 'usb_host_hs' class
> + * high-speed multi-port usb host controller
> + */
> +static struct omap_hwmod_ocp_if omap34xx_usb_host_hs__l3_main_2 = {
> +       .master         = &omap34xx_usb_host_hs_hwmod,
> +       .slave          = &omap3xxx_l3_main_hwmod,
> +       .clk            = "core_l3_ick",
> +       .user           = OCP_USER_MPU,
> +};
> +
> +static struct omap_hwmod_class_sysconfig omap34xx_usb_host_hs_sysc = {
> +       .rev_offs       = 0x,
> +       .sysc_offs      = 0x0010,
> +       .syss_offs      = 0x0014,
> +       .sysc_flags     = (SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
> +                          SYSC_HAS_SIDLEMODE | SYSC_HAS_ENAWAKEUP |
> +                          SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
> +       .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> +                          MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
> +       .sysc_fields    = &omap_hwmod_sysc_type1,
> +};
> +
> +static struct omap_hwmod_class omap34xx_usb_host_hs_hwmod_class = {
> +       .name = "usb_host_hs",
> +       .sysc = &omap34xx_usb_host_hs_sysc,
> +};
> +
> +static struct omap_hwmod_ocp_if *omap34xx_usb_host_hs_masters[] = {
> +       &omap34xx_usb_host_hs__l3_main_2,
> +};
> +
> +static struct omap_hwmod_addr_space omap34xx_usb_host_hs_addrs[] = {
> +       {
> +               .name           = "uhh",
> +               .pa_start       = 0x48064000,
> +               .pa_end         = 0x480643ff,
> +               .flags          = ADDR_TYPE_RT
> +       },
> +       {
> +               .name           = "ohci",
> +               .pa_start       = 0x48064400,
> +               .pa_end         = 0x480647ff,
> +       },
> +       {
> +               .name           = "ehci",
> +               .pa_start       = 0x48064800,
> +               .pa_end         = 0x48064cff,
> +       },
> +       {}
> +};
> +
> +static struct omap_hwmod_ocp_if omap34xx_usb_host_hs__ick = {
> +       .master         = &omap3xxx_l4_core_hwmod,
> +       .slave          = &omap34xx_usb_host_hs_hwmod,
> +       .clk            = "usbhost_ick",
> +       .addr           = omap34xx_usb_host_hs_addrs,
> +       .user           = OCP_USER_MPU | OCP_USER_SDMA,
> +};
> +
> +static struct omap_hwmod_ocp_if *omap34xx_usb_host_hs_slaves[] = {
> +       &omap34xx_usb_host_hs__ick,
> +};
> +
> +static struct omap_hwmod_opt_clk omap34xx_usb_host_hs_opt_clks[] = {
> +         { .role = "ehci_logic_fck", .clk = "usbhost_120m_fck", },
> +};
> +
> +static struct omap_hwmod_irq_info omap34xx_usb_host_hs_irqs[] = {
> +       { .name = "ohci-irq", .irq = 76 },
> +       { .name = "ehci-irq", .irq = 77 },
> +       { .irq = -1 }
> +};
> +
> +static struct omap_hwmod omap34xx_usb_host_hs_hwmod = {
> +       .name           = "usb_host_hs",
> +       .class          = &omap34xx_usb_host_hs_hwmod_class,
> +       .clkdm_name     = "l3_init_clkdm",
> +       .mpu_irqs       = omap34xx_usb_host_hs_irqs,
> +       .main_clk       = "usbhost_48m_fck",
> +       .prcm = {
> +               .omap2 = {
> +                       .module_offs = OMAP3430ES2_USBHOST_MOD,
> +                       .prcm_reg_id = 1,
> +                       .module_bit = OMAP3430ES2_EN_USBHOST1_SHIFT,
> +                       .idlest_reg_id = 1,
> +                       .idlest_idle_bit = OMAP3430ES2_ST_USBHOST_IDLE_SHIFT,
> +                       .idlest_stdby_bit = 
> OMAP3430ES2_ST_USBHOST_STDBY_SHIFT,
> +               },
> +       },
> +       .opt_clks       = omap34xx_usb_host_hs_opt_clks,
> +       .opt_clks_cnt   = ARRAY_SIZE(omap34xx_usb_host_hs_opt_clks),
> +       .slaves    

[PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-11 Thread Keshava Munegowda
Following 2 hwmod structures are added
1. usb_host_hs
 The hwmod of usbhs with uhh, ehci and ohci base addresses
 functional clock and ehci, ohci irqs

2. usb_tll_hs
  hwmod of usbhs with the TLL base address and irq.

Signed-off-by: Keshava Munegowda 
Reviewed-by: Partha Basak 
---
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  230 
 1 files changed, 230 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 59fdb9f..c06b4a4 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -84,6 +84,8 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp5_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp2_sidetone_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp3_sidetone_hwmod;
+static struct omap_hwmod omap34xx_usb_host_hs_hwmod;
+static struct omap_hwmod omap34xx_usb_tll_hs_hwmod;
 
 /* L3 -> L4_CORE interface */
 static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = {
@@ -3196,6 +3198,229 @@ static struct omap_hwmod omap3xxx_mmc3_hwmod = {
.omap_chip  = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
 };
 
+/*
+ * 'usb_host_hs' class
+ * high-speed multi-port usb host controller
+ */
+static struct omap_hwmod_ocp_if omap34xx_usb_host_hs__l3_main_2 = {
+   .master = &omap34xx_usb_host_hs_hwmod,
+   .slave  = &omap3xxx_l3_main_hwmod,
+   .clk= "core_l3_ick",
+   .user   = OCP_USER_MPU,
+};
+
+static struct omap_hwmod_class_sysconfig omap34xx_usb_host_hs_sysc = {
+   .rev_offs   = 0x,
+   .sysc_offs  = 0x0010,
+   .syss_offs  = 0x0014,
+   .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
+  SYSC_HAS_SIDLEMODE | SYSC_HAS_ENAWAKEUP |
+  SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
+   .idlemodes  = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
+  MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
+   .sysc_fields= &omap_hwmod_sysc_type1,
+};
+
+static struct omap_hwmod_class omap34xx_usb_host_hs_hwmod_class = {
+   .name = "usb_host_hs",
+   .sysc = &omap34xx_usb_host_hs_sysc,
+};
+
+static struct omap_hwmod_ocp_if *omap34xx_usb_host_hs_masters[] = {
+   &omap34xx_usb_host_hs__l3_main_2,
+};
+
+static struct omap_hwmod_addr_space omap34xx_usb_host_hs_addrs[] = {
+   {
+   .name   = "uhh",
+   .pa_start   = 0x48064000,
+   .pa_end = 0x480643ff,
+   .flags  = ADDR_TYPE_RT
+   },
+   {
+   .name   = "ohci",
+   .pa_start   = 0x48064400,
+   .pa_end = 0x480647ff,
+   },
+   {
+   .name   = "ehci",
+   .pa_start   = 0x48064800,
+   .pa_end = 0x48064cff,
+   },
+   {}
+};
+
+static struct omap_hwmod_ocp_if omap34xx_usb_host_hs__ick = {
+   .master = &omap3xxx_l4_core_hwmod,
+   .slave  = &omap34xx_usb_host_hs_hwmod,
+   .clk= "usbhost_ick",
+   .addr   = omap34xx_usb_host_hs_addrs,
+   .user   = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
+static struct omap_hwmod_ocp_if *omap34xx_usb_host_hs_slaves[] = {
+   &omap34xx_usb_host_hs__ick,
+};
+
+static struct omap_hwmod_opt_clk omap34xx_usb_host_hs_opt_clks[] = {
+ { .role = "ehci_logic_fck", .clk = "usbhost_120m_fck", },
+};
+
+static struct omap_hwmod_irq_info omap34xx_usb_host_hs_irqs[] = {
+   { .name = "ohci-irq", .irq = 76 },
+   { .name = "ehci-irq", .irq = 77 },
+   { .irq = -1 }
+};
+
+static struct omap_hwmod omap34xx_usb_host_hs_hwmod = {
+   .name   = "usb_host_hs",
+   .class  = &omap34xx_usb_host_hs_hwmod_class,
+   .clkdm_name = "l3_init_clkdm",
+   .mpu_irqs   = omap34xx_usb_host_hs_irqs,
+   .main_clk   = "usbhost_48m_fck",
+   .prcm = {
+   .omap2 = {
+   .module_offs = OMAP3430ES2_USBHOST_MOD,
+   .prcm_reg_id = 1,
+   .module_bit = OMAP3430ES2_EN_USBHOST1_SHIFT,
+   .idlest_reg_id = 1,
+   .idlest_idle_bit = OMAP3430ES2_ST_USBHOST_IDLE_SHIFT,
+   .idlest_stdby_bit = OMAP3430ES2_ST_USBHOST_STDBY_SHIFT,
+   },
+   },
+   .opt_clks   = omap34xx_usb_host_hs_opt_clks,
+   .opt_clks_cnt   = ARRAY_SIZE(omap34xx_usb_host_hs_opt_clks),
+   .slaves = omap34xx_usb_host_hs_slaves,
+   .slaves_cnt = ARRAY_SIZE(omap34xx_usb_host_hs_slaves),
+   .masters= omap34xx_usb_host_hs_masters,
+   .masters_cnt= ARRAY_SIZE(omap34xx_usb_host_hs_masters),
+
+   /*
+* Errata: USBHOST Configured In Smart-Idle Can Lead T

[PATCH 2/5 v14] arm: omap: usb: ehci and ohci hwmod structures for omap3

2011-10-11 Thread Keshava Munegowda
Following 2 hwmod structures are added
1. usb_host_hs
 The hwmod of usbhs with uhh, ehci and ohci base addresses
 functional clock and ehci, ohci irqs

2. usb_tll_hs
  hwmod of usbhs with the TLL base address and irq.

Signed-off-by: Keshava Munegowda 
Reviewed-by: Partha Basak 
---
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |  230 
 1 files changed, 230 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 59fdb9f..c06b4a4 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -84,6 +84,8 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp5_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp2_sidetone_hwmod;
 static struct omap_hwmod omap3xxx_mcbsp3_sidetone_hwmod;
+static struct omap_hwmod omap34xx_usb_host_hs_hwmod;
+static struct omap_hwmod omap34xx_usb_tll_hs_hwmod;
 
 /* L3 -> L4_CORE interface */
 static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = {
@@ -3196,6 +3198,229 @@ static struct omap_hwmod omap3xxx_mmc3_hwmod = {
.omap_chip  = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
 };
 
+/*
+ * 'usb_host_hs' class
+ * high-speed multi-port usb host controller
+ */
+static struct omap_hwmod_ocp_if omap34xx_usb_host_hs__l3_main_2 = {
+   .master = &omap34xx_usb_host_hs_hwmod,
+   .slave  = &omap3xxx_l3_main_hwmod,
+   .clk= "core_l3_ick",
+   .user   = OCP_USER_MPU,
+};
+
+static struct omap_hwmod_class_sysconfig omap34xx_usb_host_hs_sysc = {
+   .rev_offs   = 0x,
+   .sysc_offs  = 0x0010,
+   .syss_offs  = 0x0014,
+   .sysc_flags = (SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
+  SYSC_HAS_SIDLEMODE | SYSC_HAS_ENAWAKEUP |
+  SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
+   .idlemodes  = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
+  MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
+   .sysc_fields= &omap_hwmod_sysc_type1,
+};
+
+static struct omap_hwmod_class omap34xx_usb_host_hs_hwmod_class = {
+   .name = "usb_host_hs",
+   .sysc = &omap34xx_usb_host_hs_sysc,
+};
+
+static struct omap_hwmod_ocp_if *omap34xx_usb_host_hs_masters[] = {
+   &omap34xx_usb_host_hs__l3_main_2,
+};
+
+static struct omap_hwmod_addr_space omap34xx_usb_host_hs_addrs[] = {
+   {
+   .name   = "uhh",
+   .pa_start   = 0x48064000,
+   .pa_end = 0x480643ff,
+   .flags  = ADDR_TYPE_RT
+   },
+   {
+   .name   = "ohci",
+   .pa_start   = 0x48064400,
+   .pa_end = 0x480647ff,
+   },
+   {
+   .name   = "ehci",
+   .pa_start   = 0x48064800,
+   .pa_end = 0x48064cff,
+   },
+   {}
+};
+
+static struct omap_hwmod_ocp_if omap34xx_usb_host_hs__ick = {
+   .master = &omap3xxx_l4_core_hwmod,
+   .slave  = &omap34xx_usb_host_hs_hwmod,
+   .clk= "usbhost_ick",
+   .addr   = omap34xx_usb_host_hs_addrs,
+   .user   = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
+static struct omap_hwmod_ocp_if *omap34xx_usb_host_hs_slaves[] = {
+   &omap34xx_usb_host_hs__ick,
+};
+
+static struct omap_hwmod_opt_clk omap34xx_usb_host_hs_opt_clks[] = {
+ { .role = "ehci_logic_fck", .clk = "usbhost_120m_fck", },
+};
+
+static struct omap_hwmod_irq_info omap34xx_usb_host_hs_irqs[] = {
+   { .name = "ohci-irq", .irq = 76 },
+   { .name = "ehci-irq", .irq = 77 },
+   { .irq = -1 }
+};
+
+static struct omap_hwmod omap34xx_usb_host_hs_hwmod = {
+   .name   = "usb_host_hs",
+   .class  = &omap34xx_usb_host_hs_hwmod_class,
+   .clkdm_name = "l3_init_clkdm",
+   .mpu_irqs   = omap34xx_usb_host_hs_irqs,
+   .main_clk   = "usbhost_48m_fck",
+   .prcm = {
+   .omap2 = {
+   .module_offs = OMAP3430ES2_USBHOST_MOD,
+   .prcm_reg_id = 1,
+   .module_bit = OMAP3430ES2_EN_USBHOST1_SHIFT,
+   .idlest_reg_id = 1,
+   .idlest_idle_bit = OMAP3430ES2_ST_USBHOST_IDLE_SHIFT,
+   .idlest_stdby_bit = OMAP3430ES2_ST_USBHOST_STDBY_SHIFT,
+   },
+   },
+   .opt_clks   = omap34xx_usb_host_hs_opt_clks,
+   .opt_clks_cnt   = ARRAY_SIZE(omap34xx_usb_host_hs_opt_clks),
+   .slaves = omap34xx_usb_host_hs_slaves,
+   .slaves_cnt = ARRAY_SIZE(omap34xx_usb_host_hs_slaves),
+   .masters= omap34xx_usb_host_hs_masters,
+   .masters_cnt= ARRAY_SIZE(omap34xx_usb_host_hs_masters),
+
+   /*
+* Errata: USBHOST Configured In Smart-Idle Can Lead T