Re: [PATCH 14/16] usb: musb: dsps: add MUSB_DEVCTL_SESSION back after removal

From: Bin Liu
Date: Fri Jul 26 2013 - 13:53:30 EST


Sebastian,

On Fri, Jul 26, 2013 at 11:31 AM, Sebastian Andrzej Siewior
<bigeasy@xxxxxxxxxxxxx> wrote:
> * Bin Liu | 2013-07-23 13:55:27 [-0500]:
>
>>Hi Sebastian,
> Hi Bin,
>
>>either by SRP or HNP, or something else. In TI 3.2 kernel, there is
>>workaround in otg_timer() to _toggle_ the SESSION bit to detect if ID
>>pin is grounded, which means a USB device is connected.
>
> I've been looking at
> http://downloads.ti.com/sitara_linux/esd/AM335xSDK/latest/index_FDS.html
>
> and I can't find what you are talking about. My MUSB_DEVCTL doesn't
> change after I connect a device and the SESSION bit is not set. Also I
> remain in a_idle state. Do you have maybe a hint for me? :)

In TI 3.2 kernel, the otg_timer() toggles the SESSION bit in
OTG_STATE_B_IDLE state. So whenever the ID pin is grounded by
connecting a device, the controller will try go into host mode.
But I have no idea why your board is in a_idle not b_idle. The toggle
does not handle a_idle.

Do you use the AM335x GP EVM, not the smaller StarterKit EVM, right?
the USB0 port on SK EVM is device only.

But anyway, I have not seen any use case which uses micro-AB
receptacle and requires such dynamic role switching. So I kind of
think it is unnecessary to implement this feature.

And it is not easy to implement it in a right way, because AM335x does
not have an interrupt for ID pin grounding, so we can only try to set
SESSION bit in otg_timer(), but that causes 2sec VBUS pulsing on the
wire, which violates the specs.

>
>>Regards,
>>-Bin.
>
> Sebastian
--
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/