Re: musb_hdrc HNP?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, Aug 23, 2018 at 10:06:50PM +0000, Takashi Matsuzawa wrote:
> Hello.
> 
> I am trying HNP (host -> peripheral role change) using two
> PocketBeagles, but without success.

Well, you are the very first one that I have ever heard who tries to use
HNP on musb, at least on musb_dsps. 

> If there any idea on where I, where should I ask this, or how can I
> debug / fix, I really appreciate.

Being said, the controller itself does support HNP and other OTG
protocols, but the musb driver might not, or have been broken for a very
long time, since HNP probably never been tested on musb_dsps.

If you use kernel v4.18+, you can try to revert commit

0a9134bd733b usb: musb: disable otg protocol support

to see if HNP works.

Regards,
-Bin.

> 
> 1) What I did
> 
> Two PocketBeagles (running the default Debian image).
> Both added 2nd USB ports (musb_hdrc.1).
> DTBs were modified so that the 2nd musb_hdrcs have dr_mode = "otg".
> musb_dsps glue port seems to be used.
> Tech reference manual says the SoC's musb core supports HNP.
> 
> One is A (by GNDing ID pin) and another B, connected with USB cable.
> modprobe g_zero on both so that VBUS power is on, and A becomes a_host
> and b becomes b_peripheral (as read through debugfs mode value).
> 
> Then I did the following, expecting HNP happens and A bevcomes
> a_peripheral and B bcomes b_host:
> 
> i) Send b_hnp_enable request on A.
> (This does set DEVCTL.HOSTREQ bits on B's musb_hdrc.1 and maybe doing
> some additinoal things in musb driver on B.)
> 
> ii) Set POWER.SUSPENDM bit on A's musb_hdrc.1
> (According to TRM, this should tell B's musb core to initiate HNP.)
> 
> 2) Observation
> 
> A: a_host -> a_wait_bcon -> a_idle -> a_wait_vrise -> a_host
> B: b_peripheral -> b_idle -> b_peripheral
> 
> And I see "musb_hdrc.1 Babble" messages on both A and B console.
> 
> Looks like B disconnects once, but A = host/B = peripheral does not change.
> 
> Looking into musb driver source, there are code for HNP maybe to help
> musb core behavior.
> (But I have not enabled driver debug message yet, which I may try next?)



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux