Hello. I am trying HNP (host -> peripheral role change) using two PocketBeagles, but without success. If there any idea on where I, where should I ask this, or how can I debug / fix, I really appreciate. 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?)