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

From: Ming Lei
Date: Fri Aug 12 2011 - 03:25:26 EST


On Fri, Aug 12, 2011 at 1:46 PM, Munegowda, Keshava
<keshava_mgowda@xxxxxx> wrote:
> On Thu, Aug 11, 2011 at 8:53 PM, Ming Lei <tom.leiming@xxxxxxxxx> wrote:

>>> +static struct omap_hwmod_class_sysconfig omap34xx_usb_host_hs_sysc = {
>>> +       .rev_offs       = 0x0000,
>>> +       .sysc_offs      = 0x0010,
>>> +       .syss_offs      = 0x0014,
>>> +       .sysc_flags     = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE),
>>
>> SYSC_HAS_ENAWAKEUP is missed or not needed?
>
> not needed. wakeup will through irq-chaining mechanism.

I am wondering how irq-chaining mechanism can wakeup MPU, could you
describe it in a little detail?

In fact, I have tested usb remote wakeup on rc1 plus your patches on beagle
xm, seems the usb mouse can't wakeup MPU at all.

>>
>>> +       .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 = "usbhs_uhh",
>>> +       .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
>>> +       },
>>> +       {} /* Terminating Entry */
>>> +};
>>> +
>>> +static struct omap_hwmod_ocp_if omap34xx_l4_cfg__usb_host_hs = {
>>> +       .master         = &omap3xxx_l4_core_hwmod,
>>> +       .slave          = &omap34xx_usb_host_hs_hwmod,
>>> +       .clk            = "l4_ick",
>>> +       .addr           = omap34xx_usb_host_hs_addrs,
>>> +       .user           = OCP_USER_MPU | OCP_USER_SDMA,
>>> +};
>>
>> Even USBHOST_L4_ICLK is used only by USBHOST_SICLK, it is better to
>> define a "usbhost_siclk" clk for consistence with TRM.
>
> I dint understand, what is the change you are suggesting?

>From 23.2.1 of OMAP35x TRM(Rev. M), USBHOST_SICLK inside
'High-speed USB Host controller' is driven by L4 slave interface
clock, so looks like l4 iclk should be parent of USBHOST_SICLK.

Considered USBHOST_L4_ICLK is used only by USBHOST_SICLK,
you may ignore my question about it.

thanks,
--
Ming Lei
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/