3 3
sooperior

Enabling usb otg on banana pi m1 A20

Recommended Posts

Hi All,

I'm trying to get usb otg enabled as host mode to add, for instance, a keyboard with a powered hub (I know otg is not delivering power or at least I don't want to drain more power with the otg)

 

I'm using vanilla kernel 4.8.4 so I kind of expect otg enabled as host mode by default.

 

Anyway, I get into dts and make sure this section:

usb@01c13000 {
compatible = "allwinner,sun4i-a10-musb";
reg = <0x1c13000 0x400>;
clocks = <0x2 0x0>;
interrupts = <0x0 0x26 0x4>;
interrupt-names = "mc";
phys = <0x30 0x0>;
phy-names = "usb";
extcon = <0x30 0x0>;
allwinner,sram = <0x31 0x1>;
status = "okay";
dr_mode = "host";
linux,phandle = <0x6e>;
phandle = <0x6e>;
};
 
has status=okay and dr_mode=host
 
Driver seems to be the problem, I get this message on dmesg
[    4.516751] usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    4.517180] musb-hdrc musb-hdrc.1.auto: musb_init_controller failed with status -16
[    4.517230] musb-hdrc: probe of musb-hdrc.1.auto failed with error -16
 
#modprobe sunxi does nothing
google shows only one result for this error
 
 
Any ideas for troubleshooting?
 
 
I've also been looking for ideas in this thread https://forum.armbian.com/index.php/topic/385-banana-pi-usb-otg/but it seems to show the steps I have followed

Share this post


Link to post
Share on other sites

Hi Sooperior,

 

Hi All,

I'm trying to get usb otg enabled as host mode to add, for instance, a keyboard with a powered hub (I know otg is not delivering power or at least I don't want to drain more power with the otg)

 

I'm using vanilla kernel 4.8.4 so I kind of expect otg enabled as host mode by default.

 

Anyway, I get into dts and make sure this section:

usb@01c13000 {
compatible = "allwinner,sun4i-a10-musb";
reg = <0x1c13000 0x400>;
clocks = <0x2 0x0>;
interrupts = <0x0 0x26 0x4>;
interrupt-names = "mc";
phys = <0x30 0x0>;
phy-names = "usb";
extcon = <0x30 0x0>;
allwinner,sram = <0x31 0x1>;
status = "okay";
dr_mode = "host";
linux,phandle = <0x6e>;
phandle = <0x6e>;
};
 
has status=okay and dr_mode=host
 
Driver seems to be the problem, I get this message on dmesg
[    4.516751] usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    4.517180] musb-hdrc musb-hdrc.1.auto: musb_init_controller failed with status -16
[    4.517230] musb-hdrc: probe of musb-hdrc.1.auto failed with error -16
 
#modprobe sunxi does nothing
google shows only one result for this error
 
 
Any ideas for troubleshooting?
 
 
I've also been looking for ideas in this thread https://forum.armbian.com/index.php/topic/385-banana-pi-usb-otg/but it seems to show the steps I have followed

 

I also have many problems with USB OTG on Lime2 (A20) boards and customized Armbian build with mainline Kernel.

The problems and some of the solutions are described in some posts on this forum thread.

 

Best regards

Chris

 

Share this post


Link to post
Share on other sites

Interesting... but this thread is more or less about otg in "otg mode" or reliability issues, but I'm not able even to get anything detected.

What is driving me crazy is this error:

[    4.516751] usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    4.517180] musb-hdrc musb-hdrc.1.auto: musb_init_controller failed with status -16
[    4.517230] musb-hdrc: probe of musb-hdrc.1.auto failed with error -16
 
There is almost no info about that on google, I'm afraid it could be something armbian-specific
 
PS: I'm not  using any custom kernel, just out of the box armbian 5.23 with kernel 4.8.4

Share this post


Link to post
Share on other sites

Looking at both schematics and DTS of BananaPro-A20 and A20-OLIMEX-MICRO, (I've some Olimex myself and I know OTG is working on them), it seems probable that BananaPro-A20 is only missing things are the following in Mainline DTS :

&reg_usb0_vbus {
        status = "okay";
};

&usb_otg { 
        dr_mode = "host";
        status = "okay";
};

 

Share this post


Link to post
Share on other sites

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.13.0-sunxi (root@ubuntu) (gcc version 7.1.1 20170707 (Linaro GCC 7.1-2017.08)) #2 SMP Fri Sep 15 21:41:23 EDT 2017
[    0.000000] CPU: ARMv7 Processor [410fc074] revision 4 (ARMv7), cr=50c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: LeMaker Banana Pro
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 16 MiB at 0x7ec00000
[    0.000000] On node 0 totalpages: 261738
[    0.000000] free_area_init_node: node 0, pgdat c0cb54c0, node_mem_map ef6f8000
[    0.000000]   Normal zone: 1728 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196608 pages, LIFO batch:31
[    0.000000]   HighMem zone: 65130 pages, LIFO batch:15
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] percpu: Embedded 17 pages/cpu @ef6b6000 s39756 r8192 d21684 u69632
[    0.000000] pcpu-alloc: s39756 r8192 d21684 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260010
[    0.000000] Kernel command line: root=UUID=4ce20d03-cc73-45f4-83ff-01a62708f95e rootwait rootfstype=ext4 console=tty1 console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 panic=10 consoleblank=0 loglevel=1 ubootpart=fa166d6f-01 ubootsource=mmc usb-storage.quirks=   sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16 cgroup_enable=memory swapaccount=1
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 1003200K/1046952K available (7168K kernel code, 758K rwdata, 2120K rodata, 1024K init, 324K bss, 27368K reserved, 16384K cma-reserved, 244136K highmem)
[    0.000000] Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf800000 - 0xbfe00000   (   6 MB)
      .text : 0xc0008000 - 0xc0800000   (8160 kB)
      .init : 0xc0b00000 - 0xc0c00000   (1024 kB)
      .data : 0xc0c00000 - 0xc0cbdb8c   ( 759 kB)
       .bss : 0xc0cc6b60 - 0xc0d17ea4   ( 325 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] ftrace: allocating 33462 entries in 66 pages
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000005] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000015] Switching to timer-based delay loop, resolution 41ns
[    0.000827] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.001120] clocksource: hstimer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 12741736309 ns
[    0.001393] Console: colour dummy device 80x30
[    0.001408] console [tty1] enabled
[    0.001433] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.001444] pid_max: default: 32768 minimum: 301
[    0.001594] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001606] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002345] CPU: Testing write buffer coherency: ok
[    0.002710] /cpus/cpu@0 missing clock-frequency property
[    0.002722] /cpus/cpu@1 missing clock-frequency property
[    0.002734] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.003134] Setting up static identity map for 0x40100000 - 0x40100054
[    0.003267] Hierarchical SRCU implementation.
[    0.004267] smp: Bringing up secondary CPUs ...
[    0.015058] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.015190] smp: Brought up 1 node, 2 CPUs
[    0.015199] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.015204] CPU: All CPU(s) started in HYP mode.
[    0.015207] CPU: Virtualization extensions available.
[    0.016277] devtmpfs: initialized
[    0.028507] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 4
[    0.028794] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.028816] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.029632] xor: measuring software checksum speed
[    0.125006]    arm4regs  :  1135.600 MB/sec
[    0.225068]    8regs     :   676.400 MB/sec
[    0.325133]    32regs    :   692.800 MB/sec
[    0.425194]    neon      :  1150.800 MB/sec
[    0.425199] xor: using function: neon (1150.800 MB/sec)
[    0.425333] pinctrl core: initialized pinctrl subsystem
[    0.426296] random: get_random_u32 called from bucket_table_alloc+0xab/0x17c with crng_init=0
[    0.426412] NET: Registered protocol family 16
[    0.429132] DMA: preallocated 2048 KiB pool for atomic coherent allocations
[    0.430503] cpuidle: using governor ladder
[    0.430545] cpuidle: using governor menu
[    0.431767] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.431774] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.615815] raid6: int32x1  gen()   171 MB/s
[    0.785732] raid6: int32x1  xor()   145 MB/s
[    0.955923] raid6: int32x2  gen()   231 MB/s
[    1.126123] raid6: int32x2  xor()   176 MB/s
[    1.296274] raid6: int32x4  gen()   233 MB/s
[    1.466240] raid6: int32x4  xor()   174 MB/s
[    1.636611] raid6: int32x8  gen()   223 MB/s
[    1.806598] raid6: int32x8  xor()   155 MB/s
[    1.976720] raid6: neonx1   gen()   447 MB/s
[    2.146837] raid6: neonx1   xor()   331 MB/s
[    2.316995] raid6: neonx2   gen()   600 MB/s
[    2.487072] raid6: neonx2   xor()   432 MB/s
[    2.657235] raid6: neonx4   gen()   719 MB/s
[    2.827388] raid6: neonx4   xor()   482 MB/s
[    2.997553] raid6: neonx8   gen()   635 MB/s
[    3.167667] raid6: neonx8   xor()   439 MB/s
[    3.167671] raid6: using algorithm neonx4 gen() 719 MB/s
[    3.167674] raid6: .... xor() 482 MB/s, rmw enabled
[    3.167678] raid6: using intx1 recovery algorithm
[    3.167988] reg-fixed-voltage usb0-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/usb0_vbus_pin@0, deferring probe
[    3.168037] reg-fixed-voltage usb1-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/usb1_vbus_pin@0, deferring probe
[    3.168069] reg-fixed-voltage usb2-vbus: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/usb2_vbus_pin@0, deferring probe
[    3.168869] reg-fixed-voltage gmac-3v3: could not find pctldev for node /soc@01c00000/pinctrl@01c20800/gmac_power_pin@0, deferring probe
[    3.169356] SCSI subsystem initialized
[    3.169663] libata version 3.00 loaded.
[    3.169988] usbcore: registered new interface driver usbfs
[    3.170065] usbcore: registered new interface driver hub
[    3.170133] usbcore: registered new device driver usb
[    3.170379] media: Linux media interface: v0.10
[    3.170425] Linux video capture interface: v2.00
[    3.170501] pps_core: LinuxPPS API ver. 1 registered
[    3.170506] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    3.170525] PTP clock support registered
[    3.172296] clocksource: Switched to clocksource arch_sys_counter
[    3.261381] VFS: Disk quotas dquot_6.6.0
[    3.261467] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    3.262525] simple-framebuffer 7fe79000.framebuffer: framebuffer at 0x7fe79000, 0x178e00 bytes, mapped to 0xf0b00000
[    3.262538] simple-framebuffer 7fe79000.framebuffer: format=x8r8g8b8, mode=656x536x32, linelength=2880
[    3.270223] Console: switching to colour frame buffer device 82x33
[    3.277222] simple-framebuffer 7fe79000.framebuffer: fb0: simplefb registered!
[    3.286574] NET: Registered protocol family 2
[    3.287241] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    3.287337] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    3.287459] TCP: Hash tables configured (established 8192 bind 8192)
[    3.287581] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    3.287645] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    3.287907] NET: Registered protocol family 1
[    3.288545] RPC: Registered named UNIX socket transport module.
[    3.288552] RPC: Registered udp transport module.
[    3.288555] RPC: Registered tcp transport module.
[    3.288559] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    3.288819] Trying to unpack rootfs image as initramfs...
[    3.582260] Freeing initrd memory: 4176K
[    3.583160] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    3.583426] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    3.585753] Initialise system trusted keyrings
[    3.586024] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    3.594896] zbud: loaded
[    3.598296] NFS: Registering the id_resolver key type
[    3.598330] Key type id_resolver registered
[    3.598335] Key type id_legacy registered
[    3.598347] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    3.598352] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    3.599433] JFS: nTxBlock = 7998, nTxLock = 63985
[    3.612180] random: fast init done
[    3.617049] Key type asymmetric registered
[    3.617125] bounce: pool size: 64 pages
[    3.617224] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    3.617384] io scheduler noop registered
[    3.617391] io scheduler deadline registered
[    3.617828] io scheduler cfq registered (default)
[    3.623809] sun4i-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    3.692225] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    3.695499] console [ttyS0] disabled
[    3.715687] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 46, base_baud = 1500000) is a U6_16550A
[    3.715751] console [ttyS0] enabled
[    3.739321] 1c29000.serial: ttyS1 at MMIO 0x1c29000 (irq = 47, base_baud = 1500000) is a U6_16550A
[    3.762852] 1c29c00.serial: ttyS2 at MMIO 0x1c29c00 (irq = 48, base_baud = 1500000) is a U6_16550A
[    3.767532] brd: module loaded
[    3.775134] loop: module loaded
[    3.872379] ahci-sunxi 1c18000.sata: controller can't do PMP, turning off CAP_PMP
[    3.872425] ahci-sunxi 1c18000.sata: SSS flag set, parallel bus scan disabled
[    3.872453] ahci-sunxi 1c18000.sata: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode
[    3.872465] ahci-sunxi 1c18000.sata: flags: ncq sntf stag pm led clo only pio slum part ccc
[    3.874144] scsi host0: ahci-sunxi
[    3.874525] ata1: SATA max UDMA/133 mmio [mem 0x01c18000-0x01c18fff] port 0x100 irq 34
[    3.876983] libphy: Fixed MDIO Bus: probed
[    3.877669] sun7i-dwmac 1c50000.ethernet: PTP uses main clock
[    3.877680] sun7i-dwmac 1c50000.ethernet: no reset control found
[    3.878158] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.878165] ehci-platform: EHCI generic platform driver
[    3.878519] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    3.878546] ohci-platform: OHCI generic platform driver
[    3.878951] usbcore: registered new interface driver usb-storage
[    3.880228] sunxi-rtc 1c20d00.rtc: rtc core: registered rtc-sunxi as rtc0
[    3.880236] sunxi-rtc 1c20d00.rtc: RTC enabled
[    3.880342] i2c /dev entries driver
[    3.881423] axp20x-i2c 0-0034: AXP20x variant AXP209 found
[    3.896639] input: axp20x-pek as /devices/platform/soc@01c00000/1c2ac00.i2c/i2c-0/0-0034/axp20x-pek/input/input0
[    3.896824] axp20x-regulator axp20x-regulator: regulators node not found
[    3.896861] ldo1: supplied by regulator-dummy
[    3.897063] ldo2: supplied by regulator-dummy
[    3.898177] ldo3: supplied by regulator-dummy
[    3.898789] ldo4: supplied by regulator-dummy
[    3.899014] ldo5: supplied by regulator-dummy
[    3.900067] dcdc2: supplied by regulator-dummy
[    3.900699] dcdc3: supplied by regulator-dummy
[    3.901822] axp20x-i2c 0-0034: AXP20X driver loaded
[    3.904350] sunxi-wdt 1c20c90.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    3.905868] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    3.962568] sunxi-mmc 1c0f000.mmc: base:0xf1183000 irq:28
[    3.966047] ledtrig-cpu: registered to indicate activity on CPUs
[    3.966152] hidraw: raw HID events driver (C) Jiri Kosina
[    3.966316] usbcore: registered new interface driver usbhid
[    3.966319] usbhid: USB HID core driver
[    3.966746] Initializing XFRM netlink socket
[    3.967747] NET: Registered protocol family 10
[    3.991361] Segment Routing with IPv6
[    3.991462] NET: Registered protocol family 17
[    3.991495] NET: Registered protocol family 15
[    3.991559] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    3.991609] 8021q: 802.1Q VLAN Support v1.8
[    3.991656] Key type dns_resolver registered
[    3.992117] Registering SWP/SWPB emulation handler
[    3.993022] registered taskstats version 1
[    3.993029] Loading compiled-in X.509 certificates
[    3.993127] zswap: loaded using pool lzo/zbud
[    3.995229] Btrfs loaded, crc32c=crc32c-generic
[    4.004447] Key type encrypted registered
[    4.013660] mmc0: host does not support reading read-only switch, assuming write-enable
[    4.014530] sun7i-dwmac 1c50000.ethernet: PTP uses main clock
[    4.014542] sun7i-dwmac 1c50000.ethernet: no reset control found
[    4.016582] mmc0: new high speed SDHC card at address aaaa
[    4.017235] mmcblk0: mmc0:aaaa SL16G 14.8 GiB
[    4.019639]  mmcblk0: p1
[    4.132366] sun7i-dwmac 1c50000.ethernet: Ring mode enabled
[    4.132374] sun7i-dwmac 1c50000.ethernet: DMA HW capability register supported
[    4.132381] sun7i-dwmac 1c50000.ethernet: Normal descriptors
[    4.149964] libphy: stmmac: probed
[    4.149985] RTL8211E Gigabit Ethernet stmmac-0:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:00, irq=-1)
[    4.149994] RTL8211E Gigabit Ethernet stmmac-0:01: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:01, irq=-1)
[    4.151391] ehci-platform 1c14000.usb: EHCI Host Controller
[    4.151440] ehci-platform 1c14000.usb: new USB bus registered, assigned bus number 1
[    4.151540] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.151619] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.151680] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.151788] ehci-platform 1c14000.usb: irq 31, io mem 0x01c14000
[    4.172327] ehci-platform 1c14000.usb: USB 2.0 started, EHCI 1.00
[    4.172583] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    4.172591] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.172597] usb usb1: Product: EHCI Host Controller
[    4.172603] usb usb1: Manufacturer: Linux 4.13.0-sunxi ehci_hcd
[    4.172608] usb usb1: SerialNumber: 1c14000.usb
[    4.173474] hub 1-0:1.0: USB hub found
[    4.173552] hub 1-0:1.0: 1 port detected
[    4.174448] ehci-platform 1c1c000.usb: EHCI Host Controller
[    4.174484] ehci-platform 1c1c000.usb: new USB bus registered, assigned bus number 2
[    4.174573] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.174672] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.174726] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.174830] ehci-platform 1c1c000.usb: irq 35, io mem 0x01c1c000
[    4.202304] ehci-platform 1c1c000.usb: USB 2.0 started, EHCI 1.00
[    4.202536] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    4.202545] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.202551] usb usb2: Product: EHCI Host Controller
[    4.202557] usb usb2: Manufacturer: Linux 4.13.0-sunxi ehci_hcd
[    4.202562] usb usb2: SerialNumber: 1c1c000.usb
[    4.203338] hub 2-0:1.0: USB hub found
[    4.203395] hub 2-0:1.0: 1 port detected
[    4.203980] ata1: SATA link down (SStatus 0 SControl 300)
[    4.204278] ohci-platform 1c14400.usb: Generic Platform OHCI controller
[    4.204319] ohci-platform 1c14400.usb: new USB bus registered, assigned bus number 3
[    4.204414] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.204607] ohci-platform 1c14400.usb: irq 32, io mem 0x01c14400
[    4.276527] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    4.276537] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.276543] usb usb3: Product: Generic Platform OHCI controller
[    4.276549] usb usb3: Manufacturer: Linux 4.13.0-sunxi ohci_hcd
[    4.276555] usb usb3: SerialNumber: 1c14400.usb
[    4.277359] hub 3-0:1.0: USB hub found
[    4.277406] hub 3-0:1.0: 1 port detected
[    4.278267] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
[    4.278303] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 4
[    4.278397] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.278613] ohci-platform 1c1c400.usb: irq 36, io mem 0x01c1c400
[    4.346507] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    4.346516] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.346523] usb usb4: Product: Generic Platform OHCI controller
[    4.346529] usb usb4: Manufacturer: Linux 4.13.0-sunxi ohci_hcd
[    4.346535] usb usb4: SerialNumber: 1c1c400.usb
[    4.347356] hub 4-0:1.0: USB hub found
[    4.347401] hub 4-0:1.0: 1 port detected
[    4.348372] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    4.348671] musb-hdrc musb-hdrc.1.auto: musb_init_controller failed with status -16
[    4.348711] musb-hdrc: probe of musb-hdrc.1.auto failed with error -16
[    4.349825] alloc_contig_range: [7ee18, 7ee19) PFNs busy
[    4.350901] of_cfs_init
[    4.351002] of_cfs_init: OK
[    4.351182] vcc3v0: disabling
[    4.351189] vcc5v0: disabling
[    4.351200] usb0-vbus: disabling
[    4.354134] Freeing unused kernel memory: 1024K
[    4.404465] systemd-udevd[136]: starting version 215
[    4.703706] sunxi-mmc 1c12000.mmc: allocated mmc-pwrseq
[    4.762422] sunxi-mmc 1c12000.mmc: base:0xf1225000 irq:29
[    4.780060] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    4.781779] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.785335] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.789294] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    4.811644] mmc1: new high speed SDIO card at address 0001
[    5.668815] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Opts: (null)
[    6.012428] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[    6.012844] systemd[1]: Detected architecture 'arm'.
[    6.057499] systemd[1]: Set hostname to <bananapipro>.
[    6.399047] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
[    6.402354] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
[    6.402922] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    6.403023] systemd[1]: Expecting device dev-ttyS0.device...
[    6.432493] systemd[1]: Starting Remote File Systems (Pre).
[    6.462408] systemd[1]: Reached target Remote File Systems (Pre).
[    6.462544] systemd[1]: Starting Encrypted Volumes.
[    7.187991] fuse init (API version 7.26)
[    7.274495] Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
[    7.540925] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Apr 22 2013 14:50:00 version 5.90.195.89.6 FWID 01-b30a427d
[    8.085783] systemd-udevd[255]: starting version 215
[    8.712914] sun4i-ss 1c15000.crypto-engine: Die ID 0
[    8.988256] lirc_dev: IR Remote Control driver registered, major 245
[    9.008104] IR LIRC bridge handler initialized
[    9.014056] Registered IR keymap rc-empty
[    9.014499] rc rc0: sunxi-ir as /devices/platform/soc@01c00000/1c21800.ir/rc/rc0
[    9.015142] input: sunxi-ir as /devices/platform/soc@01c00000/1c21800.ir/rc/rc0/input1
[    9.023075] rc rc0: lirc_dev: driver ir-lirc-codec (sunxi-ir) registered at minor = 0
[    9.023399] sunxi-ir 1c21800.ir: initialized sunXi IR driver
[    9.180716] sun4i-codec 1c22c00.codec: Codec <-> 1c22c00.codec mapping ok
[   11.838412] systemd[1]: Starting Sound Card.
[   11.863330] systemd[1]: Reached target Sound Card.
[   11.863491] systemd[1]: Starting system-systemd\x2drfkill.slice.
[   11.892627] systemd[1]: Created slice system-systemd\x2drfkill.slice.
[   16.372711] systemd[1]: Started LSB: Set preliminary keymap.
[   16.394895] systemd[1]: Starting Remount Root and Kernel File Systems...
[   16.514316] EXT4-fs (mmcblk0p1): re-mounted. Opts: commit=600,errors=remount-ro
[   16.555633] systemd[1]: Started Remount Root and Kernel File Systems.
[   16.579088] systemd[1]: Starting Load/Save RF Kill Switch Status of rfkill0...
[   16.612204] systemd[1]: Starting Various fixups to make systemd work better on Debian...
[   16.652202] systemd[1]: Starting Local File Systems (Pre).
[   16.862686] systemd[1]: Started Various fixups to make systemd work better on Debian.
[   16.892641] systemd[1]: Started Load/Save Random Seed.
[   17.085772] systemd[1]: Starting Local File Systems.
[   17.112535] systemd[1]: Reached target Local File Systems.
[   17.112746] systemd[1]: Starting Armbian enhanced Log2Ram...
[   17.148815] systemd[1]: Starting Create Volatile Files and Directories...
[   17.178510] systemd[1]: Starting Remote File Systems.
[   17.202707] systemd[1]: Reached target Remote File Systems.
[   17.202973] systemd[1]: Starting LSB: Prepare console...
[   17.238751] systemd[1]: Starting LSB: Raise network interfaces....
[   18.040990] systemd-journald[435]: Received request to flush runtime journal from PID 1
[   18.676854] RTL8211E Gigabit Ethernet stmmac-0:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:00, irq=-1)
[   18.681037] sun7i-dwmac 1c50000.ethernet eth0: RX IPC Checksum Offload disabled
[   18.681072] sun7i-dwmac 1c50000.ethernet eth0: No MAC Management Counters available
[   18.681095] sun7i-dwmac 1c50000.ethernet eth0: PTP not supported by HW
[   18.681678] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   21.843359] sun7i-dwmac 1c50000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   21.843436] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   27.939695] EXT4-fs (mmcblk0p1): resizing filesystem from 296704 to 3850384 blocks
[   28.065823] random: crng init done
[   28.077213] EXT4-fs (mmcblk0p1): resized filesystem to 3850384
[   35.908857] 8021q: adding VLAN 0 to HW filter on device bond0
[   49.006196] Adding 131068k swap on /var/swap.  Priority:-1 extents:1 across:131068k SSFS

 Still seems like something is missing. The A20-OLIMEX-MICRO dts sets additional parameters:

usb0_id_det-gpio = <0x29 0x7 0x4 0x0>;
usb0_vbus_det-gpio = <0x29 0x7 0x5 0x0>;
usb0_vbus-supply = <0x34>;

 

Wouldn't the Banana Pro require this as well?

 

 

Share this post


Link to post
Share on other sites

The problem here turned out to be with the device tree blob. For USB OTG to work properly with the Banana Pro the file should look like the one attached. I now have an up to date Armbian install with a working OTG port. I can't take credit for making the changes. The device tree blob came from a SimpleNAS build for the Banana Pro. The default Armbian dtb seems to be missing a few needed values. @Igor could these changes be integrated into your code? Hopefully, this helps someone else get this working. Thanks for all the hard work.

sun7i-a20-bananapro.dts

Share this post


Link to post
Share on other sites
13 minutes ago, dryce said:

The default Armbian dtb seems to be missing a few needed values.


It's up to the user to configure the board upon his use case.

 

Simple host/OTG mode switcher from armbian-config and DT adjustment is on the 2do list for some time. If we do it, we have to check on all boards. Not long ago there were troubles with OTG mode, so this was pointless to implement. Perhaps still is?

In case you find something generally useful: https://docs.armbian.com/Process_Contribute/

Share this post


Link to post
Share on other sites

        usb@01c13000 {
            compatible = "allwinner,sun4i-a10-musb";
            reg = <0x1c13000 0x400>;
            clocks = <0x4 0x0>;
            interrupts = <0x0 0x26 0x4>;
            interrupt-names = "mc";
            phys = <0x2b 0x0>;
            phy-names = "usb";
            extcon = <0x2b 0x0>;
            allwinner,sram = <0x2c 0x1>;
            status = "okay";
            dr_mode = "host";
            linux,phandle = <0x61>;
            phandle = <0x61>;

 

        phy@01c13400 {
            #phy-cells = <0x1>;
            compatible = "allwinner,sun7i-a20-usb-phy";
            reg = <0x1c13400 0x10 0x1c14800 0x4 0x1c1c800 0x4>;
            reg-names = "phy_ctrl", "pmu1", "pmu2";
            clocks = <0x2d 0x8>;
            clock-names = "usb_phy";
            resets = <0x2d 0x0 0x2d 0x1 0x2d 0x2>;
            reset-names = "usb0_reset", "usb1_reset", "usb2_reset";
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <0x2e>;
            usb0_id_det-gpio = <0x25 0x7 0x3 0x0>;
            usb0_vbus_power-supply = <0x2f>;
            usb0_vbus-supply = <0x30>;
            linux,phandle = <0x2b>;
            phandle = <0x2b>;

 


    usb0-vbus {
        compatible = "regulator-fixed";
        pinctrl-names = "default";
        pinctrl-0 = <0x49>;
        regulator-name = "usb0-vbus";
        regulator-min-microvolt = <0x4c4b40>;
        regulator-max-microvolt = <0x4c4b40>;
        enable-active-high;
        gpio = <0x25 0x1 0x9 0x0>;
        status = "okay";
        linux,phandle = <0x30>;
        phandle = <0x30>;

 

The file has several differences throughout compared to the armbian version. These are just a few of note. The values for some of the above properties are different in the default file vs the SimpleNAS dtb I used. I don't believe the OTG port was getting power before. There are other property differences throughout and everything appears to be working without issue.

 

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
3 3