lkml.org 
[lkml]   [2013]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 14/16] usb: musb: dsps: add MUSB_DEVCTL_SESSION back after removal
From
Sebastian,

On Fri, Jul 26, 2013 at 11:31 AM, Sebastian Andrzej Siewior
<bigeasy@linutronix.de> 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


\
 
 \ /
  Last update: 2013-07-26 20:21    [W:0.326 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site