On 02/28/2017 02:44 PM, Vardan Mikayelyan wrote:
On 2/28/2017 3:44 PM, Francesco Lavra wrote:Hi Vardan, On 02/28/2017 09:41 AM, Vardan Mikayelyan wrote:On 2/27/2017 11:55 PM, Francesco Lavra wrote:Hi, On 02/23/2017 08:27 PM, Heiko Stuebner wrote:Hi Francesco, Am Donnerstag, 23. Februar 2017, 19:11:37 CET schrieb Francesco Lavra:I'm having trouble getting the RK3288 OTG controller (the one at ff580000) to work in peripheral mode. I'm using a Firefly Reload board, and I know the hardware is fine because I can successfully use the port in device mode with U-Boot's mass storage gadget driver. Under Linux, the OTG port works fine when used in host mode, but fails to work in device mode: nothing happens when the a USB host is plugged into the OTG port, not even a single interrupt is generated by the controller. I'm using the latest device tree definitions from git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git.you shouldn't use my tree as base for any real work :-) . Best to use the regular mainline kernel or alternatively try linux-next to get all recent usb changes schedules for the next release.Thanks for your inputs. I was actually using the mainline kernel (4.8.1), in which the dwc2 driver wasn't working, that's why I went to your tree to pick up any fixes or new features that might have been done. I also went to the linux-usb tree for the same reason. Anyway, today I tried with the latest mainline release 4.10.0, and also with linux-next. Unfortunately, still no luck: I can load a gadget driver, which gets correctly bound to the OTG controller, but then nothing happens if a USB host is connected to the OTG port. I'm pasting below the dmesg contents (obtained with 4.10.0, with verbose debugging enabled for the dwc2 driver) when a gadget driver is loaded, in case you might spot something suspicious: [ 1147.035367] dwc2 ff580000.usb: bound driver g_audio [ 1147.041203] dwc2 ff580000.usb: dwc2_hsotg_pullup: is_on: 1 op_state: 3 [ 1147.041250] dwc2 ff580000.usb: dwc2_core_reset() [ 1147.041345] dwc2 ff580000.usb: FIFOs reset, timeout at 100 [ 1147.041405] dwc2 ff580000.usb: EP0: DIEPCTL0=0x00008000, DOEPCTL0=0x00008000 [ 1147.041447] dwc2 ff580000.usb: gsintmsk now 0xd08c3cc4 [ 1147.041554] dwc2 ff580000.usb: DCTL=0x00000002 [ 1147.041631] dwc2 ff580000.usb: dwc2_hsotg_enqueue_setup: queueing setup request [ 1147.041692] dwc2 ff580000.usb: ep0: req ee241680: 8@ee241198, noi=0, zero=0, snok=0 [ 1147.041757] dwc2 ff580000.usb: dwc2_hsotg_start_req: DxEPCTL=0x80008000, ep 0, dir out [ 1147.041799] dwc2 ff580000.usb: ureq->length:8 ureq->actual:0 [ 1147.041896] dwc2 ff580000.usb: dwc2_hsotg_start_req: 1@8/8, 0x00080008 => 0x00000b10 [ 1147.041975] dwc2 ff580000.usb: dwc2_hsotg_start_req: 2e243000 pad => 0x00000b14 [ 1147.042014] dwc2 ff580000.usb: ep0 state:0 [ 1147.042055] dwc2 ff580000.usb: dwc2_hsotg_start_req: DxEPCTL=0x80008000 [ 1147.042097] dwc2 ff580000.usb: dwc2_hsotg_start_req: DXEPCTL=0x80008000 [ 1147.042169] dwc2 ff580000.usb: EP0: DIEPCTL0=0x00008000, DOEPCTL0=0x80008000 Thanks, Francesco --Hi Francesco, Could you please provide full log (with debugs enabled) from DWC2 driver loading to issue point? Two logs are not giving us the full picture.The full log from the DWC2 driver is below: [ 1.498030] dwc2 ff580000.usb: ff580000.usb supply vusb_d not found, using dummy regulator [ 1.507431] dwc2 ff580000.usb: ff580000.usb supply vusb_a not found, using dummy regulator [ 1.880012] dwc2 ff580000.usb: dwc2_check_param_tx_fifo_sizes: Invalid parameter g-tx-fifo-size, setting to default average [ 1.892596] dwc2 ff580000.usb: EPs: 10, dedicated fifos, 972 entries in SPRAM [ 1.901018] dwc2 ff580000.usb: DCFG=0x08100000, DCTL=0x00000002, DIEPMSK=00000000 [ 1.909432] dwc2 ff580000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00006664 [ 1.916698] dwc2 ff580000.usb: GRXFSIZ=0x00000400, GNPTXFSIZ=0x00100400 [ 1.924161] dwc2 ff580000.usb: DPTx[1] FSize=256, StAddr=0x00000410 [ 1.931224] dwc2 ff580000.usb: DPTx[2] FSize=256, StAddr=0x00000900 [ 1.938261] dwc2 ff580000.usb: DPTx[3] FSize=256, StAddr=0x00000a00 [ 1.945318] dwc2 ff580000.usb: DPTx[4] FSize=256, StAddr=0x00000b00 [ 1.952375] dwc2 ff580000.usb: DPTx[5] FSize=256, StAddr=0x00000c00 [ 1.959410] dwc2 ff580000.usb: DPTx[6] FSize=256, StAddr=0x00000d00 [ 1.966456] dwc2 ff580000.usb: DPTx[7] FSize=0, StAddr=0x00000e00 [ 1.973317] dwc2 ff580000.usb: DPTx[8] FSize=0, StAddr=0x00000f00 [ 1.980180] dwc2 ff580000.usb: DPTx[9] FSize=256, StAddr=0x00000410 [ 1.987216] dwc2 ff580000.usb: ep0-in: EPCTL=0x00008800, SIZ=0x00000000, DMA=0x379a4f2d [ 1.996232] dwc2 ff580000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0xe3103c4f [ 2.005352] dwc2 ff580000.usb: ep1-in: EPCTL=0x00001000, SIZ=0x00000000, DMA=0x5cf9a35d [ 2.014369] dwc2 ff580000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x8b00a168 [ 2.023482] dwc2 ff580000.usb: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0xfef360cf [ 2.032497] dwc2 ff580000.usb: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x9f637bc4 [ 2.041609] dwc2 ff580000.usb: ep3-in: EPCTL=0x00002000, SIZ=0x00000000, DMA=0xf03470c5 [ 2.050625] dwc2 ff580000.usb: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x8b00a168 [ 2.059715] dwc2 ff580000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0xfef360cf [ 2.068731] dwc2 ff580000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0xb6c8c271 [ 2.077843] dwc2 ff580000.usb: ep5-in: EPCTL=0x00003000, SIZ=0x00000000, DMA=0x84245611 [ 2.086858] dwc2 ff580000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x8b00a168 [ 2.095970] dwc2 ff580000.usb: ep6-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0xfef360cf [ 2.104986] dwc2 ff580000.usb: ep6-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x0a6c1c90 [ 2.114102] dwc2 ff580000.usb: ep7-in: EPCTL=0x00004000, SIZ=0x00000000, DMA=0xaccb75ec [ 2.123111] dwc2 ff580000.usb: ep7-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x8b00a168 [ 2.132222] dwc2 ff580000.usb: ep8-in: EPCTL=0x00004800, SIZ=0x00000000, DMA=0x4625773c [ 2.141254] dwc2 ff580000.usb: ep8-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x437c9154 [ 2.150371] dwc2 ff580000.usb: ep9-in: EPCTL=0x00005000, SIZ=0x00000000, DMA=0x9cb1c89c [ 2.159365] dwc2 ff580000.usb: ep9-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x6ec79617 [ 2.168476] dwc2 ff580000.usb: DVBUSDIS=0x00000b8f, DVBUSPULSE=000002c6 [ 2.175996] usb 1-1: new high-speed USB device number 2 using dwc2 [ 2.176105] dwc2 ff580000.usb: DWC OTG Controller [ 2.176147] dwc2 ff580000.usb: new USB bus registered, assigned bus number 2 [ 2.176195] dwc2 ff580000.usb: irq 41, io mem 0xff580000 [ 2.176450] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.176462] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.176470] usb usb2: Product: DWC OTG Controller [ 2.176478] usb usb2: Manufacturer: Linux 4.10.0+ dwc2_hsotg [ 2.176485] usb usb2: SerialNumber: ff580000.usb [ 1147.035367] dwc2 ff580000.usb: bound driver g_audio [ 1147.041203] dwc2 ff580000.usb: dwc2_hsotg_pullup: is_on: 1 op_state: 3 [ 1147.041250] dwc2 ff580000.usb: dwc2_core_reset() [ 1147.041345] dwc2 ff580000.usb: FIFOs reset, timeout at 100 [ 1147.041405] dwc2 ff580000.usb: EP0: DIEPCTL0=0x00008000, DOEPCTL0=0x00008000 [ 1147.041447] dwc2 ff580000.usb: gsintmsk now 0xd08c3cc4 [ 1147.041554] dwc2 ff580000.usb: DCTL=0x00000002 [ 1147.041631] dwc2 ff580000.usb: dwc2_hsotg_enqueue_setup: queueing setup request [ 1147.041692] dwc2 ff580000.usb: ep0: req ee241680: 8@ee241198, noi=0, zero=0, snok=0 [ 1147.041757] dwc2 ff580000.usb: dwc2_hsotg_start_req: DxEPCTL=0x80008000, ep 0, dir out [ 1147.041799] dwc2 ff580000.usb: ureq->length:8 ureq->actual:0 [ 1147.041896] dwc2 ff580000.usb: dwc2_hsotg_start_req: 1@8/8, 0x00080008 => 0x00000b10 [ 1147.041975] dwc2 ff580000.usb: dwc2_hsotg_start_req: 2e243000 pad => 0x00000b14 [ 1147.042014] dwc2 ff580000.usb: ep0 state:0 [ 1147.042055] dwc2 ff580000.usb: dwc2_hsotg_start_req: DxEPCTL=0x80008000 [ 1147.042097] dwc2 ff580000.usb: dwc2_hsotg_start_req: DXEPCTL=0x80008000 [ 1147.042169] dwc2 ff580000.usb: EP0: DIEPCTL0=0x00008000, DOEPCTL0=0x80008000 Thanks, FrancescoThanks, Vardan.Seems here we have fifo configuration issue. We will follow up it and provide feedback soon. If it is possible, can you please provide to us register dump after driver loading.
Sure, here is the dump before loading the gadget driver: GOTGCTL = 0x00010000 GOTGINT = 0x00000000 GAHBCFG = 0x0000002f GUSBCFG = 0x00001408 GRSTCTL = 0x80000000 GINTSTS = 0x04000030 GINTMSK = 0xd0000806 GRXSTSR = 0x00000000 GRXSTSP = 0x00000000 GRXFSIZ = 0x00000400 GNPTXFSIZ = 0x00100400 GNPTXSTS = 0x00080010 GI2CCTL = 0x00000000 GPVNDCTL = 0x00000000 GGPIO = 0x00000000 GUID = 0x32000001 GSNPSID = 0x4f54310a GHWCFG1 = 0x00006664 GHWCFG2 = 0x228e2450 GHWCFG3 = 0x03cc90e8 GHWCFG4 = 0xdbf04030 GLPMCFG = 0x00000000 GPWRDN = 0x00000000 GDFIFOCFG = 0x03cc0400 ADPCTL = 0x00000000 HPTXFSIZ = 0x00000000 DPTXFSIZN(1) = 0x01000410 DPTXFSIZN(2) = 0x01000900 DPTXFSIZN(3) = 0x01000a00 DPTXFSIZN(4) = 0x01000b00 DPTXFSIZN(5) = 0x01000c00 DPTXFSIZN(6) = 0x01000d00 DPTXFSIZN(7) = 0x00000e00 DPTXFSIZN(8) = 0x00000f00 DPTXFSIZN(9) = 0x01000410 DPTXFSIZN(10) = 0x01000900 DPTXFSIZN(11) = 0x01000a00 DPTXFSIZN(12) = 0x01000b00 DPTXFSIZN(13) = 0x01000c00 DPTXFSIZN(14) = 0x01000d00 DPTXFSIZN(15) = 0x00000e00 DCFG = 0x08100000 DCTL = 0x00000002 DSTS = 0x0007ff02 DIEPMSK = 0x00000000 DOEPMSK = 0x00000000 DAINT = 0x00000000 DAINTMSK = 0x00000000 DTKNQR1 = 0x00000000 DTKNQR2 = 0x00000000 DTKNQR3 = 0x0c100020 DTKNQR4 = 0x00000000 DVBUSDIS = 0x00000b8f DVBUSPULSE = 0x000002c6 DIEPCTL(0) = 0x00008800 DIEPCTL(1) = 0x00001000 DIEPCTL(2) = 0x00000000 DIEPCTL(3) = 0x00002000 DIEPCTL(4) = 0x00000000 DIEPCTL(5) = 0x00003000 DIEPCTL(6) = 0x00000000 DIEPCTL(7) = 0x00004000 DIEPCTL(8) = 0x00004800 DIEPCTL(9) = 0x00005000 DIEPCTL(10) = 0x00000000 DIEPCTL(11) = 0x00000000 DIEPCTL(12) = 0x00000000 DIEPCTL(13) = 0x00000000 DIEPCTL(14) = 0x00000000 DIEPCTL(15) = 0x00000000 DOEPCTL(0) = 0x00008000 DOEPCTL(1) = 0x00000000 DOEPCTL(2) = 0x00000000 DOEPCTL(3) = 0x00000000 DOEPCTL(4) = 0x00000000 DOEPCTL(5) = 0x00000000 DOEPCTL(6) = 0x00000000 DOEPCTL(7) = 0x00000000 DOEPCTL(8) = 0x00000000 DOEPCTL(9) = 0x00000000 DOEPCTL(10) = 0x00000000 DOEPCTL(11) = 0x00000000 DOEPCTL(12) = 0x00000000 DOEPCTL(13) = 0x00000000 DOEPCTL(14) = 0x00000000 DOEPCTL(15) = 0x00000000 DIEPINT(0) = 0x00000080 DIEPINT(1) = 0x00000080 DIEPINT(2) = 0x00000080 DIEPINT(3) = 0x00000080 DIEPINT(4) = 0x00000080 DIEPINT(5) = 0x00000080 DIEPINT(6) = 0x00000080 DIEPINT(7) = 0x00000080 DIEPINT(8) = 0x00000080 DIEPINT(9) = 0x00000080 DIEPINT(10) = 0x00000080 DIEPINT(11) = 0x00000080 DIEPINT(12) = 0x00000080 DIEPINT(13) = 0x00000080 DIEPINT(14) = 0x00000080 DIEPINT(15) = 0x00000080 DOEPINT(0) = 0x00000000 DOEPINT(1) = 0x00000000 DOEPINT(2) = 0x00000000 DOEPINT(3) = 0x00000000 DOEPINT(4) = 0x00000000 DOEPINT(5) = 0x00000000 DOEPINT(6) = 0x00000000 DOEPINT(7) = 0x00000000 DOEPINT(8) = 0x00000000 DOEPINT(9) = 0x00000000 DOEPINT(10) = 0x00000000 DOEPINT(11) = 0x00000000 DOEPINT(12) = 0x00000000 DOEPINT(13) = 0x00000000 DOEPINT(14) = 0x00000000 DOEPINT(15) = 0x00000000 DIEPTSIZ(0) = 0x00000000 DIEPTSIZ(1) = 0x00000000 DIEPTSIZ(2) = 0x00000000 DIEPTSIZ(3) = 0x00000000 DIEPTSIZ(4) = 0x00000000 DIEPTSIZ(5) = 0x00000000 DIEPTSIZ(6) = 0x00000000 DIEPTSIZ(7) = 0x00000000 DIEPTSIZ(8) = 0x00000000 DIEPTSIZ(9) = 0x00000000 DIEPTSIZ(10) = 0x00000000 DIEPTSIZ(11) = 0x00000000 DIEPTSIZ(12) = 0x00000000 DIEPTSIZ(13) = 0x00000000 DIEPTSIZ(14) = 0x00000000 DIEPTSIZ(15) = 0x00000000 DOEPTSIZ(0) = 0x00000000 DOEPTSIZ(1) = 0x00000000 DOEPTSIZ(2) = 0x00000000 DOEPTSIZ(3) = 0x00000000 DOEPTSIZ(4) = 0x00000000 DOEPTSIZ(5) = 0x00000000 DOEPTSIZ(6) = 0x00000000 DOEPTSIZ(7) = 0x00000000 DOEPTSIZ(8) = 0x00000000 DOEPTSIZ(9) = 0x00000000 DOEPTSIZ(10) = 0x00000000 DOEPTSIZ(11) = 0x00000000 DOEPTSIZ(12) = 0x00000000 DOEPTSIZ(13) = 0x00000000 DOEPTSIZ(14) = 0x00000000 DOEPTSIZ(15) = 0x00000000 DIEPDMA(0) = 0x379a4f6d DIEPDMA(1) = 0x5cc9a35d DIEPDMA(2) = 0xfef360cb DIEPDMA(3) = 0xf83470c5 DIEPDMA(4) = 0xfef360cb DIEPDMA(5) = 0xbc245623 DIEPDMA(6) = 0xfef360cb DIEPDMA(7) = 0xbdcb75ec DIEPDMA(8) = 0x46617f3e DIEPDMA(9) = 0x9cb1ca9c DIEPDMA(10) = 0xfef360cb DIEPDMA(11) = 0xfef360cb DIEPDMA(12) = 0xfef360cb DIEPDMA(13) = 0xfef360cb DIEPDMA(14) = 0xfef360cb DIEPDMA(15) = 0xfef360cb DOEPDMA(0) = 0xf3143c4f DOEPDMA(1) = 0x8b10a1e8 DOEPDMA(2) = 0x9f637bc4 DOEPDMA(3) = 0x8b10a1e8 DOEPDMA(4) = 0xb6c84231 DOEPDMA(5) = 0x8b10a1e8 DOEPDMA(6) = 0x126c1490 DOEPDMA(7) = 0x8b10a1e8 DOEPDMA(8) = 0x437c9154 DOEPDMA(9) = 0x6ec79607 DOEPDMA(10) = 0x8b10a1e8 DOEPDMA(11) = 0x8b10a1e8 DOEPDMA(12) = 0x8b10a1e8 DOEPDMA(13) = 0x8b10a1e8 DOEPDMA(14) = 0x8b10a1e8 DOEPDMA(15) = 0x8b10a1e8 DTXFSTS(0) = 0x00000010 DTXFSTS(1) = 0x00000010 DTXFSTS(2) = 0x00000010 DTXFSTS(3) = 0x00000010 DTXFSTS(4) = 0x00000010 DTXFSTS(5) = 0x00000010 DTXFSTS(6) = 0x00000010 DTXFSTS(7) = 0x00000010 DTXFSTS(8) = 0x00000010 DTXFSTS(9) = 0x00000010 DTXFSTS(10) = 0x00000010 DTXFSTS(11) = 0x00000010 DTXFSTS(12) = 0x00000010 DTXFSTS(13) = 0x00000010 DTXFSTS(14) = 0x00000010 DTXFSTS(15) = 0x00000010 PCGCTL = 0x00000000 HCFG = 0x00100000 HFIR = 0x00000b8f HFNUM = 0x00003fff HPTXSTS = 0x00080100 HAINT = 0x00000000 HAINTMSK = 0x00000000 HFLBADDR = 0x00000000 HPRT0 = 0x00000000 HCCHAR(0) = 0x00001000 HCCHAR(1) = 0x00004800 HCCHAR(2) = 0x00000000 HCCHAR(3) = 0x00004800 HCCHAR(4) = 0x00000000 HCCHAR(5) = 0x00004800 HCCHAR(6) = 0x00000000 HCCHAR(7) = 0x00004800 HCCHAR(8) = 0x00000000 HCCHAR(9) = 0x00000000 HCCHAR(10) = 0x00004800 HCCHAR(11) = 0x00004800 HCCHAR(12) = 0x00004800 HCCHAR(13) = 0x00004800 HCCHAR(14) = 0x00004800 HCCHAR(15) = 0x00004800 HCSPLT(0) = 0x00000000 HCSPLT(1) = 0x00000000 HCSPLT(2) = 0x00000000 HCSPLT(3) = 0x00000000 HCSPLT(4) = 0x00000000 HCSPLT(5) = 0x00000000 HCSPLT(6) = 0x00000000 HCSPLT(7) = 0x00000000 HCSPLT(8) = 0x00000000 HCSPLT(9) = 0x00000000 HCSPLT(10) = 0x00000000 HCSPLT(11) = 0x00000000 HCSPLT(12) = 0x00000000 HCSPLT(13) = 0x00000000 HCSPLT(14) = 0x00000000 HCSPLT(15) = 0x00000000 HCINT(0) = 0x00000000 HCINT(1) = 0x00000000 HCINT(2) = 0x00000000 HCINT(3) = 0x00000000 HCINT(4) = 0x00000000 HCINT(5) = 0x00000000 HCINT(6) = 0x00000000 HCINT(7) = 0x00000000 HCINT(8) = 0x00000000 HCINT(9) = 0x00000000 HCINT(10) = 0x00000000 HCINT(11) = 0x00000000 HCINT(12) = 0x00000000 HCINT(13) = 0x00000000 HCINT(14) = 0x00000000 HCINT(15) = 0x00000000 HCINTMSK(0) = 0x00000000 HCINTMSK(1) = 0x00000000 HCINTMSK(2) = 0x00000000 HCINTMSK(3) = 0x00000000 HCINTMSK(4) = 0x00000000 HCINTMSK(5) = 0x00000000 HCINTMSK(6) = 0x00000000 HCINTMSK(7) = 0x00000000 HCINTMSK(8) = 0x00000000 HCINTMSK(9) = 0x00000000 HCINTMSK(10) = 0x00000000 HCINTMSK(11) = 0x00000000 HCINTMSK(12) = 0x00000000 HCINTMSK(13) = 0x00000000 HCINTMSK(14) = 0x00000000 HCINTMSK(15) = 0x00000000 HCTSIZ(0) = 0x00000000 HCTSIZ(1) = 0x00000000 HCTSIZ(2) = 0x00000000 HCTSIZ(3) = 0x00000000 HCTSIZ(4) = 0x00000000 HCTSIZ(5) = 0x00000000 HCTSIZ(6) = 0x00000000 HCTSIZ(7) = 0x00000000 HCTSIZ(8) = 0x00000000 HCTSIZ(9) = 0x00000000 HCTSIZ(10) = 0x00000000 HCTSIZ(11) = 0x00000000 HCTSIZ(12) = 0x00000000 HCTSIZ(13) = 0x00000000 HCTSIZ(14) = 0x00000000 HCTSIZ(15) = 0x00000000 HCDMA(0) = 0xf3143c4f HCDMA(1) = 0x8b10a1e8 HCDMA(2) = 0x9f637bc4 HCDMA(3) = 0x8b10a1e8 HCDMA(4) = 0xb6c84231 HCDMA(5) = 0x8b10a1e8 HCDMA(6) = 0x126c1490 HCDMA(7) = 0x8b10a1e8 HCDMA(8) = 0x437c9154 HCDMA(9) = 0x6ec79607 HCDMA(10) = 0x8b10a1e8 HCDMA(11) = 0x8b10a1e8 HCDMA(12) = 0x8b10a1e8 HCDMA(13) = 0x8b10a1e8 HCDMA(14) = 0x8b10a1e8 HCDMA(15) = 0x8b10a1e8 HCDMAB(0) = 0x8b10a1e8 HCDMAB(1) = 0x8b10a1e8 HCDMAB(2) = 0x8b10a1e8 HCDMAB(3) = 0x8b10a1e8 HCDMAB(4) = 0x8b10a1e8 HCDMAB(5) = 0x8b10a1e8 HCDMAB(6) = 0x8b10a1e8 HCDMAB(7) = 0x8b10a1e8 HCDMAB(8) = 0x8b10a1e8 HCDMAB(9) = 0x8b10a1e8 HCDMAB(10) = 0x8b10a1e8 HCDMAB(11) = 0x8b10a1e8 HCDMAB(12) = 0x8b10a1e8 HCDMAB(13) = 0x8b10a1e8 HCDMAB(14) = 0x8b10a1e8 HCDMAB(15) = 0x8b10a1e8 and here is the dump after loading the gadget driver: GOTGCTL = 0x00010000 GOTGINT = 0x00000000 GAHBCFG = 0x00000027 GUSBCFG = 0x0000140f GRSTCTL = 0x80000400 GINTSTS = 0x04008020 GINTMSK = 0xd08c3cc4 GRXSTSR = 0x00000000 GRXSTSP = 0x00000000 GRXFSIZ = 0x00000113 GNPTXFSIZ = 0x00100113 GNPTXSTS = 0x00080010 GI2CCTL = 0x00000000 GPVNDCTL = 0x00000000 GGPIO = 0x00000000 GUID = 0x32000001 GSNPSID = 0x4f54310a GHWCFG1 = 0x00006664 GHWCFG2 = 0x228e2450 GHWCFG3 = 0x03cc90e8 GHWCFG4 = 0xdbf04030 GLPMCFG = 0x00000000 GPWRDN = 0x00000000 GDFIFOCFG = 0x039303cc ADPCTL = 0x00000000 HPTXFSIZ = 0x00000000 DPTXFSIZN(1) = 0x00680123 DPTXFSIZN(2) = 0x0068018b DPTXFSIZN(3) = 0x006801f3 DPTXFSIZN(4) = 0x0068025b DPTXFSIZN(5) = 0x006802c3 DPTXFSIZN(6) = 0x0068032b DPTXFSIZN(7) = 0x000003f3 DPTXFSIZN(8) = 0x0000037b DPTXFSIZN(9) = 0x00680123 DPTXFSIZN(10) = 0x0068018b DPTXFSIZN(11) = 0x006801f3 DPTXFSIZN(12) = 0x0068025b DPTXFSIZN(13) = 0x006802c3 DPTXFSIZN(14) = 0x0068032b DPTXFSIZN(15) = 0x000003f3 DCFG = 0x00840000 DCTL = 0x00000000 DSTS = 0x00000002 DIEPMSK = 0x0000000f DOEPMSK = 0x0000022f DAINT = 0x00000000 DAINTMSK = 0x00010001 DTKNQR1 = 0x00000000 DTKNQR2 = 0x00000000 DTKNQR3 = 0x0c100020 DTKNQR4 = 0x00000000 DVBUSDIS = 0x00000b8f DVBUSPULSE = 0x000002c6 DIEPCTL(0) = 0x00008000 DIEPCTL(1) = 0x00000000 DIEPCTL(2) = 0x00000000 DIEPCTL(3) = 0x00000000 DIEPCTL(4) = 0x00000000 DIEPCTL(5) = 0x00000000 DIEPCTL(6) = 0x00000000 DIEPCTL(7) = 0x00000000 DIEPCTL(8) = 0x00000000 DIEPCTL(9) = 0x00000000 DIEPCTL(10) = 0x00000000 DIEPCTL(11) = 0x00000000 DIEPCTL(12) = 0x00000000 DIEPCTL(13) = 0x00000000 DIEPCTL(14) = 0x00000000 DIEPCTL(15) = 0x00000000 DOEPCTL(0) = 0x80008000 DOEPCTL(1) = 0x00000000 DOEPCTL(2) = 0x00000000 DOEPCTL(3) = 0x00000000 DOEPCTL(4) = 0x00000000 DOEPCTL(5) = 0x00000000 DOEPCTL(6) = 0x00000000 DOEPCTL(7) = 0x00000000 DOEPCTL(8) = 0x00000000 DOEPCTL(9) = 0x00000000 DOEPCTL(10) = 0x00000000 DOEPCTL(11) = 0x00000000 DOEPCTL(12) = 0x00000000 DOEPCTL(13) = 0x00000000 DOEPCTL(14) = 0x00000000 DOEPCTL(15) = 0x00000000 DIEPINT(0) = 0x00000080 DIEPINT(1) = 0x00000080 DIEPINT(2) = 0x00000080 DIEPINT(3) = 0x00000080 DIEPINT(4) = 0x00000080 DIEPINT(5) = 0x00000080 DIEPINT(6) = 0x00000080 DIEPINT(7) = 0x00000080 DIEPINT(8) = 0x00000080 DIEPINT(9) = 0x00000080 DIEPINT(10) = 0x00000080 DIEPINT(11) = 0x00000080 DIEPINT(12) = 0x00000080 DIEPINT(13) = 0x00000080 DIEPINT(14) = 0x00000080 DIEPINT(15) = 0x00000080 DOEPINT(0) = 0x00000000 DOEPINT(1) = 0x00000000 DOEPINT(2) = 0x00000000 DOEPINT(3) = 0x00000000 DOEPINT(4) = 0x00000000 DOEPINT(5) = 0x00000000 DOEPINT(6) = 0x00000000 DOEPINT(7) = 0x00000000 DOEPINT(8) = 0x00000000 DOEPINT(9) = 0x00000000 DOEPINT(10) = 0x00000000 DOEPINT(11) = 0x00000000 DOEPINT(12) = 0x00000000 DOEPINT(13) = 0x00000000 DOEPINT(14) = 0x00000000 DOEPINT(15) = 0x00000000 DIEPTSIZ(0) = 0x00000000 DIEPTSIZ(1) = 0x00000000 DIEPTSIZ(2) = 0x00000000 DIEPTSIZ(3) = 0x00000000 DIEPTSIZ(4) = 0x00000000 DIEPTSIZ(5) = 0x00000000 DIEPTSIZ(6) = 0x00000000 DIEPTSIZ(7) = 0x00000000 DIEPTSIZ(8) = 0x00000000 DIEPTSIZ(9) = 0x00000000 DIEPTSIZ(10) = 0x00000000 DIEPTSIZ(11) = 0x00000000 DIEPTSIZ(12) = 0x00000000 DIEPTSIZ(13) = 0x00000000 DIEPTSIZ(14) = 0x00000000 DIEPTSIZ(15) = 0x00000000 DOEPTSIZ(0) = 0x20080008 DOEPTSIZ(1) = 0x00000000 DOEPTSIZ(2) = 0x00000000 DOEPTSIZ(3) = 0x00000000 DOEPTSIZ(4) = 0x00000000 DOEPTSIZ(5) = 0x00000000 DOEPTSIZ(6) = 0x00000000 DOEPTSIZ(7) = 0x00000000 DOEPTSIZ(8) = 0x00000000 DOEPTSIZ(9) = 0x00000000 DOEPTSIZ(10) = 0x00000000 DOEPTSIZ(11) = 0x00000000 DOEPTSIZ(12) = 0x00000000 DOEPTSIZ(13) = 0x00000000 DOEPTSIZ(14) = 0x00000000 DOEPTSIZ(15) = 0x00000000 DIEPDMA(0) = 0xb616a434 DIEPDMA(1) = 0x1def4eb6 DIEPDMA(2) = 0xbdcb75ec DIEPDMA(3) = 0xd55e9df3 DIEPDMA(4) = 0xbdcb75ec DIEPDMA(5) = 0x026813f5 DIEPDMA(6) = 0xbdcb75ec DIEPDMA(7) = 0xc10f8789 DIEPDMA(8) = 0xb0f82040 DIEPDMA(9) = 0xcbf8ce30 DIEPDMA(10) = 0xbdcb75ec DIEPDMA(11) = 0xbdcb75ec DIEPDMA(12) = 0xbdcb75ec DIEPDMA(13) = 0xbdcb75ec DIEPDMA(14) = 0xbdcb75ec DIEPDMA(15) = 0xbdcb75ec DOEPDMA(0) = 0xff43819d DOEPDMA(1) = 0x5afb2109 DOEPDMA(2) = 0x074e8688 DOEPDMA(3) = 0x5afb2109 DOEPDMA(4) = 0xe7952f76 DOEPDMA(5) = 0x5afb2109 DOEPDMA(6) = 0x19c23309 DOEPDMA(7) = 0x5afb2109 DOEPDMA(8) = 0x1a1bb42e DOEPDMA(9) = 0xcd2257a4 DOEPDMA(10) = 0x5afb2109 DOEPDMA(11) = 0x5afb2109 DOEPDMA(12) = 0x5afb2109 DOEPDMA(13) = 0x5afb2109 DOEPDMA(14) = 0x5afb2109 DOEPDMA(15) = 0x5afb2109 DTXFSTS(0) = 0x00000010 DTXFSTS(1) = 0x00000010 DTXFSTS(2) = 0x00000010 DTXFSTS(3) = 0x00000010 DTXFSTS(4) = 0x00000010 DTXFSTS(5) = 0x00000010 DTXFSTS(6) = 0x00000010 DTXFSTS(7) = 0x00000010 DTXFSTS(8) = 0x00000010 DTXFSTS(9) = 0x00000010 DTXFSTS(10) = 0x00000010 DTXFSTS(11) = 0x00000010 DTXFSTS(12) = 0x00000010 DTXFSTS(13) = 0x00000010 DTXFSTS(14) = 0x00000010 DTXFSTS(15) = 0x00000010 PCGCTL = 0x00000000 HCFG = 0x00840000 HFIR = 0x00000b8f HFNUM = 0x4ebd0000 HPTXSTS = 0x00080068 HAINT = 0x00000000 HAINTMSK = 0x00000001 HFLBADDR = 0x00000000 HPRT0 = 0x00000000 HCCHAR(0) = 0x00000000 HCCHAR(1) = 0x00000000 HCCHAR(2) = 0x00000000 HCCHAR(3) = 0x00000000 HCCHAR(4) = 0x00000000 HCCHAR(5) = 0x00000000 HCCHAR(6) = 0x00000000 HCCHAR(7) = 0x00000000 HCCHAR(8) = 0x00000000 HCCHAR(9) = 0x00000000 HCCHAR(10) = 0x00000000 HCCHAR(11) = 0x00000000 HCCHAR(12) = 0x00000000 HCCHAR(13) = 0x00000000 HCCHAR(14) = 0x00000000 HCCHAR(15) = 0x00000000 HCSPLT(0) = 0x00000000 HCSPLT(1) = 0x00000000 HCSPLT(2) = 0x00000000 HCSPLT(3) = 0x00000000 HCSPLT(4) = 0x00000000 HCSPLT(5) = 0x00000000 HCSPLT(6) = 0x00000000 HCSPLT(7) = 0x00000000 HCSPLT(8) = 0x00000000 HCSPLT(9) = 0x00000000 HCSPLT(10) = 0x00000000 HCSPLT(11) = 0x00000000 HCSPLT(12) = 0x00000000 HCSPLT(13) = 0x00000000 HCSPLT(14) = 0x00000000 HCSPLT(15) = 0x00000000 HCINT(0) = 0x00000000 HCINT(1) = 0x00000000 HCINT(2) = 0x00000000 HCINT(3) = 0x00000000 HCINT(4) = 0x00000000 HCINT(5) = 0x00000000 HCINT(6) = 0x00000000 HCINT(7) = 0x00000000 HCINT(8) = 0x00000000 HCINT(9) = 0x00000000 HCINT(10) = 0x00000000 HCINT(11) = 0x00000000 HCINT(12) = 0x00000000 HCINT(13) = 0x00000000 HCINT(14) = 0x00000000 HCINT(15) = 0x00000000 HCINTMSK(0) = 0x0000000f HCINTMSK(1) = 0x00000000 HCINTMSK(2) = 0x00000000 HCINTMSK(3) = 0x00000000 HCINTMSK(4) = 0x00000000 HCINTMSK(5) = 0x00000000 HCINTMSK(6) = 0x00000000 HCINTMSK(7) = 0x00000000 HCINTMSK(8) = 0x00000000 HCINTMSK(9) = 0x00000000 HCINTMSK(10) = 0x00000000 HCINTMSK(11) = 0x00000000 HCINTMSK(12) = 0x00000000 HCINTMSK(13) = 0x00000000 HCINTMSK(14) = 0x00000000 HCINTMSK(15) = 0x00000000 HCTSIZ(0) = 0x00000000 HCTSIZ(1) = 0x00000000 HCTSIZ(2) = 0x00000000 HCTSIZ(3) = 0x00000000 HCTSIZ(4) = 0x00000000 HCTSIZ(5) = 0x00000000 HCTSIZ(6) = 0x00000000 HCTSIZ(7) = 0x00000000 HCTSIZ(8) = 0x00000000 HCTSIZ(9) = 0x00000000 HCTSIZ(10) = 0x00000000 HCTSIZ(11) = 0x00000000 HCTSIZ(12) = 0x00000000 HCTSIZ(13) = 0x00000000 HCTSIZ(14) = 0x00000000 HCTSIZ(15) = 0x00000000 HCDMA(0) = 0xff43819d HCDMA(1) = 0x5afb2109 HCDMA(2) = 0x074e8688 HCDMA(3) = 0x5afb2109 HCDMA(4) = 0xe7952f76 HCDMA(5) = 0x5afb2109 HCDMA(6) = 0x19c23309 HCDMA(7) = 0x5afb2109 HCDMA(8) = 0x1a1bb42e HCDMA(9) = 0xcd2257a4 HCDMA(10) = 0x5afb2109 HCDMA(11) = 0x5afb2109 HCDMA(12) = 0x5afb2109 HCDMA(13) = 0x5afb2109 HCDMA(14) = 0x5afb2109 HCDMA(15) = 0x5afb2109 HCDMAB(0) = 0x4d39126c HCDMAB(1) = 0xdd37f8a2 HCDMAB(2) = 0x14b9118c HCDMAB(3) = 0xdd37f8a2 HCDMAB(4) = 0x5d5bff79 HCDMAB(5) = 0xdd37f8a2 HCDMAB(6) = 0x01144f4d HCDMAB(7) = 0xdd37f8a2 HCDMAB(8) = 0x8b35ac87 HCDMAB(9) = 0x28a47b1b HCDMAB(10) = 0xdd37f8a2 HCDMAB(11) = 0xdd37f8a2 HCDMAB(12) = 0xdd37f8a2 HCDMAB(13) = 0xdd37f8a2 HCDMAB(14) = 0xdd37f8a2 HCDMAB(15) = 0xdd37f8a2When I plug a USB host into the OTG port, GINTSTS changes from 0x04008020 to 0x04008022, while the other registers remain unchanged (except HFNUM). It may be worth noting that when I request a register dump for the first time, I get two interrupts from the controller, both of which say:
[ 23.081525] dwc2 ff580000.usb: gintsts=04000032 gintmsk=d0000806[ 23.081568] dwc2 ff580000.usb: Mode Mismatch Interrupt: currently in Device mode [ 23.089908] dwc2 ff580000.usb: dwc2_hsotg_irq: 04000030 00000000 (d0000806) retry 8
Thanks, Francesco -- 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