Jump to content

Can't get waveshare 35a overlay for 3.5" LCD display to work


Jin^eLD

Recommended Posts

Hi,

 

I spent several days trying to figure this out, which is a bit confusing given all the information that is available and posts and wikis saying that "Waveshare" LCDs are supposed to work, but something is still not right, hope you guys can help.

 

What I have:

ASUS Tinker Board S, flashed with Armbian_5.90_Tinkerboard_Debian_buster_default_4.4.182_desktop.img

Updated to 4.19.57-rockchip via armbian-config (in order to get the fbtft* modules that were missing in 4.4).

The LCD is a 3.5" original Waveshare 32a panel.

 

I started by adding the overlay for this screen (i.e. my armbianEnv.txt has these overlays: overlays=i2c1 i2c4 spi2 waveshare35a-tinker uart1 uart2):

https://github.com/TinkerBoard/debian_kernel/blob/develop/arch/arm/boot/dts/overlays/waveshare35a-tinker-overlay.dts

 

I have a serial console connection and I could see that the overlay is getting loaded upon boot:

Applying kernel provided DT overlay rockchip-i2c1.dtbo
286 bytes read in 1 ms (279.3 KiB/s)
Applying kernel provided DT overlay rockchip-i2c4.dtbo
311 bytes read in 1 ms (303.7 KiB/s)
Applying kernel provided DT overlay rockchip-spi2.dtbo
2224 bytes read in 2 ms (1.1 MiB/s)
Applying kernel provided DT overlay rockchip-waveshare35a-tinker.dtbo
287 bytes read in 2 ms (139.6 KiB/s)
Applying kernel provided DT overlay rockchip-uart1.dtbo
287 bytes read in 1 ms (280.3 KiB/s)
Applying kernel provided DT overlay rockchip-uart2.dtbo
232 bytes read in 1 ms (226.6 KiB/s)
Applying kernel provided DT fixup script (rockchip-fixup.scr)

 

Adding the above overlay made the touchscreen work out of the box, however the framebuffer device didn't. In dmesg I could see the following:

 

[   15.706674] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[   15.712403] fb_ili9486: module is from the staging directory, the quality is unknown, you have been warned.
[   15.712696] rockchip-pinctrl pinctrl: unable to find group for node waveshare35a_pins
[   15.712708] fb_ili9486: probe of spi2.0 failed with error -22

 

I read the driver sources, pinctrl documentation, overlay documentation, but being a userspace coder I did not really know what to make of all this and the above pinctrl error message.

 

The waveshare nodes were available in the live device tree, so I am not sure why this line triggers and where this "group" is supposed to be coming from:

https://github.com/armbian/linux/blob/rockchip/drivers/pinctrl/pinctrl-rockchip.c#L566

 

I then tried to configure the fbtft_device driver manually using the following parameters (tried to use the values from the waveshare dts):

modprobe fbtft_device custom name=fb_ili9486 gpios=dc:163,reet:171 speed=15000000 busnum=2 rotate=270 fps=30 txbuflen=32768 bgr=0 width=480 height=320

 

The above made half of the screen to react, settig the rotation to 0 allowed to access the whole screen (tried catting /dev/random into /dev/fb0 which fills the screen with random colored pixels).

 

I added xorg settings as suggested in the tinkerboard wiki and started xorg:

 

Section "Device"
    Identifier  "Rockchip Graphics"
    Driver      "fbdev"
    Option      "fbdev"          "/dev/fb0"
    Option      "DRI"            "2"
EndSection

However the image looked totally distorted (I had the feeling that its drawing every other line), it was however vaguely recognizable as some text / X login screen.

DSCF9683.JPG

 

Just out of curiosity I removed the overlay, rebooted and again loaded the driver as above with the same result (only that touchscreen did not work anymore as expected).

 

I am adding a full dmesg output with the overlay applied, the first fbtft load attempt is the "automatic" one and shows the rockchip pinctrl error, the second fbtft loading comes from my manual modprobe line which I pasted earlier.

 

I have no idea where to go from here, I thought those Waveshare screens are well supported, and from what I read they seem to work for others. What am I missing?

 

 

Kind regards,

Jin

 

P.S. ...couple of hours later...

 

Turned out that the results are a lot better if width and height parameters are left out. While the dts suggests to use bgr=0, bgr=1 gives correct colors, but it seems that the gamma is totally off. I also tried taking the init sequence from the dts and passing it to fbtft_device, but I could not see any difference.

 

So right now I ended up with the following line and results:

modprobe fbtft_device custom name=fb_ili9486 bgr=1 gpios=dc:163,reset:171 speed=15000000 busnum=2 fps=30 txbuflen=32768

 

DSCF9690.JPG.10e6ddee664377a831d4c9fe493866da.JPG

Original image for comparison:

RGB_24bits_palette_color_test_chart.png

 

 

DSCF9689.JPG.67518486a00af5d1a605916a4e04af02.JPG

 

 

So, some progress at last, I'd however be still interested in fixing the pinctrl problem and understanding why the dts would not work...
Next question of course - how to come up with proper gamma values?

 

Spoiler

 


[    0.000000] Booting Linux on physical CPU 0x500
[    0.000000] Linux version 4.19.57-rockchip (root@nightly) (gcc version 7.4.1 20181213 [linaro-7.4-2019.02 revision 56ec6f6b99cc167ff0c2f8e1a2eed33b1edc85d4] (Linaro GCC 7.4-2019.02)) #5.90 SMP PREEMPT Sat Jul 6 11:15:03 CEST 2019
[    0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[    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: Rockchip RK3288 Tinker Board
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] On node 0 totalpages: 524288
[    0.000000]   Normal zone: 1728 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196608 pages, LIFO batch:63
[    0.000000]   HighMem zone: 327680 pages, LIFO batch:63
[    0.000000] random: get_random_bytes called from start_kernel+0xa8/0x4c0 with crng_init=0
[    0.000000] percpu: Embedded 18 pages/cpu s43032 r8192 d22504 u73728
[    0.000000] pcpu-alloc: s43032 r8192 d22504 u73728 alloc=18*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522560
[    0.000000] Kernel command line: earlyprintk root=UUID=a26ac16a-d702-4a37-b486-8fb5073e7627 rootwait rootfstype=ext4 console=ttyS2,115200n8  panic=10 consoleblank=0 loglevel=1 ubootpart=a11b0125-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u   cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1
[    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] allocated 2097152 bytes of page_ext
[    0.000000] Memory: 2042376K/2097152K available (14336K kernel code, 972K rwdata, 2752K rodata, 2048K init, 4696K bss, 54776K reserved, 0K cma-reserved, 1310720K 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 : 0xbf000000 - 0xbfe00000   (  14 MB)
                     .text : 0x(ptrval) - 0x(ptrval)   (15328 kB)
                     .init : 0x(ptrval) - 0x(ptrval)   (2048 kB)
                     .data : 0x(ptrval) - 0x(ptrval)   ( 973 kB)
                      .bss : 0x(ptrval) - 0x(ptrval)   (4697 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 42774 entries in 126 pages
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] 	Tasks RCU enabled.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    0.000000] rockchip_mmc_get_phase: invalid clk rate
[    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.000008] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000022] Switching to timer-based delay loop, resolution 41ns
[    0.001817] Console: colour dummy device 80x30
[    0.001860] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.001879] pid_max: default: 32768 minimum: 301
[    0.002046] Security Framework initialized
[    0.002056] Yama: becoming mindful.
[    0.002146] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002164] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.003117] CPU: Testing write buffer coherency: ok
[    0.003163] CPU0: Spectre v2: using BPIALL workaround
[    0.003545] CPU0: thread -1, cpu 0, socket 5, mpidr 80000500
[    0.028039] Setting up static identity map for 0x100000 - 0x100060
[    0.036044] rcu: Hierarchical SRCU implementation.
[    0.052154] smp: Bringing up secondary CPUs ...
[    0.085663] CPU1: thread -1, cpu 1, socket 5, mpidr 80000501
[    0.085672] CPU1: Spectre v2: using BPIALL workaround
[    0.117863] CPU2: thread -1, cpu 2, socket 5, mpidr 80000502
[    0.117872] CPU2: Spectre v2: using BPIALL workaround
[    0.150080] CPU3: thread -1, cpu 3, socket 5, mpidr 80000503
[    0.150088] CPU3: Spectre v2: using BPIALL workaround
[    0.150304] smp: Brought up 1 node, 4 CPUs
[    0.150317] SMP: Total of 4 processors activated (192.00 BogoMIPS).
[    0.150324] CPU: All CPU(s) started in SVC mode.
[    0.152187] devtmpfs: initialized
[    0.168016] VFP support v0.3: implementor 41 architecture 3 part 30 variant d rev 0
[    0.168503] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.168525] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.168969] xor: measuring software checksum speed
[    0.209042]    arm4regs  :  1042.000 MB/sec
[    0.249156]    8regs     :   803.000 MB/sec
[    0.289276]    32regs    :   801.000 MB/sec
[    0.329389]    neon      :  1330.000 MB/sec
[    0.329398] xor: using function: neon (1330.000 MB/sec)
[    0.329464] pinctrl core: initialized pinctrl subsystem
[    0.330668] NET: Registered protocol family 16
[    0.333551] DMA: preallocated 2048 KiB pool for atomic coherent allocations
[    0.334191] audit: initializing netlink subsys (disabled)
[    0.334417] audit: type=2000 audit(0.332:1): state=initialized audit_enabled=0 res=1
[    0.335944] cpuidle: using governor ladder
[    0.335999] cpuidle: using governor menu
[    0.337134] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.337144] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.359598] gpio gpiochip0: (gpio0): added GPIO chardev (254:0)
[    0.359727] gpiochip_setup_dev: registered GPIOs 0 to 23 on device: gpiochip0 (gpio0)
[    0.359957] gpio gpiochip1: (gpio1): added GPIO chardev (254:1)
[    0.360067] gpiochip_setup_dev: registered GPIOs 24 to 55 on device: gpiochip1 (gpio1)
[    0.360292] gpio gpiochip2: (gpio2): added GPIO chardev (254:2)
[    0.360399] gpiochip_setup_dev: registered GPIOs 56 to 87 on device: gpiochip2 (gpio2)
[    0.360622] gpio gpiochip3: (gpio3): added GPIO chardev (254:3)
[    0.360731] gpiochip_setup_dev: registered GPIOs 88 to 119 on device: gpiochip3 (gpio3)
[    0.360962] gpio gpiochip4: (gpio4): added GPIO chardev (254:4)
[    0.361079] gpiochip_setup_dev: registered GPIOs 120 to 151 on device: gpiochip4 (gpio4)
[    0.361297] gpio gpiochip5: (gpio5): added GPIO chardev (254:5)
[    0.361416] gpiochip_setup_dev: registered GPIOs 152 to 183 on device: gpiochip5 (gpio5)
[    0.361624] gpio gpiochip6: (gpio6): added GPIO chardev (254:6)
[    0.361737] gpiochip_setup_dev: registered GPIOs 184 to 215 on device: gpiochip6 (gpio6)
[    0.361999] gpio gpiochip7: (gpio7): added GPIO chardev (254:7)
[    0.362110] gpiochip_setup_dev: registered GPIOs 216 to 247 on device: gpiochip7 (gpio7)
[    0.362337] gpio gpiochip8: (gpio8): added GPIO chardev (254:8)
[    0.362445] gpiochip_setup_dev: registered GPIOs 248 to 263 on device: gpiochip8 (gpio8)
[    0.463058] raid6: int32x1  gen()    89 MB/s
[    0.530840] raid6: int32x1  xor()   104 MB/s
[    0.599447] raid6: int32x2  gen()   101 MB/s
[    0.667234] raid6: int32x2  xor()   127 MB/s
[    0.735624] raid6: int32x4  gen()   163 MB/s
[    0.803879] raid6: int32x4  xor()   137 MB/s
[    0.872120] raid6: int32x8  gen()   201 MB/s
[    0.940330] raid6: int32x8  xor()   129 MB/s
[    1.008421] raid6: neonx1   gen()   345 MB/s
[    1.076565] raid6: neonx1   xor()   453 MB/s
[    1.144778] raid6: neonx2   gen()   426 MB/s
[    1.212946] raid6: neonx2   xor()   608 MB/s
[    1.281166] raid6: neonx4   gen()   741 MB/s
[    1.349343] raid6: neonx4   xor()   712 MB/s
[    1.417567] raid6: neonx8   gen()   650 MB/s
[    1.485736] raid6: neonx8   xor()   625 MB/s
[    1.485744] raid6: using algorithm neonx4 gen() 741 MB/s
[    1.485751] raid6: .... xor() 712 MB/s, rmw enabled
[    1.485758] raid6: using neon recovery algorithm
[    1.486410] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/vsys-regulator[0]'
[    1.486921] of_get_named_gpiod_flags: parsed 'gpio' property of node '/sdmmc-regulator[0]' - status (0)
[    1.490751] SCSI subsystem initialized
[    1.491041] usbcore: registered new interface driver usbfs
[    1.491110] usbcore: registered new interface driver hub
[    1.491194] usbcore: registered new device driver usb
[    1.491311] media: Linux media interface: v0.10
[    1.491356] videodev: Linux video capture interface: v2.00
[    1.491521] pps_core: LinuxPPS API ver. 1 registered
[    1.491530] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.491557] PTP clock support registered
[    1.492940] Bluetooth: Core ver 2.22
[    1.493004] NET: Registered protocol family 31
[    1.493013] Bluetooth: HCI device and connection manager initialized
[    1.493029] Bluetooth: HCI socket layer initialized
[    1.493041] Bluetooth: L2CAP socket layer initialized
[    1.493151] Bluetooth: SCO socket layer initialized
[    1.494166] clocksource: Switched to clocksource arch_sys_counter
[    1.682963] VFS: Disk quotas dquot_6.6.0
[    1.683056] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.683257] FS-Cache: Loaded
[    1.683504] CacheFiles: Loaded
[    1.698535] NET: Registered protocol family 2
[    1.699431] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 12288 bytes)
[    1.699484] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    1.699591] TCP bind hash table entries: 8192 (order: 5, 163840 bytes)
[    1.699864] TCP: Hash tables configured (established 8192 bind 8192)
[    1.700020] UDP hash table entries: 512 (order: 2, 24576 bytes)
[    1.700090] UDP-Lite hash table entries: 512 (order: 2, 24576 bytes)
[    1.700400] NET: Registered protocol family 1
[    1.701175] RPC: Registered named UNIX socket transport module.
[    1.701184] RPC: Registered udp transport module.
[    1.701190] RPC: Registered tcp transport module.
[    1.701197] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.702037] Trying to unpack rootfs image as initramfs...
[    2.251983] Freeing initrd memory: 6380K
[    2.253233] hw perfevents: enabled with armv7_cortex_a12 PMU driver, 7 counters available
[    2.255705] Initialise system trusted keyrings
[    2.255970] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    2.264649] zbud: loaded
[    2.267012] FS-Cache: Netfs 'nfs' registered for caching
[    2.267788] NFS: Registering the id_resolver key type
[    2.267823] Key type id_resolver registered
[    2.267831] Key type id_legacy registered
[    2.267853] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.268124] SGI XFS with ACLs, security attributes, realtime, no debug enabled
[    2.283453] async_tx: api initialized (async)
[    2.283468] Key type asymmetric registered
[    2.283477] Asymmetric key parser 'x509' registered
[    2.283551] bounce: pool size: 64 pages
[    2.283607] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    2.287850] io scheduler noop registered
[    2.287860] io scheduler deadline registered
[    2.288083] io scheduler cfq registered (default)
[    2.288094] io scheduler mq-deadline registered
[    2.288102] io scheduler kyber registered
[    2.295813] dma-pl330 ff250000.dma-controller: Loaded driver for PL330 DMAC-241330
[    2.295830] dma-pl330 ff250000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-20 Num_Events-16
[    2.296768] dma-pl330 ffb20000.dma-controller: Loaded driver for PL330 DMAC-241330
[    2.296784] dma-pl330 ffb20000.dma-controller: 	DBUFF-64x8bytes Num_Chans-5 Num_Peri-6 Num_Events-10
[    2.297528] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.299814] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 39, base_baud = 1500000) is a 16550A
[    2.300820] ff190000.serial: ttyS1 at MMIO 0xff190000 (irq = 40, base_baud = 1500000) is a 16550A
[    2.301830] ff690000.serial: ttyS2 at MMIO 0xff690000 (irq = 41, base_baud = 1500000) is a 16550A
[    2.302049] console [ttyS2] enabled
[    2.304461] iommu: Adding device ff930000.vop to group 0
[    2.304728] rockchip-vop ff930000.vop: Linked as a consumer to ff930300.iommu
[    2.305133] iommu: Adding device ff940000.vop to group 1
[    2.305181] rockchip-vop ff940000.vop: Linked as a consumer to ff940300.iommu
[    2.306897] rockchip-drm display-subsystem: Linked as a consumer to ff930000.vop
[    2.306935] rockchip-drm display-subsystem: Linked as a consumer to ff940000.vop
[    2.307468] rockchip-drm display-subsystem: Linked as a consumer to ff980000.hdmi
[    2.308276] rockchip-drm display-subsystem: bound ff930000.vop (ops 0xc0f6d3fc)
[    2.308762] rockchip-drm display-subsystem: bound ff940000.vop (ops 0xc0f6d3fc)
[    2.308851] rockchip-drm display-subsystem: failed to bind ff980000.hdmi (ops 0xc0f6ea90): -517
[    2.309094] rockchip-drm display-subsystem: master bind failed: -517
[    2.309438] usbcore: registered new interface driver udl
[    2.314037] brd: module loaded
[    2.326677] loop: module loaded
[    2.330110] mdio_bus fixed-0: GPIO lookup for consumer reset
[    2.330123] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    2.330135] mdio_bus fixed-0: No GPIO consumer reset found
[    2.330327] libphy: Fixed MDIO Bus: probed
[    2.331655] rk_gmac-dwmac ff290000.ethernet: PTP uses main clock
[    2.331697] rk_gmac-dwmac ff290000.ethernet: phy regulator is not available yet, deferred probing
[    2.333123] usbcore: registered new interface driver rt2500usb
[    2.333187] usbcore: registered new interface driver rt73usb
[    2.333252] usbcore: registered new interface driver rt2800usb
[    2.333321] usbcore: registered new interface driver rtl8xxxu
[    2.333396] usbcore: registered new interface driver rndis_wlan
[    2.333459] usbcore: registered new interface driver cdc_ether
[    2.333513] usbcore: registered new interface driver rndis_host
[    2.333900] dwc2 ff540000.usb: ff540000.usb supply vusb_d not found, using dummy regulator
[    2.333997] dwc2 ff540000.usb: Linked as a consumer to regulator.0
[    2.334019] dwc2 ff540000.usb: ff540000.usb supply vusb_a not found, using dummy regulator
[    2.394536] dwc2 ff540000.usb: DWC OTG Controller
[    2.394572] dwc2 ff540000.usb: new USB bus registered, assigned bus number 1
[    2.394618] dwc2 ff540000.usb: irq 46, io mem 0xff540000
[    2.395007] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    2.395022] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.395033] usb usb1: Product: DWC OTG Controller
[    2.395044] usb usb1: Manufacturer: Linux 4.19.57-rockchip dwc2_hsotg
[    2.395055] usb usb1: SerialNumber: ff540000.usb
[    2.395829] hub 1-0:1.0: USB hub found
[    2.395894] hub 1-0:1.0: 1 port detected
[    2.396786] dwc2 ff580000.usb: ff580000.usb supply vusb_d not found, using dummy regulator
[    2.396878] dwc2 ff580000.usb: Linked as a consumer to regulator.0
[    2.396900] dwc2 ff580000.usb: ff580000.usb supply vusb_a not found, using dummy regulator
[    2.522270] dwc2 ff580000.usb: EPs: 10, dedicated fifos, 972 entries in SPRAM
[    2.522744] dwc2 ff580000.usb: DWC OTG Controller
[    2.522788] dwc2 ff580000.usb: new USB bus registered, assigned bus number 2
[    2.522832] dwc2 ff580000.usb: irq 47, io mem 0xff580000
[    2.523125] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    2.523141] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.523152] usb usb2: Product: DWC OTG Controller
[    2.523163] usb usb2: Manufacturer: Linux 4.19.57-rockchip dwc2_hsotg
[    2.523174] usb usb2: SerialNumber: ff580000.usb
[    2.523933] hub 2-0:1.0: USB hub found
[    2.524001] hub 2-0:1.0: 1 port detected
[    2.526110] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.526119] ehci-platform: EHCI generic platform driver
[    2.526442] ehci-platform ff500000.usb: EHCI Host Controller
[    2.526741] ehci-platform ff500000.usb: new USB bus registered, assigned bus number 3
[    2.526908] ehci-platform ff500000.usb: irq 45, io mem 0xff500000
[    2.542228] ehci-platform ff500000.usb: USB 2.0 started, EHCI 1.00
[    2.542540] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    2.542554] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.542566] usb usb3: Product: EHCI Host Controller
[    2.542577] usb usb3: Manufacturer: Linux 4.19.57-rockchip ehci_hcd
[    2.542587] usb usb3: SerialNumber: ff500000.usb
[    2.543318] hub 3-0:1.0: USB hub found
[    2.543383] hub 3-0:1.0: 1 port detected
[    2.544338] usbcore: registered new interface driver usb-storage
[    2.545057] usbcore: registered new interface driver iforce
[    2.545150] usbcore: registered new interface driver xpad
[    2.545322] usbcore: registered new interface driver usbtouchscreen
[    2.545944] i2c /dev entries driver
[    2.550755] rk808 0-001b: chip id: 0x0
[    2.555023] rk808 0-001b: GPIO lookup for consumer dvs
[    2.555035] rk808 0-001b: using device tree for GPIO lookup
[    2.555081] of_get_named_gpiod_flags: parsed 'dvs-gpios' property of node '/i2c@ff650000/pmic@1b[0]' - status (0)
[    2.555110] gpio gpiochip0: Persistence not supported for GPIO 11
[    2.555324] rk808 0-001b: GPIO lookup for consumer dvs
[    2.555335] rk808 0-001b: using device tree for GPIO lookup
[    2.555378] of_get_named_gpiod_flags: parsed 'dvs-gpios' property of node '/i2c@ff650000/pmic@1b[1]' - status (0)
[    2.555403] gpio gpiochip0: Persistence not supported for GPIO 12
[    2.555509] DCDC_REG1: supplied by vcc_sys
[    2.556690] DCDC_REG2: supplied by vcc_sys
[    2.557702] DCDC_REG3: supplied by vcc_sys
[    2.558070] DCDC_REG4: supplied by vcc_sys
[    2.559032] LDO_REG1: supplied by vcc_sys
[    2.560611] LDO_REG2: supplied by vcc_sys
[    2.561879] LDO_REG3: supplied by vcc_sys
[    2.563361] LDO_REG4: supplied by vcc_io
[    2.564798] LDO_REG5: supplied by vcc_io
[    2.566262] LDO_REG6: supplied by vcc_io
[    2.566536] vdd10_lcd: Bringing 800000uV into 1000000-1000000uV
[    2.567987] LDO_REG7: supplied by vcc_sys
[    2.569449] LDO_REG8: supplied by vcc_sys
[    2.570883] SWITCH_REG1: supplied by vcc_io
[    2.571317] SWITCH_REG2: supplied by vcc_io
[    2.575331] rk808-rtc rk808-rtc: registered as rtc0
[    2.577921] rockchip-iodomain ff770000.syscon:io-domains: Linked as a consumer to regulator.13
[    2.578097] rockchip-iodomain ff770000.syscon:io-domains: Linked as a consumer to regulator.11
[    2.580472] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
[    2.580902] device-mapper: raid: Loading target version 1.14.0
[    2.581157] Bluetooth: HCI UART driver ver 2.3
[    2.581168] Bluetooth: HCI UART protocol H4 registered
[    2.581176] Bluetooth: HCI UART protocol ATH3K registered
[    2.581236] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    2.581322] usbcore: registered new interface driver bfusb
[    2.581403] usbcore: registered new interface driver btusb
[    2.581411] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[    2.582141] pwrseq_simple sdio-pwrseq: GPIO lookup for consumer reset
[    2.582204] pwrseq_simple sdio-pwrseq: using device tree for GPIO lookup
[    2.582249] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/sdio-pwrseq[0]' - status (0)
[    2.582283] gpio gpiochip4: Persistence not supported for GPIO 28
[    2.582316] pwrseq_simple sdio-pwrseq: GPIO lookup for consumer reset
[    2.582326] pwrseq_simple sdio-pwrseq: using device tree for GPIO lookup
[    2.582365] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/sdio-pwrseq[1]' - status (0)
[    2.582391] gpio gpiochip4: Persistence not supported for GPIO 27
[    2.582840] sdhci: Secure Digital Host Controller Interface driver
[    2.582847] sdhci: Copyright(c) Pierre Ossman
[    2.582853] Synopsys Designware Multimedia Card Interface Driver
[    2.583881] dwmmc_rockchip ff0c0000.dwmmc: IDMAC supports 32-bit address mode.
[    2.583926] dwmmc_rockchip ff0c0000.dwmmc: Using internal DMA controller.
[    2.583944] dwmmc_rockchip ff0c0000.dwmmc: Version ID is 270a
[    2.584019] dwmmc_rockchip ff0c0000.dwmmc: DW MMC controller at irq 30,32 bit host data width,256 deep fifo
[    2.584166] dwmmc_rockchip ff0c0000.dwmmc: Linked as a consumer to regulator.15
[    2.584285] dwmmc_rockchip ff0c0000.dwmmc: Linked as a consumer to regulator.11
[    2.584326] dwmmc_rockchip ff0c0000.dwmmc: GPIO lookup for consumer cd
[    2.584336] dwmmc_rockchip ff0c0000.dwmmc: using device tree for GPIO lookup
[    2.584364] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/dwmmc@ff0c0000[0]'
[    2.584387] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/dwmmc@ff0c0000[0]'
[    2.584400] dwmmc_rockchip ff0c0000.dwmmc: using lookup tables for GPIO lookup
[    2.584411] dwmmc_rockchip ff0c0000.dwmmc: No GPIO consumer cd found
[    2.584426] dwmmc_rockchip ff0c0000.dwmmc: GPIO lookup for consumer wp
[    2.584437] dwmmc_rockchip ff0c0000.dwmmc: using device tree for GPIO lookup
[    2.584458] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/dwmmc@ff0c0000[0]'
[    2.584477] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/dwmmc@ff0c0000[0]'
[    2.584489] dwmmc_rockchip ff0c0000.dwmmc: using lookup tables for GPIO lookup
[    2.584500] dwmmc_rockchip ff0c0000.dwmmc: No GPIO consumer wp found
[    2.597417] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    2.611063] dwmmc_rockchip ff0d0000.dwmmc: IDMAC supports 32-bit address mode.
[    2.611105] dwmmc_rockchip ff0d0000.dwmmc: Using internal DMA controller.
[    2.611123] dwmmc_rockchip ff0d0000.dwmmc: Version ID is 270a
[    2.611209] dwmmc_rockchip ff0d0000.dwmmc: DW MMC controller at irq 31,32 bit host data width,256 deep fifo
[    2.611296] dwmmc_rockchip ff0d0000.dwmmc: GPIO lookup for consumer wp
[    2.611307] dwmmc_rockchip ff0d0000.dwmmc: using device tree for GPIO lookup
[    2.611333] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/dwmmc@ff0d0000[0]'
[    2.611355] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/dwmmc@ff0d0000[0]'
[    2.611368] dwmmc_rockchip ff0d0000.dwmmc: using lookup tables for GPIO lookup
[    2.611380] dwmmc_rockchip ff0d0000.dwmmc: No GPIO consumer wp found
[    2.611446] dwmmc_rockchip ff0d0000.dwmmc: allocated mmc-pwrseq
[    2.611459] mmc_host mmc1: card is non-removable.
[    2.624591] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    2.638002] dwmmc_rockchip ff0f0000.dwmmc: IDMAC supports 32-bit address mode.
[    2.638054] dwmmc_rockchip ff0f0000.dwmmc: Using internal DMA controller.
[    2.638073] dwmmc_rockchip ff0f0000.dwmmc: Version ID is 270a
[    2.638192] dwmmc_rockchip ff0f0000.dwmmc: DW MMC controller at irq 32,32 bit host data width,256 deep fifo
[    2.638339] dwmmc_rockchip ff0f0000.dwmmc: GPIO lookup for consumer wp
[    2.638351] dwmmc_rockchip ff0f0000.dwmmc: using device tree for GPIO lookup
[    2.638378] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/dwmmc@ff0f0000[0]'
[    2.638400] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/dwmmc@ff0f0000[0]'
[    2.638414] dwmmc_rockchip ff0f0000.dwmmc: using lookup tables for GPIO lookup
[    2.638425] dwmmc_rockchip ff0f0000.dwmmc: No GPIO consumer wp found
[    2.638488] mmc_host mmc2: card is non-removable.
[    2.645429] random: fast init done
[    2.651329] mmc_host mmc2: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    2.654693] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[    2.657184] mmc1: new high speed SDIO card at address 0001
[    2.662762] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.663040] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-leds/act-led[0]' - status (0)
[    2.663076] gpio gpiochip1: Persistence not supported for GPIO 24
[    2.663084] no flags found for gpios
[    2.663295] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-leds/heartbeat-led[0]' - status (0)
[    2.663325] gpio gpiochip1: Persistence not supported for GPIO 25
[    2.663332] no flags found for gpios
[    2.663569] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-leds/pwr-led[0]' - status (0)
[    2.663597] gpio gpiochip0: Persistence not supported for GPIO 3
[    2.663604] no flags found for gpios
[    2.664139] ledtrig-cpu: registered to indicate activity on CPUs
[    2.664329] hidraw: raw HID events driver (C) Jiri Kosina
[    2.664723] usbcore: registered new interface driver usbhid
[    2.664731] usbhid: USB HID core driver
[    2.665179] ashmem: initialized
[    2.665650] rockchip-saradc ff100000.saradc: Linked as a consumer to regulator.7
[    2.668954] NET: Registered protocol family 10
[    2.724388] mmc_host mmc2: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0)
[    2.727624] Segment Routing with IPv6
[    2.728620] NET: Registered protocol family 17
[    2.728694] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.728879] Bluetooth: RFCOMM socket layer initialized
[    2.728917] Bluetooth: RFCOMM ver 1.11
[    2.728940] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.728956] Bluetooth: HIDP socket layer initialized
[    2.729019] 8021q: 802.1Q VLAN Support v1.8
[    2.729052] lib80211: common routines for IEEE802.11 drivers
[    2.729061] lib80211_crypt: registered algorithm 'NULL'
[    2.729069] lib80211_crypt: registered algorithm 'WEP'
[    2.729077] lib80211_crypt: registered algorithm 'CCMP'
[    2.729085] lib80211_crypt: registered algorithm 'TKIP'
[    2.729120] Key type dns_resolver registered
[    2.729579] ThumbEE CPU extension supported.
[    2.729596] Registering SWP/SWPB emulation handler
[    2.730782] Loading compiled-in X.509 certificates
[    2.730889] zswap: loaded using pool lzo/zbud
[    2.732533] Btrfs loaded, crc32c=crc32c-generic
[    2.780009] rockchip-drm display-subsystem: bound ff930000.vop (ops 0xc0f6d3fc)
[    2.780435] rockchip-drm display-subsystem: bound ff940000.vop (ops 0xc0f6d3fc)
[    2.780703] dwhdmi-rockchip ff980000.hdmi: Detected HDMI TX controller v2.00a with HDCP (DWC MHL PHY)
[    2.781508] rockchip-drm display-subsystem: bound ff980000.hdmi (ops 0xc0f6ea90)
[    2.781520] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.781526] [drm] No driver support for vblank timestamp query.
[    2.781575] [drm] Cannot find any crtc or sizes
[    2.782421] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 0
[    2.783432] rk_gmac-dwmac ff290000.ethernet: PTP uses main clock
[    2.783583] rk_gmac-dwmac ff290000.ethernet: Linked as a consumer to regulator.16
[    2.783601] rk_gmac-dwmac ff290000.ethernet: clock input or output? (input).
[    2.783616] rk_gmac-dwmac ff290000.ethernet: TX delay(0x30).
[    2.783629] rk_gmac-dwmac ff290000.ethernet: RX delay(0x10).
[    2.783645] rk_gmac-dwmac ff290000.ethernet: integrated PHY? (no).
[    2.783732] rk_gmac-dwmac ff290000.ethernet: cannot get clock clk_mac_speed
[    2.783743] rk_gmac-dwmac ff290000.ethernet: clock input from PHY
[    2.788769] rk_gmac-dwmac ff290000.ethernet: init for RGMII
[    2.789043] rk_gmac-dwmac ff290000.ethernet: User ID: 0x10, Synopsys ID: 0x35
[    2.789060] rk_gmac-dwmac ff290000.ethernet: 	DWMAC1000
[    2.789071] rk_gmac-dwmac ff290000.ethernet: DMA HW capability register supported
[    2.789081] rk_gmac-dwmac ff290000.ethernet: RX Checksum Offload Engine supported
[    2.789092] rk_gmac-dwmac ff290000.ethernet: COE Type 2
[    2.789103] rk_gmac-dwmac ff290000.ethernet: TX Checksum insertion supported
[    2.789112] rk_gmac-dwmac ff290000.ethernet: Wake-Up On Lan supported
[    2.789164] rk_gmac-dwmac ff290000.ethernet: Normal descriptors
[    2.789175] rk_gmac-dwmac ff290000.ethernet: Ring mode enabled
[    2.789184] rk_gmac-dwmac ff290000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    2.789315] mdio_bus stmmac-0: GPIO lookup for consumer reset
[    2.789327] mdio_bus stmmac-0: using lookup tables for GPIO lookup
[    2.789338] mdio_bus stmmac-0: No GPIO consumer reset found
[    2.789381] of_get_named_gpiod_flags: parsed 'snps,reset-gpio' property of node '/ethernet@ff290000[0]' - status (0)
[    2.790243] usb 1-1: new high-speed USB device number 2 using dwc2
[    2.878214] usb 3-1: new high-speed USB device number 2 using ehci-platform
[    2.999804] usb 1-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=32.98
[    2.999819] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.999830] usb 1-1: Product: USB2.0 Hub
[    3.000743] hub 1-1:1.0: USB hub found
[    3.001106] hub 1-1:1.0: 4 ports detected
[    3.083063] dwmmc_rockchip ff0f0000.dwmmc: Successfully tuned phase to 200
[    3.084725] mmc2: new HS200 MMC card at address 0001
[    3.086392] mmcblk2: mmc2:0001 HAG4a2 14.7 GiB 
[    3.087579] mmcblk2boot0: mmc2:0001 HAG4a2 partition 1 4.00 MiB
[    3.088769] mmcblk2boot1: mmc2:0001 HAG4a2 partition 2 4.00 MiB
[    3.089064] mmcblk2rpmb: mmc2:0001 HAG4a2 partition 3 4.00 MiB, chardev (241:0)
[    3.090484]  mmcblk2: p1
[    3.236257] usb 3-1: config 1 has an invalid interface number: 255 but max is 6
[    3.236273] usb 3-1: config 1 has no interface number 6
[    3.237730] usb 3-1: New USB device found, idVendor=0bda, idProduct=481a, bcdDevice= 0.00
[    3.237745] usb 3-1: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[    3.237756] usb 3-1: Product: USB Audio
[    3.237767] usb 3-1: Manufacturer: Generic
[    3.237778] usb 3-1: SerialNumber: 201405280001
[    3.245849] input: Generic USB Audio Consumer Control as /devices/platform/ff500000.usb/usb3/3-1/3-1:1.255/0003:0BDA:481A.0001/input/input0
[    3.302738] input: Generic USB Audio as /devices/platform/ff500000.usb/usb3/3-1/3-1:1.255/0003:0BDA:481A.0001/input/input1
[    3.303451] hid-generic 0003:0BDA:481A.0001: input,hiddev96,hidraw0: USB HID v1.11 Device [Generic USB Audio] on usb-ff500000.usb-1/input255
[    3.810278] [drm] Cannot find any crtc or sizes
[    3.878294] libphy: stmmac: probed
[    3.878315] RTL8211E Gigabit Ethernet stmmac-0:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:00, irq=POLL)
[    3.878329] RTL8211E Gigabit Ethernet stmmac-0:01: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[    3.880431] rk808-rtc rk808-rtc: setting system clock to 2013-01-18 08:50:08 UTC (1358499008)
[    3.880778] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.909864] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.910483] vcc_sd: supplied by vcc_io
[    3.910600] vcc_sd: disabling
[    3.910901] ttyS2 - failed to request DMA
[    3.916060] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.916072] cfg80211: failed to load regulatory.db
[    3.919057] Freeing unused kernel memory: 2048K
[    3.919423] Run /init as init process
[   12.735934] EXT4-fs (mmcblk2p1): mounted filesystem with writeback data mode. Opts: (null)
[   13.141096] systemd[1]: System time before build time, advancing clock.
[   13.179610] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[   13.180855] systemd[1]: Detected architecture arm.
[   13.214872] systemd[1]: Set hostname to <tinkerboard>.
[   13.216978] systemd[1]: Failed to bump fs.file-max, ignoring: Invalid argument
[   13.573876] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[   13.573903] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[   13.971581] random: systemd: uninitialized urandom read (16 bytes read)
[   13.986412] random: systemd: uninitialized urandom read (16 bytes read)
[   13.986854] systemd[1]: Listening on initctl Compatibility Named Pipe.
[   13.998465] random: systemd: uninitialized urandom read (16 bytes read)
[   13.998993] systemd[1]: Listening on udev Kernel Socket.
[   14.011153] systemd[1]: Listening on Journal Socket (/dev/log).
[   14.023294] systemd[1]: Listening on Journal Audit Socket.
[   14.393791] EXT4-fs (mmcblk2p1): re-mounted. Opts: commit=600,errors=remount-ro
[   15.166675] random: crng init done
[   15.166686] random: 7 urandom warning(s) missed due to ratelimiting
[   15.482786] systemd-journald[270]: Received request to flush runtime journal from PID 1
[   15.780425] cpu cpu0: Linked as a consumer to regulator.3
[   15.780529] cpu cpu0: Dropping the link to regulator.3
[   15.780824] cpu cpu0: Linked as a consumer to regulator.3
[   15.790262] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 500000 KHz
[   15.791978] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 600000 KHz
[   15.829654] of_get_named_gpiod_flags: parsed 'pendown-gpio' property of node '/spi@ff130000/waveshare35a-ts@1[0]' - status (0)
[   15.829769] ads7846 spi2.1: spi2.1 supply vcc not found, using dummy regulator
[   15.829815] ads7846 spi2.1: Linked as a consumer to regulator.0
[   15.832115] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[   15.838505] fb_ili9486: module is from the staging directory, the quality is unknown, you have been warned.
[   15.838869] rockchip-pinctrl pinctrl: unable to find group for node waveshare35a_pins
[   15.838884] fb_ili9486: probe of spi2.0 failed with error -22
[   15.838893] r8723bs: module is from the staging directory, the quality is unknown, you have been warned.
[   15.839866] ads7846 spi2.1: touchscreen, irq 246
[   15.840212] input: ADS7846 Touchscreen as /devices/platform/ff130000.spi/spi_master/spi2/spi2.1/input/input2
[   15.845273] RTL8723BS: module init start
[   15.845279] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[   15.845281] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[   15.845832] pnetdev = 81701a00
[   15.918220] zram: Added device: zram0
[   15.918684] zram: Added device: zram1
[   15.924573] zram: Added device: zram2
[   15.948357] mali ffa30000.gpu: Linked as a consumer to regulator.4
[   15.948943] mali ffa30000.gpu: GPU identified as 0x0750 r0p0 status 1
[   15.949120] mali ffa30000.gpu: Protected mode not available
[   15.949722] rk3288-crypto ff8a0000.cypto-controller: Crypto Accelerator successfully registered
[   15.954937] mali ffa30000.gpu: Probed as mali0
[   15.956764] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio-keys/button@0[0]' - status (0)
[   15.956780] gpio gpiochip0: Persistence not supported for GPIO 5
[   15.956912] input: gpio-keys as /devices/platform/gpio-keys/input/input3
[   16.005718] zram1: detected capacity change from 0 to 1050013696
[   16.015553] RTL8723BS: rtw_ndev_init(wlan0)
[   16.016328] RTL8723BS: module init ret =0
[   16.145558] Adding 1025400k swap on /dev/zram1.  Priority:5 extents:1 across:1025400k SSFS
[   16.196627] of_get_named_gpiod_flags: can't parse 'simple-audio-card,hp-det-gpio' property of node '/sound[0]'
[   16.196637] of_get_named_gpiod_flags: can't parse 'simple-audio-card,mic-det-gpio' property of node '/sound[0]'
[   16.196975] asoc-simple-card sound: i2s-hifi <-> ff890000.i2s mapping ok
[   16.300344] zram0: detected capacity change from 0 to 52428800
[   16.429337] EXT4-fs (zram0): mounted filesystem without journal. Opts: discard
[   18.062115] usbcore: registered new interface driver snd-usb-audio
[   19.305218] gpio gpiochip4: Persistence not supported for GPIO 26
[   19.305406] gpio gpiochip4: Persistence not supported for GPIO 29
[   19.305549] gpio gpiochip4: Persistence not supported for GPIO 31
[   19.971322] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   19.972383] RTL8211E Gigabit Ethernet stmmac-0:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:00, irq=POLL)
[   19.986166] rk_gmac-dwmac ff290000.ethernet eth0: No Safety Features support found
[   19.986177] rk_gmac-dwmac ff290000.ethernet eth0: PTP not supported by HW
[   19.986434] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   19.999831] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   20.013348] rtl8723bs: acquire FW from file:rtlwifi/rtl8723bs_nic.bin
[   20.994680] rk_gmac-dwmac ff290000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   21.320389] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   21.320433] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   21.340142] ttyS0 - failed to request DMA
[   21.473675] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   91.334599] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[   91.335565] ads7846 spi2.1: ads7846 spi2.1 2000kHz 8 bits mode=0x00
[   91.335580] spi spi2.0: ili9486 spi2.0 15000kHz 8 bits mode=0x00
[   91.335670] rockchip-efuse ffb40000.efuse: ffb40000.efuse id=-1 pdata? no
[   91.336172] spi spi2.0: Deleting spi2.0
[   91.910870] Console: switching to colour frame buffer device 60x40
[   91.911340] graphics fb0: fb_ili9486 frame buffer, 480x320, 300 KiB video memory, 32 KiB buffer memory, fps=31, spi2.0 at 15 MHz
[   91.911402] fbtft_device: GPIOS used by 'fb_ili9486':
[   91.911405] fbtft_device: 'dc' = GPIO163
[   91.911407] fbtft_device: 'reset' = GPIO171
[   91.911414] ads7846 spi2.1: ads7846 spi2.1 2000kHz 8 bits mode=0x00
[   91.911418] fb_ili9486 spi2.0: fb_ili9486 spi2.0 15000kHz 8 bits mode=0x00

 

 

Link to comment
Share on other sites

3 hours ago, Jin^eLD said:

Updated to 4.19.57-rockchip via armbian-config (in order to get the fbtft* modules that were missing in 4.4).

 

This will be part of the problem.  The Rockchip kernel (4.4) is not quite "vanilla" mainline and it's overlays are not exactly compatible with 4.14+  I didn't realize the tft modules were missing from our 4.4, I can remedy that, but ideally I'd like to get mainline to replace the increasingly decrepit vendor kernel.

Link to comment
Share on other sites

Thanks for the explanation, so what would you suggest, what should I be using in order to get this LCD going? Downgrade back to 4.4 and recompile/wait till the modules hit the repo? Or go the opposite way and try my luck with the 5.x kernels? How usable is mainline for the Tinker?

 

As its apparently such a common LCD I was surprised that it did not work "out of the box", is everyone using HDMI these days?

 

Link to comment
Share on other sites

18 hours ago, TonyMac32 said:

The Rockchip kernel (4.4) is not quite "vanilla" mainline and it's overlays are not exactly compatible with 4.14+  I didn't realize the tft modules were missing from our 4.4, I can remedy that, but ideally I'd like to get mainline to replace the increasingly decrepit vendor kernel.

 

 

Following your advice I did rebuild the 4.4 kernel with fbtft modules enabled, so now running 4.4.182-rockchip

 

The LCD went black during bootup which at first made me happy, but then dmesg showed the same pinctrl error about the group, but it seems other options from the overlay have been applied:

 

[   10.394893] systemd-journald[235]: Received request to flush runtime journal from PID 1
[   10.655296] of_get_named_gpiod_flags: parsed 'pendown-gpio' property of node '/spi@ff130000/waveshare35a-ts@1[0]' - status (0)
[   10.655346] spi2.1 supply vcc not found, using dummy regulator
[   10.667395] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[   10.668333] ads7846 spi2.1: touchscreen, irq 246
[   10.668642] input: ADS7846 Touchscreen as /devices/platform/ff130000.spi/spi_master/spi2/spi2.1/input/input2
[   10.668812] fb_ili9486: module is from the staging directory, the quality is unknown, you have been warned.
[   10.669371] rockchip-pinctrl pinctrl: unable to find group for node waveshare35a_pins
[   10.669400] fbtft_of_value: regwidth = 16
[   10.669404] fbtft_of_value: buswidth = 8
[   10.669408] fbtft_of_value: debug = 0
[   10.669411] fbtft_of_value: rotate = 270
[   10.669415] fbtft_of_value: fps = 30
[   10.669418] fbtft_of_value: txbuflen = 32768
[   10.669637] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/spi@ff130000/waveshare35a@0[0]' - status (0)
[   10.669685] of_get_named_gpiod_flags: parsed 'dc-gpios' property of node '/spi@ff130000/waveshare35a@0[0]' - status (0)

 

I then got a mali related kernel dump which I think should not influence the LCD:

 

[   10.781017] rk3288-crypto ff8a0000.cypto-controller: Crypto Accelerator successfully registered
[   10.781379] mali ffa30000.gpu: Failed to get leakage
[   10.781418] mali ffa30000.gpu: Failed to get pvtm
[   10.810253] mali ffa30000.gpu: GPU identified as 0x0750 r0p0 status 1
[   10.810386] mali ffa30000.gpu: Protected mode not available
[   10.811053] devfreq ffa30000.gpu: Couldn't update frequency transition information.
[   10.811167] ERROR: Bad of_node_put() on /gpu@ffa30000
[   10.811176] CPU: 0 PID: 302 Comm: systemd-udevd Tainted: G         C      4.4.182-rockchip #1
[   10.811180] Hardware name: Rockchip (Device Tree)
[   10.811200] [<c011126c>] (unwind_backtrace) from [<c010cb54>] (show_stack+0x20/0x24)
[   10.811214] [<c010cb54>] (show_stack) from [<c062917c>] (dump_stack+0x90/0xa4)
[   10.811227] [<c062917c>] (dump_stack) from [<c0a0f340>] (of_node_release+0x9c/0xa0)
[   10.811238] [<c0a0f340>] (of_node_release) from [<c062b4ac>] (kobject_put+0x9c/0xec)
[   10.811245] [<c062b4ac>] (kobject_put) from [<c0a0e820>] (of_node_put+0x24/0x28)
[   10.811258] [<c0a0e820>] (of_node_put) from [<c0a0a934>] (of_find_compatible_node+0x8c/0xe4)
[   10.811338] [<c0a0a934>] (of_find_compatible_node) from [<bf2657f0>] (get_model_dt_node+0x50/0x9c [midgard_kbase])
[   10.811452] [<bf2657f0>] (get_model_dt_node [midgard_kbase]) from [<bf265c5c>] (kbase_ipa_model_add_param_string+0x34/0xe0 [midgard_kbase])
[   10.811558] [<bf265c5c>] (kbase_ipa_model_add_param_string [midgard_kbase]) from [<bf2656c0>] (kbase_simple_power_model_init+0xd8/0xe8 [midgard_kbase])
[   10.811667] [<bf2656c0>] (kbase_simple_power_model_init [midgard_kbase]) from [<bf265db8>] (kbase_ipa_init_model+0x6c/0xc0 [midgard_kbase])
[   10.811776] [<bf265db8>] (kbase_ipa_init_model [midgard_kbase]) from [<bf265edc>] (kbase_ipa_init+0xd0/0x190 [midgard_kbase])
[   10.811879] [<bf265edc>] (kbase_ipa_init [midgard_kbase]) from [<bf272308>] (kbase_devfreq_init+0x20c/0x5a8 [midgard_kbase])
[   10.811983] [<bf272308>] (kbase_devfreq_init [midgard_kbase]) from [<bf25c724>] (kbase_platform_device_probe+0x488/0xc84 [midgard_kbase])
[   10.812044] [<bf25c724>] (kbase_platform_device_probe [midgard_kbase]) from [<c075d0b8>] (platform_drv_probe+0x60/0xbc)
[   10.812057] [<c075d0b8>] (platform_drv_probe) from [<c075b2b0>] (driver_probe_device+0x1f4/0x2e8)
[   10.812069] [<c075b2b0>] (driver_probe_device) from [<c075b438>] (__driver_attach+0x94/0x98)
[   10.812079] [<c075b438>] (__driver_attach) from [<c0759380>] (bus_for_each_dev+0x5c/0xac)
[   10.812089] [<c0759380>] (bus_for_each_dev) from [<c075ab48>] (driver_attach+0x2c/0x30)
[   10.812098] [<c075ab48>] (driver_attach) from [<c075a73c>] (bus_add_driver+0x19c/0x220)
[   10.812107] [<c075a73c>] (bus_add_driver) from [<c075be8c>] (driver_register+0x88/0x104)
[   10.812115] [<c075be8c>] (driver_register) from [<c075d000>] (__platform_driver_register+0x50/0x58)
[   10.812176] [<c075d000>] (__platform_driver_register) from [<bf29901c>] (kbase_platform_driver_init+0x1c/0x1000 [midgard_kbase])
[   10.812240] [<bf29901c>] (kbase_platform_driver_init [midgard_kbase]) from [<c0101b0c>] (do_one_initcall+0xa0/0x1f0)
[   10.812255] [<c0101b0c>] (do_one_initcall) from [<c020b38c>] (do_init_module+0x74/0x3a8)
[   10.812267] [<c020b38c>] (do_init_module) from [<c01b9b8c>] (load_module+0x1e50/0x2338)
[   10.812278] [<c01b9b8c>] (load_module) from [<c01ba294>] (SyS_finit_module+0x84/0x9c)
[   10.812286] [<c01ba294>] (SyS_finit_module) from [<c01081e0>] (__sys_trace_return+0x0/0x10)

I now have /dev/fb0 which seems to be:

[    2.527468] rockchip-drm display-subsystem: fb0:  frame buffer device

 

and /dev/fb1 which is the LCD:

[   11.260867] graphics fb1: fb_ili9486 frame buffer, 480x320, 300 KiB video memory, 32 KiB DMA buffer memory, fps=31, spi2.0 at 15 MHz

 

However, it stays black...

 

I can revive the LCD somewhat using yesterday "custom" fbtft_device hack, but gamma is completely off and it seems that ili9486 does not support fbtft's gamma options.

 

So basically, while the waveshare35a dtb overlay does apply with this kernel version, it does not result in a working LCD... which still leaves me wondering: what am I missing, as it apparently works for everyone else...?

What should I look at?

 

P.S. it also seems that the touchscreen does not work anymore either, although the ads7846 module got loaded automatically and configuration was present in the dtbo...

Link to comment
Share on other sites

One more addition, its really weird, almost random... So I did play around modprobe without getting anywhere, then did yet another reboot and suddenly - I automatically get a nice picture, with nice gamma, everything as it should be. Of course the touch part is not responding now, will investigate that...

 

The only thing I changed was adjusting the Xorg config to use /dev/fb1, but I tried that earlier as well killing and restarting Xorg and the screen stayed black... but now since the configuration was correct on boot it seems it worked? It all seems really shaky..

Link to comment
Share on other sites

1 hour ago, TonyMac32 said:

Yes, we need to really get the mainline working properly.

 

That would be great indeed... but please help me until then :>

 

So I am now in a situation where the LCD is working with 4.4, but not with 4.19 while the touchscreen part of it is only working in 4.19 but not in 4.4.

 

I was following this thread, however it focuses on the 4.19 kernel which did work with the touchscreen anyway, even with the original TinkerOS/Waveshare dtb overlays.

 

 

I still tried a few things with the dts (i.e. defined the touchscreen pins as ads7846_pins as in the dts from the post (no, I am not really sure about what I was doing there), but nothing helped.

 

The input as such is actually set up and I can select it when trying things out in evtest, but I do not receive any events when clicking on the screen...

 

The only thing in dmesg regarding to the touchscreen that I see is (with my dtb):

[    8.277587] of_get_named_gpiod_flags: parsed 'pendown-gpio' property of node '/spi@ff130000/ads7846@1[0]' - status (0)
[    8.277633] spi2.1 supply vcc not found, using dummy regulator
[    8.277926] ads7846 spi2.1: touchscreen, irq 246
[    8.278228] input: ADS7846 Touchscreen as /devices/platform/ff130000.spi/spi_master/spi2/spi2.1/input/input2

 

With the unmodified waveshare35a dtb:

[    8.138020] of_get_named_gpiod_flags: parsed 'pendown-gpio' property of node '/spi@ff130000/waveshare35a-ts@1[0]' - status (0)
[    8.138066] spi2.1 supply vcc not found, using dummy regulator
[    8.138342] ads7846 spi2.1: touchscreen, irq 246
[    8.138645] input: ADS7846 Touchscreen as /devices/platform/ff130000.spi/spi_master/spi2/spi2.1/input/input2

 

If I compare the output to the 4.19 dmesg:

[    2.465547] of_get_named_gpiod_flags: parsed 'pendown-gpio' property of node '/spi@ff130000/waveshare35a-ts@1[0]' - status (0)
[    2.465622] spi2.1 supply vcc not found, using dummy regulator
[    2.466155] ads7846 spi2.1: touchscreen, irq 247
[    2.466828] input: ADS7846 Touchscreen as /devices/platform/ff130000.spi/spi_master/spi2/spi2.1/input/input0
[    2.467505] usbcore: registered new interface driver usbtouchscreen

I assume the usb line that comes right after that (was not the case with 4.4) has nothing to do with all this?

 

At this point I am clueless how to proceed, since I do not see any errors... it just does not generate any events. Any hints or help would be greatly appreciated!

 

On a slightly different topic: I was trying to get rid of /dev/fb0 and the Mali related kernel errors (I do not need the GPU at this point), so I disabled it in the kernel configuration and recompiled the kernel, however I get the following in compile.log:

drivers/built-in.o: In function `reg_init':
board-info.c:(.text+0x1fa98): undefined reference to `dma_buf_get'
board-info.c:(.text+0x1fac0): undefined reference to `dma_buf_begin_cpu_access'
board-info.c:(.text+0x1fad4): undefined reference to `dma_buf_vmap'
board-info.c:(.text+0x1fb5c): undefined reference to `dma_buf_vunmap'
board-info.c:(.text+0x1fb70): undefined reference to `dma_buf_end_cpu_access'
board-info.c:(.text+0x1fb78): undefined reference to `dma_buf_put'
make: *** [vmlinux] Error 1

I tried various kernel config combinations, but did not succeed. Can the GPU be disabled at all in the rockchip kernel?

linux-rockchip-default.config waveshare35a-tinker-overlay.dts waveshare35a-tinker-test-overlay.dts

Link to comment
Share on other sites

What exactly is your flexfb command to do this?

 

Could part of the command be done inside dts and would it be useful?

 

Could you try the LCD on the other SPI to see if it works the same?

 

What about getting 2 LCDs to work at the same time?

Link to comment
Share on other sites

The following command works on waveshare ili9340 with no extra work if you connect the pins one-to-one:

sudo modprobe fbtft_device custom name=fb_ili9340 gpios=reset:166,dc:167 speed=32000000 txbuflen=32768 rotate=90 bgr=1 busnum=2

 

Note that if you use a bigger buffer size it may not work.


1915612511_Annotation2019-08-31115612.jpg.d62f607caaf63ee3301b2db1e76780f6.jpg

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines