Re: Nokia N900: musb is in wrong state after boot

From: Bin Liu
Date: Mon Feb 22 2016 - 10:37:09 EST


Hi,

On Mon, Feb 22, 2016 at 10:54:21AM +0200, Felipe Balbi wrote:
>
> Hi,
>
> Pali RohÃr <pali.rohar@xxxxxxxxx> writes:
> > On Monday 22 February 2016 09:31:50 Felipe Balbi wrote:
> >> Pali RohÃr <pali.rohar@xxxxxxxxx> writes:
> >>
> >> > On Tuesday 26 January 2016 18:26:32 Tony Lindgren wrote:
> >> >> * Pali RohÃr <pali.rohar@xxxxxxxxx> [160126 06:35]:
> >> >> > On Thursday 21 January 2016 12:30:13 Tony Lindgren wrote:
> >> >> > > * joerg Reisenweber <joerg@xxxxxxxxxxxx> [160121 11:35]:
> >> >> > > > On Thu 21 January 2016 11:21:13 Tony Lindgren wrote:
> >> >> > > > > Do you have some pointer
> >> >> > > > > to the "certain resistor value on ID to GND" spec? Is it
> >> >> > > > > maybe part of the carkit related parts of the USB spec?
> >> >> > > >
> >> >> > > > ""Three additional ID pin states are defined[4] at the nominal
> >> >> > > > resistance values of 124 kÎ, 68 kÎ, and 36.5 kÎ, with respect
> >> >> > > > to the ground pin. These permit the device to work with USB
> >> >> > > > Accessory Charger Adapters that allows the OTG device to be
> >> >> > > > attached to both a charger and another device simultaneously.
> >> >> > > > [6]""
> >> >> > > > https://en.wikipedia.org/wiki/USB_On-The-Go#OTG_micro_plugs
> >> >> > >
> >> >> > > OK thanks. So it's the "accessory charger" part of the
> >> >> > > battery charging specification 1.1.
> >> >> >
> >> >> > So, Tony, do you have some idea what needs to be changed and how to
> >> >> > fix peripheral mode after boot on Nokia N900?
> >> >>
> >> >> No, I'm waiting to hear an educated guess from Felipe on this one.
> >>
> >> about why peripheral mode doesn't work on n900 ? No idea. that's always
> >> the default role of MUSB and last I checked, before stopping working on
> >> this, BBB was working just fine.
> >>
> >> N900 is odd in that it has two PHYs (1701 handles data lines while
> >> twl4030 handles power lines, IIRC), but peripheral should be working.
> >>
> >> The only reason for MUSB to not start would be that it's not detecting
> >> VBUS being above session valid threshold, however twl4030 should have an
> >> IRQ for that.
> >>
> >> What happens when cable is attached ? Any IRQs anywhere firing ?
> >>
> >
> > Just to note, when I call echo peripheral > mode then detecting usb
> > cable starts working and usb peripheral mode also works fine (also
> > after disconnecting and connecting usb cable again). Read my first
> > post in this thread, there are also some logs:
> > https://lkml.org/lkml/2016/1/9/69
>
> interesting... that softconnect interface looks odd. We _know_ the value
> of softconnect from musb->softconnect. /me reads commit which added
> it... Oh okay, that's only valid for host mode. Argh!

softconnet bit is only valid for *peripheral* mode, but the bit is not
set in this case, so the host will not be able to detect the device.

Pali,

Is this never worked or just broken recently? If latter, possible to
git-bisect to find out which patch causes softconnect bit not set?

Regards,
-Bin.

>
> Okay, the session bit is _NOT_ set when it should be. Note that DevCtl
> reads as 0x98. Bit 0 is Session bit and that's not set. MUSB _is_ in the
> device mode (bit 7 set).
>
> For some reason DevCtl didn't get set. Care to add a print to
> musb_gadget_pullup() to see when/if it's called ?
>
> BTW, Bin will be maintaining MUSB going forward.
>
> --
> balbi