Hi I have started playing around with a board based on the DragonBoard 820c and I cannot manage to get the USB2 working as host. If I connect a mouse, before I start the board I can see how the system powers up the port (vbus) and enumerates the device, just to kill it a couple of seconds later. If I try to connect anything to the port after the board has been started, I get absolutely no message on dmesg about the event, also no irqs on the hcd, only on the gpios related to the cable detection. Any ideas of what can be wrong/how to proceed? Thanks [ 6.153511] dwc3 read:0xc144 0x120c93b [ 6.157267] dwc3 read:0xc148 0x27012412 [ 6.161088] dwc3 read:0xc14c 0x4108084 [ 6.164818] dwc3 read:0xc150 0x47822004 [ 6.168640] dwc3 read:0xc154 0x4202088 [ 6.172369] dwc3 read:0xc158 0x7870020 [ 6.176204] dwc3 read:0xc15c 0x0 [ 6.179923] dwc3 read:0xc600 0x47a [ 6.183463] dwc3 read:0xc120 0x5533270a [ 6.186476] dwc3 write:0xc128 0x40e0f [ 6.190446] phy phy-7412000.phy.4: qusb2_phy_init(): Initializing QUSB2 phy [ 6.194349] qusb2: setbits: offset 0xb4 val 0x23 [ 6.200865] qusb2: conf: offset 0x80 val 0xf8 [ 6.205697] qusb2: conf: offset 0x84 val 0xb3 [ 6.209948] qusb2: conf: offset 0x88 val 0x83 [ 6.214287] qusb2: conf: offset 0x8c val 0xc0 [ 6.218628] qusb2: conf: offset 0x8 val 0x30 [ 6.222968] qusb2: conf: offset 0xc val 0x79 [ 6.227308] qusb2: conf: offset 0x10 val 0x21 [ 6.231562] qusb2: conf: offset 0x9c val 0x14 [ 6.235815] qusb2: conf: offset 0x1c val 0x9f [ 6.240155] qusb2: conf: offset 0x18 val 0x0 [ 6.244504] qusb2: setbits: offset 0x84 val 0xb0 [ 6.248840] qusb2: clrbits: offset 0xb4 val 0x1 [ 6.253613] qusb2: pll_test: offset 0x4 val 0x80 [ 6.257792] dwc3 read:0xc2c0 0x10c0002 [ 6.262519] dwc3 write:0xc2c0 0x10e0002 [ 6.266076] dwc3 read:0xc200 0x2500 [ 6.269811] Disabling power management [ 6.273280] dwc3 write:0xc200 0x2400 [ 6.277099] dwc3 read:0xc110 0x102000 [ 6.280833] dwc3 write:0xc110 0x102000 [ 6.284396] phy phy-7412000.phy.4: qusb2_phy_poweron(): Powering-on QUSB2 phy [ 6.288078] regulator: /usr/src/kernel/drivers/regulator/qcom_smd-regulator.c:60 id 24 type 1634690156 [ 6.295531] dwc3 write:0xc400 0xff05b000 [ 6.304448] dwc3 write:0xc404 0x0 [ 6.308526] dwc3 write:0xc408 0x1000 [ 6.311735] dwc3 write:0xc40c 0x0 [ 6.315382] dwc3 read:0xc11c 0xc0002 [ 6.318584] dwc3 write:0xc11c 0xc0002 [ 6.322241] dwc3 read:0xc110 0x102000 [ 6.325797] dwc3 write:0xc110 0x101000 [ 6.329990] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 6.333134] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1 [ 6.338585] xhci-hcd xhci-hcd.0.auto: xHCI capability registers at ffff00000d408000: [ 6.346119] xhci-hcd xhci-hcd.0.auto: CAPLENGTH AND HCIVERSION 0x1000020: [ 6.350898] extcon gpio: ID 0x0 VBUS 0x1 (0xffff8000ba02e2a0) [ 6.350900] extcon: extcon_set_state_sync \xc3\xaed:2 state:1 [ 6.366517] xhci-hcd xhci-hcd.0.auto: CAPLENGTH: 0x20 [ 6.371548] xhci-hcd xhci-hcd.0.auto: HCIVERSION: 0x100 [ 6.376761] xhci-hcd xhci-hcd.0.auto: HCSPARAMS 1: 0x1000140 [ 6.381793] xhci-hcd xhci-hcd.0.auto: Max device slots: 64 [ 6.387693] xhci-hcd xhci-hcd.0.auto: Max interrupters: 1 [ 6.393335] xhci-hcd xhci-hcd.0.auto: Max ports: 1 [ 6.398631] xhci-hcd xhci-hcd.0.auto: HCSPARAMS 2: 0xc0000f1 [ 6.403838] xhci-hcd xhci-hcd.0.auto: Isoc scheduling threshold: 1 [ 6.409482] xhci-hcd xhci-hcd.0.auto: Maximum allowed segments in event ring: 15 [ 6.415821] xhci-hcd xhci-hcd.0.auto: HCSPARAMS 3 0x7ff000a: [ 6.423206] xhci-hcd xhci-hcd.0.auto: Worst case U1 device exit latency: 10 [ 6.429014] xhci-hcd xhci-hcd.0.auto: Worst case U2 device exit latency: 2047 [ 6.436046] xhci-hcd xhci-hcd.0.auto: HCC PARAMS 0x220f665: [ 6.443162] xhci-hcd xhci-hcd.0.auto: HC generates 64 bit addresses [ 6.448717] xhci-hcd xhci-hcd.0.auto: HC hasn't Contiguous Frame ID Capability [ 6.455319] xhci-hcd xhci-hcd.0.auto: HC can generate Stopped - Short Package event [ 6.462781] xhci-hcd xhci-hcd.0.auto: FIXME: more HCCPARAMS debugging [ 6.470506] xhci-hcd xhci-hcd.0.auto: RTSOFF 0x440: [ 6.476929] xhci-hcd xhci-hcd.0.auto: xHCI operational registers at ffff00000d408020: [ 6.481793] xhci-hcd xhci-hcd.0.auto: USBCMD 0x0: [ 6.489776] xhci-hcd xhci-hcd.0.auto: HC is being stopped [ 6.494465] xhci-hcd xhci-hcd.0.auto: HC has finished hard reset [ 6.499846] xhci-hcd xhci-hcd.0.auto: Event Interrupts disabled [ 6.506096] xhci-hcd xhci-hcd.0.auto: Host System Error Interrupts disabled [ 6.512261] xhci-hcd xhci-hcd.0.auto: HC has finished light reset [ 6.519378] xhci-hcd xhci-hcd.0.auto: USBSTS 0x11: [ 6.525453] xhci-hcd xhci-hcd.0.auto: Event ring is empty [ 6.530315] xhci-hcd xhci-hcd.0.auto: No Host System Error [ 6.535783] xhci-hcd xhci-hcd.0.auto: HC is halted [ 6.541689] xhci-hcd xhci-hcd.0.auto: ffff00000d408420 port status reg = 0x20ae1 [ 6.546636] xhci-hcd xhci-hcd.0.auto: ffff00000d408424 port power reg = 0x0 [ 6.554019] xhci-hcd xhci-hcd.0.auto: ffff00000d408428 port link reg = 0x0 [ 6.560699] xhci-hcd xhci-hcd.0.auto: ffff00000d40842c port reserved reg = 0x0 [ 6.567645] xhci-hcd xhci-hcd.0.auto: // Halt the HC [ 6.574849] xhci-hcd xhci-hcd.0.auto: Resetting HCD [ 6.579967] xhci-hcd xhci-hcd.0.auto: // Reset the HC [ 6.584620] xhci-hcd xhci-hcd.0.auto: Wait for controller to be ready for doorbell rings [ 6.589780] xhci-hcd xhci-hcd.0.auto: Reset complete [ 6.597936] xhci-hcd xhci-hcd.0.auto: Enabling 64-bit DMA addresses. [ 6.602886] xhci-hcd xhci-hcd.0.auto: Calling HCD init [ 6.609221] xhci-hcd xhci-hcd.0.auto: xhci_init [ 6.614168] xhci-hcd xhci-hcd.0.auto: xHCI doesn't need link TRB QUIRK [ 6.618598] xhci-hcd xhci-hcd.0.auto: Supported page size register = 0x1 [ 6.625196] xhci-hcd xhci-hcd.0.auto: Supported page size of 4K [ 6.632050] xhci-hcd xhci-hcd.0.auto: HCD page size set to 4K [ 6.637693] xhci-hcd xhci-hcd.0.auto: // xHC can handle at most 64 device slots. [ 6.643598] xhci-hcd xhci-hcd.0.auto: // Setting Max device slots reg = 0x40. [ 6.651142] xhci-hcd xhci-hcd.0.auto: // Device context base array address = 0xff05c000 (DMA), ffff000009ced000 (virt) [ 6.658129] xhci-hcd xhci-hcd.0.auto: Allocated command ring at ffff8000ba395d80 [ 6.668687] xhci-hcd xhci-hcd.0.auto: First segment DMA is 0xff05d000 [ 6.676238] xhci-hcd xhci-hcd.0.auto: // Setting command ring address to 0x00000000ff05d001 [ 6.682581] xhci-hcd xhci-hcd.0.auto: // xHC command ring deq ptr low bits + flags = @00000000 [ 6.690734] xhci-hcd xhci-hcd.0.auto: // xHC command ring deq ptr high bits = @00000000 [ 6.699442] xhci-hcd xhci-hcd.0.auto: // Doorbell array is located at offset 0x480 from cap regs base addr [ 6.707318] xhci-hcd xhci-hcd.0.auto: // xHCI capability registers at ffff00000d408000: [ 6.717037] xhci-hcd xhci-hcd.0.auto: // @ffff00000d408000 = 0x1000020 (CAPLENGTH AND HCIVERSION) [ 6.724936] xhci-hcd xhci-hcd.0.auto: // CAPLENGTH: 0x20 [ 6.733961] xhci-hcd xhci-hcd.0.auto: // HCIVERSION: 0x100 [ 6.739343] xhci-hcd xhci-hcd.0.auto: // xHCI operational registers at ffff00000d408020: [ 6.745162] xhci-hcd xhci-hcd.0.auto: // @ffff00000d408018 = 0x440 RTSOFF [ 6.753232] xhci-hcd xhci-hcd.0.auto: // xHCI runtime registers at ffff00000d408440: [ 6.759918] xhci-hcd xhci-hcd.0.auto: // @ffff00000d408014 = 0x480 DBOFF [ 6.767728] xhci-hcd xhci-hcd.0.auto: // Doorbell array at ffff00000d408480: [ 6.774414] xhci-hcd xhci-hcd.0.auto: xHCI runtime registers at ffff00000d408440: [ 6.781445] xhci-hcd xhci-hcd.0.auto: ffff00000d408440: Microframe index = 0x0 [ 6.788828] xhci-hcd xhci-hcd.0.auto: // Allocating event ring [ 6.796310] xhci-hcd xhci-hcd.0.auto: TRB math tests passed. [ 6.801962] xhci-hcd xhci-hcd.0.auto: // Allocated event ring segment table at 0xff060000 [ 6.807753] xhci-hcd xhci-hcd.0.auto: Set ERST to 0; private num segs = 1, virt addr = ffff000009d0d000, dma addr = 0xff060000 [ 6.815825] xhci-hcd xhci-hcd.0.auto: // Write ERST size = 1 to ir_set 0 (some bits preserved) [ 6.827107] xhci-hcd xhci-hcd.0.auto: // Set ERST entries to point to event ring. [ 6.835697] xhci-hcd xhci-hcd.0.auto: // Set ERST base address for ir_set 0 = 0xff060000 [ 6.843254] xhci-hcd xhci-hcd.0.auto: // Write event ring dequeue pointer, preserving EHB bit [ 6.851415] xhci-hcd xhci-hcd.0.auto: Wrote ERST address to ir_set 0. [ 6.859830] xhci-hcd xhci-hcd.0.auto: Allocating 1 scratchpad buffers [ 6.866298] xhci-hcd xhci-hcd.0.auto: Ext Cap ffff00000d408890, port offset = 1, count = 1, revision = 0x2 [ 6.872683] xhci-hcd xhci-hcd.0.auto: xHCI 1.0: support USB2 software lpm [ 6.882225] xhci-hcd xhci-hcd.0.auto: xHCI 1.0: support USB2 hardware lpm [ 6.889081] xhci: Disabling all PM [ 6.895850] xhci-hcd xhci-hcd.0.auto: Found 1 USB 2.0 ports and 0 USB 3.0 ports. [ 6.899153] xhci-hcd xhci-hcd.0.auto: USB 2.0 port at index 0, addr = ffff00000d408420 [ 6.906707] xhci-hcd xhci-hcd.0.auto: Finished xhci_init [ 6.914430] xhci-hcd xhci-hcd.0.auto: Called HCD init [ 6.919898] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220f665 hci version 0x100 quirks 0x02010010 [ 6.924885] xhci-hcd xhci-hcd.0.auto: irq 183, io mem 0x07600000 [ 6.933354] xhci-hcd xhci-hcd.0.auto: xhci_run [ 6.939608] xhci-hcd xhci-hcd.0.auto: // xHC command ring deq ptr low bits + flags = @00000000 [ 6.943860] xhci-hcd xhci-hcd.0.auto: // xHC command ring deq ptr high bits = @00000000 [ 6.952453] xhci-hcd xhci-hcd.0.auto: ERST memory map follows: [ 6.960352] xhci-hcd xhci-hcd.0.auto: @00000000ff060000 ff05f000 00000000 00000100 00000000 [ 6.966255] xhci-hcd xhci-hcd.0.auto: ERST deq = 64'hff05f000 [ 6.974498] xhci-hcd xhci-hcd.0.auto: // Set the interrupt modulation register [ 6.980406] xhci-hcd xhci-hcd.0.auto: // Enable interrupts, cmd = 0x4. [ 6.987522] xhci-hcd xhci-hcd.0.auto: // Enabling event ring interrupter ffff00000d408460 by writing 0x2 to irq_pending [ 6.994036] xhci-hcd xhci-hcd.0.auto: ffff00000d408460: ir_set[0] [ 7.004707] xhci-hcd xhci-hcd.0.auto: ffff00000d408460: ir_set.pending = 0x2 [ 7.010961] xhci-hcd xhci-hcd.0.auto: ffff00000d408464: ir_set.control = 0xa0 [ 7.018251] xhci-hcd xhci-hcd.0.auto: ffff00000d408468: ir_set.erst_size = 0x1 [ 7.025458] xhci-hcd xhci-hcd.0.auto: ffff00000d408470: ir_set.erst_base = @ff060000 [ 7.033097] xhci-hcd xhci-hcd.0.auto: ffff00000d408478: ir_set.erst_dequeue = @ff05f000 [ 7.040819] xhci-hcd xhci-hcd.0.auto: Finished xhci_run for USB2 roothub [ 7.049473] xHCI xhci_add_endpoint called for root hub [ 7.055849] xHCI xhci_check_bandwidth called for root hub [ 7.060799] xhci-hcd xhci-hcd.0.auto: Endpoint 0x81 ep reset callback called [ 7.066424] hub 1-0:1.0: USB hub found [ 7.073406] hub 1-0:1.0: 1 port detected [ 7.077003] xhci-hcd xhci-hcd.0.auto: set port power, actual port 0 status = 0x20ae1 [ 7.081165] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller [ 7.088749] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2 [ 7.094135] xhci-hcd xhci-hcd.0.auto: // Turn on HC, cmd = 0x5. [ 7.101673] xhci-hcd xhci-hcd.0.auto: Finished xhci_run for USB3 roothub [ 7.107574] xhci-hcd xhci-hcd.0.auto: Port Status Change Event for port 1 [ 7.107580] xhci-hcd xhci-hcd.0.auto: handle_port_status: starting port polling. [ 7.107585] port 0 temp =0x20ae1 [ 7.128716] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 7.132232] xHCI xhci_add_endpoint called for root hub [ 7.139958] xHCI xhci_check_bandwidth called for root hub [ 7.144905] xhci-hcd xhci-hcd.0.auto: Endpoint 0x81 ep reset callback called [ 7.150497] hub 2-0:1.0: USB hub found [ 7.157508] hub 2-0:1.0: config failed, hub doesn't have any ports! (err -19) [ 7.182960] xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status = 0x20ae1 [ 7.183010] xhci-hcd xhci-hcd.0.auto: Get port status returned 0x10301 [ 7.189844] xhci-hcd xhci-hcd.0.auto: clear port connect change, actual port 0 status = 0xae1 [ 7.298872] xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status = 0xae1 [ 7.298889] xhci-hcd xhci-hcd.0.auto: Get port status returned 0x301 [ 7.305679] port 0 temp =0xae1 [ 7.311998] xhci-hcd xhci-hcd.0.auto: xhci_hub_status_data: stopping port polling. status 0xx0 reset_change 0x0 retval 0x1 [ 7.314917] xhci-hcd xhci-hcd.0.auto: // Ding dong! [ 7.326015] xhci-hcd xhci-hcd.0.auto: Slot 1 output ctx = 0xff063000 (dma) [ 7.330705] xhci-hcd xhci-hcd.0.auto: Slot 1 input ctx = 0xff064000 (dma) [ 7.337679] xhci-hcd xhci-hcd.0.auto: Set slot id 1 dcbaa entry ffff000009ced008 to 0xff063000 [ 7.344503] xhci-hcd xhci-hcd.0.auto: set port reset, actual port 0 status = 0xaf1 [ 7.394516] xhci-hcd xhci-hcd.0.auto: Port Status Change Event for port 1 [ 7.394535] xhci-hcd xhci-hcd.0.auto: handle_port_status: starting port polling. [ 7.400269] port 0 temp =0x200a03 [ 7.418846] xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status = 0x200a03 [ 7.418862] xhci-hcd xhci-hcd.0.auto: Get port status returned 0x100303 [ 7.425666] xhci-hcd xhci-hcd.0.auto: clear port reset change, actual port 0 status = 0xa03 [ 7.490926] usb 1-1: new low-speed USB device number 2 using xhci-hcd [ 7.490976] xhci-hcd xhci-hcd.0.auto: Set root hub portnum to 1 [ 7.496402] xhci-hcd xhci-hcd.0.auto: Set fake root hub portnum to 1 [ 7.502120] xhci-hcd xhci-hcd.0.auto: udev->tt = ffff8000b9530898 [ 7.508715] xhci-hcd xhci-hcd.0.auto: udev->ttport = 0x1 [ 7.514712] xhci-hcd xhci-hcd.0.auto: // Ding dong! [ 7.520118] xhci-hcd xhci-hcd.0.auto: Successful setup context command [ 7.524693] xhci-hcd xhci-hcd.0.auto: Op regs DCBAA ptr = 0x000000ff05c000 [ 7.531291] xhci-hcd xhci-hcd.0.auto: Slot ID 1 dcbaa entry @ffff000009ced008 = 0x000000ff063000 [ 7.538146] xhci-hcd xhci-hcd.0.auto: Output Context DMA address = 0xff063000 [ 7.547085] xhci-hcd xhci-hcd.0.auto: Internal device address = 0 [ 7.554549] xhci-hcd xhci-hcd.0.auto: Waiting for status stage event [ 7.560183] xhci-hcd xhci-hcd.0.auto: set port reset, actual port 0 status = 0xa11 [ 7.594820] port 0 temp =0xaf1 [ 7.594831] xhci-hcd xhci-hcd.0.auto: xhci_hub_status_data: stopping port polling. status 0xx0 reset_change 0x0 retval 0x1 [ 7.610190] xhci-hcd xhci-hcd.0.auto: Port Status Change Event for port 1 [ 7.610207] xhci-hcd xhci-hcd.0.auto: handle_port_status: starting port polling. [ 7.615939] port 0 temp =0x200a03 [ 7.630837] xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status = 0x200a03 [ 7.630852] xhci-hcd xhci-hcd.0.auto: Get port status returned 0x100303 [ 7.637653] xhci-hcd xhci-hcd.0.auto: clear port reset change, actual port 0 status = 0xa03 [ 7.702844] xhci-hcd xhci-hcd.0.auto: Resetting device with slot ID 1 [ 7.702865] xhci-hcd xhci-hcd.0.auto: // Ding dong! [ 7.708267] xhci-hcd xhci-hcd.0.auto: Completed reset device command. [ 7.712969] xhci-hcd xhci-hcd.0.auto: Can't reset device (slot ID 1) in default state [ 7.719548] xhci-hcd xhci-hcd.0.auto: Not freeing device rings. [ 7.727362] xhci-hcd xhci-hcd.0.auto: // Ding dong! [ 7.733282] xhci-hcd xhci-hcd.0.auto: Successful setup address command [ 7.737959] xhci-hcd xhci-hcd.0.auto: Op regs DCBAA ptr = 0x000000ff05c000 [ 7.744548] xhci-hcd xhci-hcd.0.auto: Slot ID 1 dcbaa entry @ffff000009ced008 = 0x000000ff063000 [ 7.751405] xhci-hcd xhci-hcd.0.auto: Output Context DMA address = 0xff063000 [ 7.760346] xhci-hcd xhci-hcd.0.auto: Internal device address = 0 [ 7.767380] xhci-hcd xhci-hcd.0.auto: Endpoint 0x0 ep reset callback called [ 7.792906] xhci-hcd xhci-hcd.0.auto: Waiting for status stage event [ 7.793793] xhci-hcd xhci-hcd.0.auto: Waiting for status stage event [ 7.799202] usb 1-1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes [ 7.804766] xhci-hcd xhci-hcd.0.auto: add ep 0x81, slot id 1, new drop flags = 0x0, new add flags = 0x8 [ 7.813105] xhci-hcd xhci-hcd.0.auto: xhci_check_bandwidth called for udev ffff8000b959f000 [ 7.822479] xhci-hcd xhci-hcd.0.auto: // Ding dong! [ 7.837755] xhci-hcd xhci-hcd.0.auto: Successful Endpoint Configure command [ 7.837812] xhci-hcd xhci-hcd.0.auto: Endpoint 0x81 ep reset callback called [ 7.843564] port 0 temp =0xa03 [ 7.843581] xhci-hcd xhci-hcd.0.auto: xhci_hub_status_data: stopping port polling. status 0xx0 reset_change 0x0 retval 0x1 [ 7.856568] input: USB Optical Mouse as /devices/platform/soc/soc:usb@7600000/7600000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1:1.0/0003:0461:4D0F.0001/input/input0 [ 7.864901] hid-generic 0003:0461:4D0F.0001: input: USB HID v1.11 Mouse [USB Optical Mouse] on usb-xhci-hcd.0.auto-1/input0 [ 9.961598] xhci-hcd xhci-hcd.0.auto: Cancel URB ffff8000b95e1100, dev 1, ep 0x81, starting at offset 0xff067000 [ 9.961608] xhci-hcd xhci-hcd.0.auto: // Ding dong! [ 15.070899] xhci-hcd xhci-hcd.0.auto: xHCI host not responding to stop endpoint command. [ 15.070957] xhci-hcd xhci-hcd.0.auto: // Halt the HC [ 15.111675] xhci-hcd xhci-hcd.0.auto: xHCI host controller not responding, assume dead [ 15.111724] xhci-hcd xhci-hcd.0.auto: Killing URBs for slot ID 1, ep index 0 [ 15.118493] xhci-hcd xhci-hcd.0.auto: Killing URBs for slot ID 1, ep index 2 [ 15.125736] xhci-hcd xhci-hcd.0.auto: HC died; cleaning up [ 15.132773] xhci-hcd xhci-hcd.0.auto: xHCI host controller is dead. [ 15.138199] usb 1-1: USB disconnect, device number 2 -- Ricardo Ribalda -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html