notro / fbtft

Linux Framebuffer drivers for small TFT LCD display modules. Development has moved to https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/tree/drivers/staging/fbtft?h=staging-testing
1.85k stars 496 forks source link

How to use fbtft for TFT01-2.2S LCD? #428

Closed rezaee closed 6 years ago

rezaee commented 7 years ago

Hi I have an arm-based board(nanopi m1)that has 40 pins GPIO similar to raspberry pi and Debian Jessie OS. also I have this display: http://www.elecfreaks.com/wiki/index.php?title=2.2S%22_TFT_LCD:_TFT01-2.2S and want to connect it directly to my board. May you help me how can I do that?

notro commented 7 years ago

That display is mentioned in the wiki: https://github.com/notro/fbtft/wiki/More-LCD-Modules#tft01-22sp Check that your kernel supports fbtft:

$ modinfo fbtft
filename:       /lib/modules/4.9.0-rc5-v7+/kernel/drivers/staging/fbtft/fbtft.ko
license:        GPL
srcversion:     3EFDADD511D35BFEE3B20A7
depends:
staging:        Y
intree:         Y
vermagic:       4.9.0-rc5-v7+ SMP mod_unload modversions ARMv7 p2v8
parm:           debug:override device debug level (ulong)
parm:           dma:Use DMA buffer (bool)

fbtft was added to linux in 4.10.

rezaee commented 7 years ago

Hi notro and very thank you for reply. But I am newbie in linux and don't know how to check fbtft support? Are armbian or raspbian OS in they last version support that? If yes, I want to download and trying them on my board if it's possible!

rezaee commented 7 years ago

this is my OS information and I think there is no support for fbtft: Linux FriendlyARM 3.4.39-h3 #76 SMP PREEMPT Wed Sep 7 13:46:05 CST 2016 armv7l GNU/Linux

notro commented 7 years ago

This command will tell if you have fbtft support: modinfo fbtft_device The fbtft module can be builtin, but fbtft_device is most likely not. This will show which drivers are enabled if any:

$ zgrep CONFIG_FB_TFT /proc/config.gz
CONFIG_FB_TFT=m
<snip>

AFAICT this is the tree they build the kernel from, and it does have fbtft: https://github.com/friendlyarm/h3_lichee/tree/master/linux-3.4/drivers/staging/fbtft

I don't know which defconfig is used, but this one for instance have only 2 drivers enabled: https://github.com/friendlyarm/h3_lichee/blob/97e1a057000511abe8ed85adee6c6474398a427c/linux-3.4/arch/arm/configs/sun8iw7p1smp_defconfig#L2870

rezaee commented 7 years ago

This is the resault of modinfo fbtft: modinfo: ERROR: Module fbtft not found.

But after checking the files, I found this file here: /lib/modules/3.4.39-h3/kernel/drivers/staging/fbtft

And this is the resaults of modinfo fbtft_device

filename:       /lib/modules/3.4.39-h3/kernel/drivers/staging/fbtft/fbtft_device.ko
license:        GPL
author:         Noralf Tronnes
description:    Add a FBTFT device.
depends:        
staging:        Y
intree:         Y
vermagic:       3.4.39-h3 SMP preempt mod_unload ARMv7 p2v8 
parm:           name:Devicename (required). name=list => list all supported devices. (charp)
parm:           rotate:Angle to rotate display counter clockwise: 0, 90, 180, 270 (uint)
parm:           busnum:SPI bus number (default=0) (uint)
parm:           cs:SPI chip select (override device default) (uint)
parm:           speed:SPI speed (override device default) (uint)
parm:           mode:SPI mode (override device default) (int)
parm:           gpios:List of gpios. Comma separated with the form: reset:23,dc:24 (when overriding the default, all gpios must be specified) (charp)
parm:           fps:Frames per second (override driver default) (uint)
parm:           gamma:String representation of Gamma Curve(s). Driver specific. (charp)
parm:           txbuflen:txbuflen (override driver default) (int)
parm:           bgr:BGR bit (supported by some drivers). (int)
parm:           startbyte:Sets the Start byte used by some SPI displays. (uint)
parm:           custom:Add a custom display device. Use speed= argument to make it a SPI device, else platform_device (bool)
parm:           width:Display width, used with the custom argument (uint)
parm:           height:Display height, used with the custom argument (uint)
parm:           buswidth:Display bus width, used with the custom argument (uint)
parm:           init:Init sequence, used with the custom argument (array of int)
parm:           debug:level: 0-7 (the remaining 29 bits is for advanced usage) (ulong)
parm:           verbose:0 silent, >0 show gpios, >1 show devices, >2 show devices before (default=3) (uint)

And unfortunately I have no 'config.gz' :zgrep CONFIG_FB_TFT /proc/config.gz gzip: /proc/config.gz: No such file or directory

I only have 'config-3.4.39-h3.new' in /boot directory that it's an empty file I think!

rezaee commented 7 years ago

What's the meaning of these lines?

    Add to drivers/video/fbdev/Kconfig:   source "drivers/video/fbdev/fbtft/Kconfig"
    Add to drivers/video/fbdev/Makefile:  obj-y += fbtft/

I have no Kconfig and Makefile in that location!

alidaf commented 7 years ago

@rezaee Have a look at my wiki for using the SSD1322.

https://github.com/alidaf/raspberryPi/wiki/SSD1322(SPI)---notro's-fbtft-framebuffer-driver

It's a different display but I've tried to consolidate all of Notro's guides into a single page that should work for any display by changing the references to the actual module. I had to work through it all empirically and this is what worked for me in the end. There is a section that deals with those two lines but it depends on whether you use the staging location or not. I chose not to because I determined that the Kconfig and Makefile were different in different locations and this is how I ended up understanding it all.

notro commented 7 years ago

And unfortunately I have no 'config.gz'

Maybe the config is available as a module: sudo modprobe configs Or just look in the folder to see which drivers are available: /lib/modules/3.4.39-h3/kernel/drivers/staging/fbtft/

If some fbtft drivers are built into the kernel image/binary, they would show up here: /sys/bus/spi/drivers and here: /sys/module/ (a module registers a driver).

I have no Kconfig and Makefile in that location!

They were used before fbtft was added to staging, so some kernel trees have fbtft in that place.

rezaee commented 7 years ago

The result of sudo modprobe configs is modprobe: FATAL: Module configs not found. In this path: /lib/modules/3.4.39-h3/kernel/drivers/staging/fbtft/ there is only one file named fbtft_device.ko.

In this path: /sys/bus/spi/drivers there are three folders: fb_st7735s , fb_st7789s , spidev . And inside this path: /sys/module/ there are many folders that spidev is one of them!

rezaee commented 7 years ago

There are two folders in: /lib/modules : 3.4.39-h3 and 3.18.1+ In this path: /lib/modules/3.18.1+/kernel/drivers/video/fbdev/fbtft/fbtft I have fb_ili9341.c

notro commented 7 years ago

I guess your options are either to build your own kwernel with the driver enabled, or lobby to get the drivers enabled in the defconfig used to build your kernel. I looked at fb_st7735s and fb_st7789s, and they can't be made to work with your display. fbtft_device is quite flexible so it can override the init sequence, but the set_var() function sets a different value to the 0x36 register which controls mirror/flip/rotation.

rezaee commented 7 years ago

So, how can I make working my display? I am newbie in linux and don't know which solution is better! May you tell me what do I should do step by step to make it working?

notro commented 7 years ago

As I said, you need to build a new kernel with the driver enabled. If adafruit22a is the one that works with this display, you need the fb_ili9340 driver. http://lxr.free-electrons.com/source/drivers/staging/fbtft/fbtft_device.c#L338

I have no experience with nanopi. http://nanopi.io/support.html

rezaee commented 7 years ago

If I chnge my OS to armbian, will the problem be solved? As I asked in their forum, it has fbtft support in all the kernels!

rezaee commented 7 years ago

I have changed my OS to Armbian and now I have the kernel support of fbtft. So what's the next step?

root@nanopim1:/home/m# modinfo fbtft
filename:       /lib/modules/3.4.112-sun8i/kernel/drivers/video/fbtft/fbtft.ko
license:        GPL
depends:        fb_sys_fops,syscopyarea,sysfillrect,sysimgblt
intree:         Y
vermagic:       3.4.112-sun8i SMP preempt mod_unload modversions ARMv7 p2v8 
parm:           debug:override device debug level (ulong)
parm:           dma:Use DMA buffer (bool)
rezaee commented 7 years ago

I did this command: sudo modprobe fbtft_device custom name=fb_ili9341 gpios=reset:25,dc:24,led:18 speed=16000000 rotate=90 bgr=1

And the result of dmesg after that was:

[  361.544784] ---[ end trace 4484803e1c8239d6 ]---
[  361.544891] fb_ili9341: probe of spi0.0 failed with error -22
[  361.618986] fbtft_device:    'dc' = GPIO24
[  361.623624] fbtft_device:    'led' = GPIO18
[  361.628266] fbtft_device:  SPI devices registered:
[  361.633616] fbtft_device:      fb_ili9341 spi0.0 16000kHz 8 bits mode=0x00

I have checked all the pins and they're connected true!

notro commented 7 years ago

The info before end trace is important. Add this option to (maybe) get some more info: debug=7

rezaee commented 7 years ago

This is the full text of dmesg after this command:

sudo modprobe fbtft_device custom name=fb_ili9341 gpios=reset:25,dc:24,led:18 speed=16000000 rotate=90 bgr=1 debug=7

[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.4.112-sun8i (root@xenial) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.1) ) #14 SMP PREEMPT Wed Sep 14 20:29:31 CEST 2016
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: sun8i
[    0.000000] cma: CMA: reserved 256 MiB at 50000000
[    0.000000] Memory policy: ECC disabled, Data cache writealloc
[    0.000000] On node 0 totalpages: 262144
[    0.000000] free_area_init_node: node 0, pgdat c0a24900, node_mem_map c0b5d000
[    0.000000]   Normal zone: 1710 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 192850 pages, LIFO batch:31
[    0.000000]   HighMem zone: 594 pages used for memmap
[    0.000000]   HighMem zone: 66990 pages, LIFO batch:15
[    0.000000] script_init enter!
[    0.000000] script_init exit!
[    0.000000] PERCPU: Embedded 8 pages/cpu @c1473000 s11968 r8192 d12608 u32768
[    0.000000] pcpu-alloc: s11968 r8192 d12608 u32768 alloc=8*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 259840
[    0.000000] Kernel command line: console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p1 rootwait rootfstype=ext4 cgroup_enable=memory swapaccount=1 panic=10 consoleblank=0 enforcing=0 loglevel=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] allocated 2097152 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 1024MB = 1024MB total
[    0.000000] Memory: 758708k/758708k available, 289868k reserved, 270336K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc095bce8   (9552 kB)
[    0.000000]       .init : 0xc095c000 - 0xc09aeec0   ( 332 kB)
[    0.000000]       .data : 0xc09b0000 - 0xc0a29750   ( 486 kB)
[    0.000000]        .bss : 0xc0a29f04 - 0xc0b5cf90   (1229 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Additional per-CPU info printed with stalls.
[    0.000000] NR_IRQS:544
[    0.000000] Architected local timer running at 24.00MHz.
[    0.000000] Switching to timer-based delay loop
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] Console: colour dummy device 80x30
[    0.000000] console [tty1] enabled
[    0.000260] Calibrating delay loop (skipped), value calculated using timer frequency.. 4800.00 BogoMIPS (lpj=24000000)
[    0.000283] pid_max: default: 32768 minimum: 301
[    0.000623] Mount-cache hash table entries: 512
[    0.001589] Initializing cgroup subsys cpuacct
[    0.001604] Initializing cgroup subsys memory
[    0.001652] Initializing cgroup subsys devices
[    0.001663] Initializing cgroup subsys freezer
[    0.001674] Initializing cgroup subsys blkio
[    0.001698] Initializing cgroup subsys perf_event
[    0.001778] CPU: Testing write buffer coherency: ok
[    0.001823] ftrace: allocating 25740 entries in 76 pages
[    0.030294] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.030312] [sunxi_smp_prepare_cpus] enter
[    0.030349] Setting up static identity map for 0x40691938 - 0x40691990
[    0.031292] CPU1: Booted secondary processor
[    0.031292] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.031424] CPU2: Booted secondary processor
[    0.031424] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.040482] CPU3: Booted secondary processor
[    0.040482] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.040602] Brought up 4 CPUs
[    0.040602] SMP: Total of 4 processors activated (19200.00 BogoMIPS).
[    0.040903] devtmpfs: initialized
[    0.050589] wakeup src cnt is : 2. 
[    0.050602] [exstandby]leave extended_standby_enable_wakeup_src : event 0x800000
[    0.050613] [exstandby]leave extended_standby_enable_wakeup_src : wakeup_gpio_map 0x0
[    0.050624] [exstandby]leave extended_standby_enable_wakeup_src : wakeup_gpio_group 0x40
[    0.050635] [exstandby]leave extended_standby_enable_wakeup_src : event 0x800000
[    0.050645] [exstandby]leave extended_standby_enable_wakeup_src : wakeup_gpio_map 0x8
[    0.050656] [exstandby]leave extended_standby_enable_wakeup_src : wakeup_gpio_group 0x40
[    0.050667] sunxi pm init
[    0.050803] pinctrl core: initialized pinctrl subsystem
[    0.060804] NET: Registered protocol family 16
[    0.061570] DMA: preallocated 2048 KiB pool for atomic coherent allocations
[    0.061570] script_sysfs_init success
[    0.061570] sunxi_dump_init success
[    0.062443] gpiochip_add: registered GPIOs 0 to 383 on device: sunxi-pinctrl
[    0.063632] sunxi-pinctrl sunxi-pinctrl: initialized sunXi PIO driver
[    0.063632] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.063632] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.063632] script config pll_video to 297 Mhz
[    0.063632] script config pll_de to 864 Mhz
[    0.063632] script config pll_ve to 402 Mhz
[    0.063632] sunxi_default_clk_init
[    0.063632] try to set pll6ahb1 to 200000000
[    0.063632] try to set ahb clk source to pll6ahb1
[    0.063632] set ahb clk source to pll6ahb1
[    0.063632] try to set ahb1 to 200000000
[    0.063632] try to set apb1 to 100000000
[    0.070234] bio: create slab <bio-0> at 0
[    0.070312] [ARISC] :sunxi-arisc driver v1.04
[    0.089921] [ARISC] :arisc version: [v0.1.58]
[    0.177128] [ARISC] :sunxi-arisc driver v1.04 startup succeeded
[    0.178731] SCSI subsystem initialized
[    0.178731] usbcore: registered new interface driver usbfs
[    0.178731] usbcore: registered new interface driver hub
[    0.180045] usbcore: registered new device driver usb
[    0.180154] twi_chan_cfg()340 - [twi0] has no twi_regulator.
[    0.180167] twi_chan_cfg()340 - [twi1] has no twi_regulator.
[    0.180179] twi_chan_cfg()340 - [twi2] has no twi_regulator.
[    0.180486] Linux video capture interface: v2.00
[    0.180709] Advanced Linux Sound Architecture Driver Version 1.0.25.
[    0.181447] cfg80211: Calling CRDA to update world regulatory domain
[    0.181505] Switching to clocksource arch_sys_counter
[    0.193978] FS-Cache: Loaded
[    0.194262] CacheFiles: Loaded
[    0.205392] NET: Registered protocol family 2
[    0.216612] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.217205] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.218964] TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
[    0.220056] TCP: Hash tables configured (established 131072 bind 65536)
[    0.220068] TCP: reno registered
[    0.220082] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.220119] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.220479] NET: Registered protocol family 1
[    0.220888] RPC: Registered named UNIX socket transport module.
[    0.220901] RPC: Registered udp transport module.
[    0.220909] RPC: Registered tcp transport module.
[    0.220917] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.221105] Trying to unpack rootfs image as initramfs...
[    0.407514] Freeing initrd memory: 3040K
[    0.407900] hw perfevents: enabled with ARMv7 Cortex_A7 PMU driver, 5 counters available
[    0.408026] sunxi_reg_init enter
[    0.408935] audit: initializing netlink socket (disabled)
[    0.408984] type=2000 audit(0.400:1): initialized
[    0.410169] highmem bounce pool size: 64 pages
[    0.411068] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.411261] misc fatfs initialized
[    0.411981] NFS: Registering the id_resolver key type
[    0.412368] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.412381] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.413144] NTFS driver 2.1.30 [Flags: R/W].
[    0.413457] fuse init (API version 7.18)
[    0.414218] Btrfs loaded
[    0.414246] msgmni has been set to 1471
[    0.415662] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    0.415681] io scheduler noop registered
[    0.415690] io scheduler deadline registered
[    0.415756] io scheduler cfq registered (default)
[    0.416155] [DISP]disp_module_init
[    0.416469] cmdline,init_disp=
[    0.416498] cmdline,disp=
[    0.424303] [DISP] Fb_map_kernel_logo,line:932:Fb_map_kernel_logo failed!
[    0.440698] Console: switching to colour frame buffer device 160x45
[    0.458037] [DISP]disp_module_init finish
[    0.458260] sw_uart_get_devinfo()1503 - uart0 has no uart_regulator.
[    0.458565] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[    0.458578] sw_uart_pm()890 - uart0 clk is already enable
[    0.458597] sw_console_setup()1233 - console setup baud 115200 parity n bits 8, flow n
[    0.458732] console [ttyS0] enabled
[    0.459266] sunxi_cmatest_init enter
[    0.459304] sunxi_cmatest_init success
[    0.463460] brd: module loaded
[    0.467320] loop: module loaded
[    0.467603] sunxi_spi_chan_cfg()1376 - [spi-0] has no spi_regulator.
[    0.467618] sunxi_spi_chan_cfg()1376 - [spi-1] has no spi_regulator.
[    0.468196] spi spi0: master is unqueued, this is deprecated
[    0.468526] tun: Universal TUN/TAP device driver, 1.6
[    0.468537] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    0.469471] PPP generic driver version 2.4.2
[    0.469659] PPP BSD Compression module registered
[    0.469669] PPP Deflate Compression module registered
[    0.472500] PPP MPPE Compression module registered
[    0.472518] NET: Registered protocol family 24
[    0.472594] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.492699] sunxi-ehci sunxi-ehci.1: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.492735] sunxi-ehci sunxi-ehci.1: new USB bus registered, assigned bus number 1
[    0.493292] sunxi-ehci sunxi-ehci.1: irq 104, io mem 0xf1c1a000
[    0.510035] sunxi-ehci sunxi-ehci.1: USB 0.0 started, EHCI 1.00
[    0.510681] hub 1-0:1.0: USB hub found
[    0.510709] hub 1-0:1.0: 1 port detected
[    0.531079] sunxi-ehci sunxi-ehci.2: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.531109] sunxi-ehci sunxi-ehci.2: new USB bus registered, assigned bus number 2
[    0.531505] sunxi-ehci sunxi-ehci.2: irq 106, io mem 0xf1c1b000
[    0.550035] sunxi-ehci sunxi-ehci.2: USB 0.0 started, EHCI 1.00
[    0.550052] ehci_irq: highspeed device connect
[    0.550579] hub 2-0:1.0: USB hub found
[    0.550603] hub 2-0:1.0: 1 port detected
[    0.570969] sunxi-ehci sunxi-ehci.3: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.570997] sunxi-ehci sunxi-ehci.3: new USB bus registered, assigned bus number 3
[    0.571379] sunxi-ehci sunxi-ehci.3: irq 108, io mem 0xf1c1c000
[    0.590034] sunxi-ehci sunxi-ehci.3: USB 0.0 started, EHCI 1.00
[    0.590047] ehci_irq: highspeed device connect
[    0.590563] hub 3-0:1.0: USB hub found
[    0.590587] hub 3-0:1.0: 1 port detected
[    0.610952] sunxi-ehci sunxi-ehci.4: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.610983] sunxi-ehci sunxi-ehci.4: new USB bus registered, assigned bus number 4
[    0.611372] sunxi-ehci sunxi-ehci.4: irq 110, io mem 0xf1c1d000
[    0.630030] sunxi-ehci sunxi-ehci.4: USB 0.0 started, EHCI 1.00
[    0.630568] hub 4-0:1.0: USB hub found
[    0.630587] hub 4-0:1.0: 1 port detected
[    0.630961] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.651066] sunxi-ohci sunxi-ohci.1: SW USB2.0 'Open' Host Controller (OHCI) Driver
[    0.651094] sunxi-ohci sunxi-ohci.1: new USB bus registered, assigned bus number 5
[    0.651128] sunxi-ohci sunxi-ohci.1: irq 105, io mem 0xf1c1a400
[    0.714552] hub 5-0:1.0: USB hub found
[    0.714573] hub 5-0:1.0: 1 port detected
[    0.734941] sunxi-ohci sunxi-ohci.2: SW USB2.0 'Open' Host Controller (OHCI) Driver
[    0.734969] sunxi-ohci sunxi-ohci.2: new USB bus registered, assigned bus number 6
[    0.735001] sunxi-ohci sunxi-ohci.2: irq 107, io mem 0xf1c1b400
[    0.750078] ehci_irq: highspeed device disconnect
[    0.794595] hub 6-0:1.0: USB hub found
[    0.794614] hub 6-0:1.0: 1 port detected
[    0.810117] ehci_irq: highspeed device disconnect
[    0.814991] sunxi-ohci sunxi-ohci.3: SW USB2.0 'Open' Host Controller (OHCI) Driver
[    0.815018] sunxi-ohci sunxi-ohci.3: new USB bus registered, assigned bus number 7
[    0.815060] sunxi-ohci sunxi-ohci.3: irq 109, io mem 0xf1c1c400
[    0.874568] hub 7-0:1.0: USB hub found
[    0.874587] hub 7-0:1.0: 1 port detected
[    0.894970] sunxi-ohci sunxi-ohci.4: SW USB2.0 'Open' Host Controller (OHCI) Driver
[    0.894998] sunxi-ohci sunxi-ohci.4: new USB bus registered, assigned bus number 8
[    0.895030] sunxi-ohci sunxi-ohci.4: irq 111, io mem 0xf1c1d400
[    0.954512] hub 8-0:1.0: USB hub found
[    0.954531] hub 8-0:1.0: 1 port detected
[    0.954868] Initializing USB Mass Storage driver...
[    0.955099] usbcore: registered new interface driver usb-storage
[    0.955110] USB Mass Storage support registered.
[    0.955168] usbcore: registered new interface driver ums-alauda
[    0.955214] usbcore: registered new interface driver ums-cypress
[    0.955264] usbcore: registered new interface driver ums-datafab
[    0.955309] usbcore: registered new interface driver ums_eneub6250
[    0.955355] usbcore: registered new interface driver ums-freecom
[    0.955411] usbcore: registered new interface driver ums-isd200
[    0.955457] usbcore: registered new interface driver ums-jumpshot
[    0.955504] usbcore: registered new interface driver ums-karma
[    0.955549] usbcore: registered new interface driver ums-onetouch
[    0.955609] usbcore: registered new interface driver ums-realtek
[    0.955659] usbcore: registered new interface driver ums-sddr09
[    0.955707] usbcore: registered new interface driver ums-sddr55
[    0.955754] usbcore: registered new interface driver ums-usbat
[    0.955976]  uinput result 0 , vmouse_init 
[    0.956585] mousedev: PS/2 mouse device common for all mice
[    0.956801] sunxikbd_init failed. 
[    0.957311] ls_fetch_sysconfig_para: ls_unused. 
[    0.957559] ltr_init: ls_fetch_sysconfig_para err.
[    0.957871] [RTC] WARNING: Rtc time will be wrong!!
[    0.957881] [RTC] WARNING: use *internal OSC* as clock source
[    0.958127] sunxi-rtc sunxi-rtc: rtc core: registered sunxi-rtc as rtc0
[    0.958176] i2c /dev entries driver
[    0.958567] IR RC5(x) protocol handler initialized
[    0.958695] sunxi cedar version 0.1 
[    0.958734] [cedar]: install start!!!
[    0.958933] [cedar]: install end!!!
[    0.959156] twi_start()434 - [i2c0] START can't sendout!
[    0.959417] twi_start()434 - [i2c0] START can't sendout!
[    0.959677] twi_start()434 - [i2c0] START can't sendout!
[    0.959940] twi_start()434 - [i2c0] START can't sendout!
[    0.960200] twi_start()434 - [i2c0] START can't sendout!
[    0.960460] twi_start()434 - [i2c0] START can't sendout!
[    0.960723] twi_start()434 - [i2c0] START can't sendout!
[    0.960983] twi_start()434 - [i2c0] START can't sendout!
[    0.961242] twi_start()434 - [i2c0] START can't sendout!
[    0.961503] twi_start()434 - [i2c0] START can't sendout!
[    0.961763] twi_start()434 - [i2c0] START can't sendout!
[    0.962022] twi_start()434 - [i2c0] START can't sendout!
[    0.962283] twi_start()434 - [i2c0] START can't sendout!
[    0.962543] twi_start()434 - [i2c0] START can't sendout!
[    0.962802] twi_start()434 - [i2c0] START can't sendout!
[    0.963063] twi_start()434 - [i2c0] START can't sendout!
[    0.963323] twi_start()434 - [i2c0] START can't sendout!
[    0.963582] twi_start()434 - [i2c0] START can't sendout!
[    0.963843] twi_start()434 - [i2c0] START can't sendout!
[    0.964103] twi_start()434 - [i2c0] START can't sendout!
[    0.964362] twi_start()434 - [i2c0] START can't sendout!
[    0.964623] twi_start()434 - [i2c0] START can't sendout!
[    0.964883] twi_start()434 - [i2c0] START can't sendout!
[    0.965142] twi_start()434 - [i2c0] START can't sendout!
[    0.965403] twi_start()434 - [i2c0] START can't sendout!
[    0.965662] twi_start()434 - [i2c0] START can't sendout!
[    0.965922] twi_start()434 - [i2c0] START can't sendout!
[    0.966186] twi_start()434 - [i2c1] START can't sendout!
[    0.966446] twi_start()434 - [i2c1] START can't sendout!
[    0.966707] twi_start()434 - [i2c1] START can't sendout!
[    0.966969] twi_start()434 - [i2c1] START can't sendout!
[    0.967230] twi_start()434 - [i2c1] START can't sendout!
[    0.967491] twi_start()434 - [i2c1] START can't sendout!
[    0.967753] twi_start()434 - [i2c1] START can't sendout!
[    0.968014] twi_start()434 - [i2c1] START can't sendout!
[    0.968274] twi_start()434 - [i2c1] START can't sendout!
[    0.968536] twi_start()434 - [i2c1] START can't sendout!
[    0.968795] twi_start()434 - [i2c1] START can't sendout!
[    0.969055] twi_start()434 - [i2c1] START can't sendout!
[    0.969316] twi_start()434 - [i2c1] START can't sendout!
[    0.969576] twi_start()434 - [i2c1] START can't sendout!
[    0.969835] twi_start()434 - [i2c1] START can't sendout!
[    0.970138] twi_start()434 - [i2c1] START can't sendout!
[    0.970399] twi_start()434 - [i2c1] START can't sendout!
[    0.970658] twi_start()434 - [i2c1] START can't sendout!
[    0.970921] twi_start()434 - [i2c1] START can't sendout!
[    0.971181] twi_start()434 - [i2c1] START can't sendout!
[    0.971440] twi_start()434 - [i2c1] START can't sendout!
[    0.971702] twi_start()434 - [i2c1] START can't sendout!
[    0.971962] twi_start()434 - [i2c1] START can't sendout!
[    0.972221] twi_start()434 - [i2c1] START can't sendout!
[    0.972482] twi_start()434 - [i2c1] START can't sendout!
[    0.972742] twi_start()434 - [i2c1] START can't sendout!
[    0.973002] twi_start()434 - [i2c1] START can't sendout!
[    0.973114] sunxi_wdt_init_module: sunxi WatchDog Timer Driver v1.0
[    0.973274] sunxi_wdt_probe: devm_ioremap return wdt_reg 0xf1c20ca0, res->start 0x01c20ca0, res->end 0x01c20cbf
[    0.973441] sunxi_wdt_probe: initialized (g_timeout=16s, g_nowayout=0)
[    0.973454] wdt_enable, write reg 0xf1c20cb8 val 0x00000000
[    0.973465] timeout_to_interv, line 167
[    0.973473] interv_to_timeout, line 189
[    0.973483] wdt_set_tmout, write 0x000000b0 to mode reg 0xf1c20cb8, actual timeout 16 sec
[    0.973939] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
[    0.974153] calibrat: max_cpufreq 1200Mhz Type 0!
[    0.974166] [cpu_freq] ERR:get cpu extremity frequency from sysconfig failed, use max_freq
[    0.974474] [mmc]: SD/MMC/SDIO Host Controller Driver(v1.111 2015-4-13 15:24) Compiled in Sep 14 2016 at 20:28:08
[    0.974506] [mmc]: get mmc0's sdc_power is null!
[    0.974534] [mmc]: get mmc1's sdc_power is null!
[    0.974543] [mmc]: get mmc1's 2xmode ok, val = 1
[    0.974552] [mmc]: get mmc1's ddrmode ok, val = 1
[    0.974568] [mmc]: MMC host used card: 0x3, boot card: 0x1, io_card 2
[    0.975525] [mmc]: sdc0 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    0.976636] [mmc]: sdc0 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    0.977217] [mmc]: sdc1 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    0.978176] [mmc]: sdc0 power_supply is null
[    0.980062] no red_led, ignore it!
[    0.980320] Registered led device: green_led
[    0.980426] Registered led device: blue_led
[    0.980444] no led_0, ignore it!
[    0.980453] no led_1, ignore it!
[    0.980460] no led_2, ignore it!
[    0.980467] no led_3, ignore it!
[    0.980474] no led_4, ignore it!
[    0.980481] no led_5, ignore it!
[    0.980488] no led_6, ignore it!
[    0.980495] no led_7, ignore it!
[    0.981298] usbcore: registered new interface driver usbhid
[    0.981308] usbhid: USB HID core driver
[    0.985589] asoc: sndcodec <-> sunxi-codec mapping ok
[    0.986409] [DAUDIO]sunxi-daudio cannot find any using configuration for controllers, return directly!
[    0.986588] [I2S]snddaudio cannot find any using configuration for controllers, return directly!
[    0.986605] [DAUDIO0] driver not init,just return.
[    0.989986] asoc: sndhdmi <-> sunxi-hdmiaudio.0 mapping ok
[    0.990082] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    0.991171] oprofile: using arm/armv7-ca7
[    0.991372] u32 classifier
[    0.991381]     Performance counters on
[    0.991388]     input device check on
[    0.991394]     Actions configured
[    0.991580] IPv4 over IPv4 tunneling driver
[    0.992198] TCP: bic registered
[    0.992209] TCP: cubic registered
[    0.992216] TCP: westwood registered
[    0.992224] TCP: highspeed registered
[    0.992231] TCP: hybla registered
[    0.992239] TCP: htcp registered
[    0.992246] TCP: vegas registered
[    0.992253] TCP: veno registered
[    0.992260] TCP: scalable registered
[    0.992268] TCP: lp registered
[    0.992275] TCP: yeah registered
[    0.992283] TCP: illinois registered
[    0.992290] Initializing XFRM netlink socket
[    0.992534] NET: Registered protocol family 10
[    0.993704] NET: Registered protocol family 17
[    0.993735] NET: Registered protocol family 15
[    0.993781] Registering the dns_resolver key type
[    0.994109] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.994131] ThumbEE CPU extension supported.
[    0.994152] Registering SWP/SWPB emulation handler
[    0.994705] registered taskstats version 1
[    0.995147] cmdline,disp=
[    0.995459] [HDMI] power vcc-hdmi-18
[    1.011731] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.014253] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.019606] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.019724] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.022221] [mmc]: sdc0 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.026204] ths_fetch_sysconfig_para: type err  device_used = 1. 
[    1.027484] CPU Budget:corekeeper enabled
[    1.027723] CPU Budget:Register notifier
[    1.027735] CPU Budget:register Success
[    1.027748] sunxi-budget-cooling sunxi-budget-cooling: Cooling device registered: thermal-budget-0
[    1.030978] [rf_pm]: module power0 name vcc-wifi-33
[    1.030996] [rf_pm]: Did not config module_power1 in sys_config
[    1.031006] [rf_pm]: Did not config module_power2 in sys_config
[    1.031016] [rf_pm]: Did not config module_power3 in sys_config
[    1.031026] [rf_pm]: mod has no chip_en gpio
[    1.031034] [rf_pm]: failed to fetch lpo_use_apclk
[    1.031041] [rf_pm]: regulator on.
[    1.031051] [wifi_pm]: no wifi used in configuration
[    1.031061] [rfkill]: init no bt used in configuration
[    1.031069] ALSA device list:
[    1.031077]   #0: audiocodec
[    1.031083]   #1: sndhdmi
[    1.031931] Freeing init memory: 328K
[    1.041643] [mmc]: sdc0 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    1.043190] [mmc]: sdc0 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[    1.043312] [mmc]: sdc0 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[    1.043477] [mmc]: sdc0 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[    1.043574] mmc0: new high speed SDHC card at address 0007
[    1.044128] mmcblk0: mmc0:0007 SL16G 14.4 GiB 
[    1.045604]  mmcblk0: p1
[    1.046232] mmcblk mmc0:0007: Card claimed for testing.
[    1.046249] mmc0:0007: SL16G 14.4 GiB 
[    1.046292] *******************sd init ok*******************
[    1.077242] systemd-udevd[98]: starting version 215
[    1.170153] usb 6-1: new low-speed USB device number 2 using sunxi-ohci
[    1.400052] generic-usb 0003:413C:3012.0001: input,hidraw0: USB HID v1.11 Mouse [Dell Dell USB Optical Mouse] on usb-sunxi-ohci-1/input0
[    1.580048] usb 7-1: new low-speed USB device number 2 using sunxi-ohci
[    1.630059] [DISP] disp_device_attached_and_enable,line:159:attched ok, mgr0<-->device0, type=4, mode=5
[    1.811809] generic-usb 0003:1C4F:0002.0002: input,hidraw1: USB HID v1.10 Keyboard [SIGMACHIP USB Keyboard] on usb-sunxi-ohci-1/input0
[    1.818389] generic-usb 0003:1C4F:0002.0003: input,hidraw2: USB HID v1.10 Device [SIGMACHIP USB Keyboard] on usb-sunxi-ohci-1/input1
[    2.798025] EXT4-fs (mmcblk0p1): mounted filesystem with writeback data mode. Opts: (null)
[    3.940313] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR)
[    3.940634] systemd[1]: Detected architecture 'arm'.
[    3.952834] systemd[1]: Set hostname to <nanopim1>.
[    4.319804] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
[    4.322714] systemd[1]: Expecting device dev-ttyS0.device...
[    4.323442] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
[    4.323664] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    4.323736] systemd[1]: Starting Remote File Systems (Pre).
[    4.324139] systemd[1]: Reached target Remote File Systems (Pre).
[    4.324255] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch.
[    4.324453] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    4.324512] systemd[1]: Starting Paths.
[    4.324842] systemd[1]: Reached target Paths.
[    4.324903] systemd[1]: Starting Encrypted Volumes.
[    4.325234] systemd[1]: Reached target Encrypted Volumes.
[    4.325354] systemd[1]: Starting Arbitrary Executable File Formats File System Automount Point.
[    4.326257] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    4.326353] systemd[1]: Starting Root Slice.
[    4.326769] systemd[1]: Created slice Root Slice.
[    4.326830] systemd[1]: Starting User and Session Slice.
[    4.327320] systemd[1]: Created slice User and Session Slice.
[    4.327383] systemd[1]: Starting /dev/initctl Compatibility Named Pipe.
[    4.327930] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[    4.327993] systemd[1]: Starting Delayed Shutdown Socket.
[    4.328443] systemd[1]: Listening on Delayed Shutdown Socket.
[    4.328506] systemd[1]: Starting Journal Socket (/dev/log).
[    4.328980] systemd[1]: Listening on Journal Socket (/dev/log).
[    4.329064] systemd[1]: Starting udev Control Socket.
[    4.329463] systemd[1]: Listening on udev Control Socket.
[    4.329537] systemd[1]: Starting udev Kernel Socket.
[    4.329920] systemd[1]: Listening on udev Kernel Socket.
[    4.330071] systemd[1]: Starting Journal Socket.
[    4.330536] systemd[1]: Listening on Journal Socket.
[    4.330671] systemd[1]: Starting System Slice.
[    4.331161] systemd[1]: Created slice System Slice.
[    4.331278] systemd[1]: Started File System Check on Root Device.
[    4.331333] systemd[1]: Starting system-getty.slice.
[    4.331901] systemd[1]: Created slice system-getty.slice.
[    4.331964] systemd[1]: Starting system-serial\x2dgetty.slice.
[    4.332492] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    4.332623] systemd[1]: Starting Increase datagram queue length...
[    4.400782] systemd[1]: Starting Restore / save the current clock...
[    4.500768] systemd[1]: Starting udev Coldplug all Devices...
[    4.610972] systemd[1]: Mounted Huge Pages File System.
[    4.611393] systemd[1]: Starting Create list of required static device nodes for the current kernel...
[    4.698612] systemd[1]: Started Set Up Additional Binary Formats.
[    4.701528] systemd[1]: Starting Load Kernel Modules...
[    4.790819] systemd[1]: Mounting POSIX Message Queue File System...
[    4.819240] UMP: UMP device driver  loaded
[    4.835463] mali clk: 252 MHz
[    4.835695] mali clk: 252 MHz
[    4.837155] Mali: Mali device driver loaded
[    4.880863] systemd[1]: Mounting Debug File System...
[    4.960518] systemd[1]: Starting LSB: Set keymap...
[    5.050614] systemd[1]: Starting Slices.
[    5.051122] systemd[1]: Reached target Slices.
[    5.053830] systemd[1]: Mounted Debug File System.
[    5.054476] systemd[1]: Mounted POSIX Message Queue File System.
[    5.110588] systemd[1]: Started Increase datagram queue length.
[    5.164954] systemd[1]: Started Restore / save the current clock.
[    5.315289] systemd[1]: Started Create list of required static device nodes for the current kernel.
[    5.395020] systemd[1]: Started Load Kernel Modules.
[    5.444914] systemd[1]: Started LSB: Set keymap.
[    5.494784] systemd[1]: Started udev Coldplug all Devices.
[    5.496811] systemd[1]: Time has been changed
[    5.497396] systemd[1]: Mounted Configuration File System.
[    5.497500] systemd[1]: Starting Apply Kernel Variables...
[    5.580781] systemd[1]: Mounting FUSE Control File System...
[    5.700768] systemd[1]: Starting Create Static Device Nodes in /dev...
[    5.790785] systemd[1]: Starting Syslog Socket.
[    5.795602] systemd[1]: Listening on Syslog Socket.
[    5.795742] systemd[1]: Starting Journal Service...
[    5.885540] systemd[1]: Started Journal Service.
[    6.246099] systemd-udevd[180]: starting version 215
[    7.185778] EXT4-fs (mmcblk0p1): re-mounted. Opts: commit=600,errors=remount-ro
[    7.398500] Adding 131068k swap on /var/swap.  Priority:-1 extents:1 across:131068k SS
[    8.855814] systemd-journald[179]: Received request to flush runtime journal from PID 1
[    9.135953] gmac0: probed
[    9.136276] gmac0 gmac0: eth0: eth0: PHY ID 00441400 at 0 IRQ poll (gmac0-0:00)
[   10.690168] Registered IR keymap rc-empty
[   10.690880] rc0: sunxi-ir as /devices/virtual/rc/rc0
[   10.693126] rc rc0: lirc_dev: driver ir-lirc-codec (sunxi-ir) registered at minor = 0
[   10.886628] [DISP] disp_ioctl,line:1584:para err in disp_ioctl, cmd = 0x0,screen id = 65536
[   10.972458] [drm] Initialized drm 1.1.0 20060810
[   10.979871] Mali DRM initialize, driver name: mali_drm, version 2.1
[   10.982503] [drm] Initialized mali_drm 2.1.1 20101111 on minor 0
[   10.982581] Mali DRM initialize, driver name: mali_drm, version 2.1
[   10.982967] [drm] Initialized mali_drm 2.1.1 20101111 on minor 1
[   11.461585] vmouse_input_dev_open 
[   13.130320] PHY: gmac0-0:00 - Link is Up - 100/Full
[   19.310023] eth0: no IPv6 routers present
[   30.851173] Bluetooth: Core ver 2.16
[   30.851259] NET: Registered protocol family 31
[   30.851269] Bluetooth: HCI device and connection manager initialized
[   30.851280] Bluetooth: HCI socket layer initialized
[   30.851288] Bluetooth: L2CAP socket layer initialized
[   30.851311] Bluetooth: SCO socket layer initialized
[   30.870238] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   30.870254] Bluetooth: BNEP filters: protocol multicast
[   31.681612] Bluetooth: RFCOMM TTY layer initialized
[   31.681640] Bluetooth: RFCOMM socket layer initialized
[   31.681648] Bluetooth: RFCOMM ver 1.11
[   76.208927] fbtft_device:  SPI devices registered:
[   76.208948] fbtft_device:      spidev spi0.0 33000kHz 8 bits mode=0x00
[   76.208959] fbtft_device:  'fb' Platform devices registered:
[   76.209034] fbtft_device: Deleting spi0.0
[   76.209473] fbtft_device:  GPIOS used by 'fb_ili9341':
[   76.209486] fbtft_device:    'reset' = GPIO25
[   76.209494] fbtft_device:    'dc' = GPIO24
[   76.209502] fbtft_device:    'led' = GPIO18
[   76.209510] fbtft_device:  SPI devices registered:
[   76.209521] fbtft_device:      fb_ili9341 spi0.0 16000kHz 8 bits mode=0x00
[   76.216850] fb_ili9341 spi0.0: fbtft_gamma_parse_str() str=
[   76.216871] fb_ili9341 spi0.0: 1F 1A 18 0A 0F 06 45 87 32 0A 07 02 07 05 00
[   76.216877] 00 25 27 05 10 09 3A 78 4D 05 18 0D 38 3A 1F
[   76.216935] fb_ili9341 spi0.0: fbtft_request_gpios_match('reset')
[   76.216967] fb_ili9341 spi0.0: fbtft_request_gpios: gpio_request_one('reset'=25) failed with -22
[   76.216982] fb_ili9341 spi0.0: fbtft_free_gpios()
[   76.216993] fb_ili9341 spi0.0: fbtft_free_gpios(): gpio_free('reset'=25)
[   76.217005] ------------[ cut here ]------------
[   76.217030] WARNING: at drivers/gpio/gpiolib.c:104 gpio_ensure_requested+0x54/0xb4()
[   76.217040] autorequest GPIO-25
[   76.217047] Modules linked in: fb_ili9341(+) fbtft_device fbtft syscopyarea sysfillrect sysimgblt fb_sys_fops rfcomm bnep bluetooth mali_drm drm sunxi_cir mali ump [last unloaded: scsi_wait_scan]
[   76.217134] [<c0016a20>] (unwind_backtrace+0x0/0xe8) from [<c0687a10>] (dump_stack+0x20/0x24)
[   76.217160] [<c0687a10>] (dump_stack+0x20/0x24) from [<c0029720>] (warn_slowpath_common+0x5c/0x74)
[   76.217181] [<c0029720>] (warn_slowpath_common+0x5c/0x74) from [<c0029778>] (warn_slowpath_fmt+0x40/0x48)
[   76.217204] [<c0029778>] (warn_slowpath_fmt+0x40/0x48) from [<c03a34e4>] (gpio_ensure_requested+0x54/0xb4)
[   76.217228] [<c03a34e4>] (gpio_ensure_requested+0x54/0xb4) from [<c03a3a10>] (gpio_direction_input+0x84/0x188)
[   76.217264] [<c03a3a10>] (gpio_direction_input+0x84/0x188) from [<bf0ef3f0>] (fbtft_free_gpios+0xb4/0xd4 [fbtft])
[   76.217307] [<bf0ef3f0>] (fbtft_free_gpios+0xb4/0xd4 [fbtft]) from [<bf0f0064>] (fbtft_register_framebuffer+0x2bc/0x2e8 [fbtft])
[   76.217343] [<bf0f0064>] (fbtft_register_framebuffer+0x2bc/0x2e8 [fbtft]) from [<bf0f1348>] (fbtft_probe_common+0x240/0x2b0 [fbtft])
[   76.217378] [<bf0f1348>] (fbtft_probe_common+0x240/0x2b0 [fbtft]) from [<bf1070ac>] (fbtft_driver_probe_spi+0x24/0x2c [fb_ili9341])
[   76.217408] [<bf1070ac>] (fbtft_driver_probe_spi+0x24/0x2c [fb_ili9341]) from [<c045a0fc>] (spi_drv_probe+0x28/0x2c)
[   76.217435] [<c045a0fc>] (spi_drv_probe+0x28/0x2c) from [<c042cf7c>] (driver_probe_device+0xd0/0x20c)
[   76.217459] [<c042cf7c>] (driver_probe_device+0xd0/0x20c) from [<c042d184>] (__driver_attach+0x78/0x9c)
[   76.217481] [<c042d184>] (__driver_attach+0x78/0x9c) from [<c042b500>] (bus_for_each_dev+0x7c/0xa0)
[   76.217503] [<c042b500>] (bus_for_each_dev+0x7c/0xa0) from [<c042ca3c>] (driver_attach+0x28/0x30)
[   76.217524] [<c042ca3c>] (driver_attach+0x28/0x30) from [<c042c5e0>] (bus_add_driver+0xf4/0x230)
[   76.217546] [<c042c5e0>] (bus_add_driver+0xf4/0x230) from [<c042d784>] (driver_register+0xac/0x124)
[   76.217568] [<c042d784>] (driver_register+0xac/0x124) from [<c045a554>] (spi_register_driver+0x54/0x68)
[   76.217595] [<c045a554>] (spi_register_driver+0x54/0x68) from [<bf109014>] (fbtft_driver_module_init+0x14/0x30 [fb_ili9341])
[   76.217623] [<bf109014>] (fbtft_driver_module_init+0x14/0x30 [fb_ili9341]) from [<c000867c>] (do_one_initcall+0xa8/0x164)
[   76.217649] [<c000867c>] (do_one_initcall+0xa8/0x164) from [<c0080740>] (sys_init_module+0xe40/0x1918)
[   76.217675] [<c0080740>] (sys_init_module+0xe40/0x1918) from [<c000df60>] (ret_fast_syscall+0x0/0x30)
[   76.217689] ---[ end trace 53050e35f955d0bb ]---
[   76.217713] fb_ili9341 spi0.0: fbtft_free_gpios(): gpio_free('dc'=24)
[   76.217723] ------------[ cut here ]------------
[   76.217737] WARNING: at drivers/gpio/gpiolib.c:104 gpio_ensure_requested+0x54/0xb4()
[   76.217747] autorequest GPIO-24
[   76.217753] Modules linked in: fb_ili9341(+) fbtft_device fbtft syscopyarea sysfillrect sysimgblt fb_sys_fops rfcomm bnep bluetooth mali_drm drm sunxi_cir mali ump [last unloaded: scsi_wait_scan]
[   76.217819] [<c0016a20>] (unwind_backtrace+0x0/0xe8) from [<c0687a10>] (dump_stack+0x20/0x24)
[   76.217841] [<c0687a10>] (dump_stack+0x20/0x24) from [<c0029720>] (warn_slowpath_common+0x5c/0x74)
[   76.217861] [<c0029720>] (warn_slowpath_common+0x5c/0x74) from [<c0029778>] (warn_slowpath_fmt+0x40/0x48)
[   76.217883] [<c0029778>] (warn_slowpath_fmt+0x40/0x48) from [<c03a34e4>] (gpio_ensure_requested+0x54/0xb4)
[   76.217906] [<c03a34e4>] (gpio_ensure_requested+0x54/0xb4) from [<c03a3a10>] (gpio_direction_input+0x84/0x188)
[   76.217935] [<c03a3a10>] (gpio_direction_input+0x84/0x188) from [<bf0ef3f0>] (fbtft_free_gpios+0xb4/0xd4 [fbtft])
[   76.217969] [<bf0ef3f0>] (fbtft_free_gpios+0xb4/0xd4 [fbtft]) from [<bf0f0064>] (fbtft_register_framebuffer+0x2bc/0x2e8 [fbtft])
[   76.218005] [<bf0f0064>] (fbtft_register_framebuffer+0x2bc/0x2e8 [fbtft]) from [<bf0f1348>] (fbtft_probe_common+0x240/0x2b0 [fbtft])
[   76.218038] [<bf0f1348>] (fbtft_probe_common+0x240/0x2b0 [fbtft]) from [<bf1070ac>] (fbtft_driver_probe_spi+0x24/0x2c [fb_ili9341])
[   76.218065] [<bf1070ac>] (fbtft_driver_probe_spi+0x24/0x2c [fb_ili9341]) from [<c045a0fc>] (spi_drv_probe+0x28/0x2c)
[   76.218088] [<c045a0fc>] (spi_drv_probe+0x28/0x2c) from [<c042cf7c>] (driver_probe_device+0xd0/0x20c)
[   76.218110] [<c042cf7c>] (driver_probe_device+0xd0/0x20c) from [<c042d184>] (__driver_attach+0x78/0x9c)
[   76.218131] [<c042d184>] (__driver_attach+0x78/0x9c) from [<c042b500>] (bus_for_each_dev+0x7c/0xa0)
[   76.218152] [<c042b500>] (bus_for_each_dev+0x7c/0xa0) from [<c042ca3c>] (driver_attach+0x28/0x30)
[   76.218173] [<c042ca3c>] (driver_attach+0x28/0x30) from [<c042c5e0>] (bus_add_driver+0xf4/0x230)
[   76.218194] [<c042c5e0>] (bus_add_driver+0xf4/0x230) from [<c042d784>] (driver_register+0xac/0x124)
[   76.218215] [<c042d784>] (driver_register+0xac/0x124) from [<c045a554>] (spi_register_driver+0x54/0x68)
[   76.218241] [<c045a554>] (spi_register_driver+0x54/0x68) from [<bf109014>] (fbtft_driver_module_init+0x14/0x30 [fb_ili9341])
[   76.218267] [<bf109014>] (fbtft_driver_module_init+0x14/0x30 [fb_ili9341]) from [<c000867c>] (do_one_initcall+0xa8/0x164)
[   76.218290] [<c000867c>] (do_one_initcall+0xa8/0x164) from [<c0080740>] (sys_init_module+0xe40/0x1918)
[   76.218312] [<c0080740>] (sys_init_module+0xe40/0x1918) from [<c000df60>] (ret_fast_syscall+0x0/0x30)
[   76.218325] ---[ end trace 53050e35f955d0bc ]---
[   76.218340] fb_ili9341 spi0.0: fbtft_free_gpios(): gpio_free('led'=18)
[   76.218350] ------------[ cut here ]------------
[   76.218363] WARNING: at drivers/gpio/gpiolib.c:104 gpio_ensure_requested+0x54/0xb4()
[   76.218373] autorequest GPIO-18
[   76.218379] Modules linked in: fb_ili9341(+) fbtft_device fbtft syscopyarea sysfillrect sysimgblt fb_sys_fops rfcomm bnep bluetooth mali_drm drm sunxi_cir mali ump [last unloaded: scsi_wait_scan]
[   76.218442] [<c0016a20>] (unwind_backtrace+0x0/0xe8) from [<c0687a10>] (dump_stack+0x20/0x24)
[   76.218464] [<c0687a10>] (dump_stack+0x20/0x24) from [<c0029720>] (warn_slowpath_common+0x5c/0x74)
[   76.218484] [<c0029720>] (warn_slowpath_common+0x5c/0x74) from [<c0029778>] (warn_slowpath_fmt+0x40/0x48)
[   76.218506] [<c0029778>] (warn_slowpath_fmt+0x40/0x48) from [<c03a34e4>] (gpio_ensure_requested+0x54/0xb4)
[   76.218528] [<c03a34e4>] (gpio_ensure_requested+0x54/0xb4) from [<c03a3a10>] (gpio_direction_input+0x84/0x188)
[   76.218556] [<c03a3a10>] (gpio_direction_input+0x84/0x188) from [<bf0ef3f0>] (fbtft_free_gpios+0xb4/0xd4 [fbtft])
[   76.218591] [<bf0ef3f0>] (fbtft_free_gpios+0xb4/0xd4 [fbtft]) from [<bf0f0064>] (fbtft_register_framebuffer+0x2bc/0x2e8 [fbtft])
[   76.218627] [<bf0f0064>] (fbtft_register_framebuffer+0x2bc/0x2e8 [fbtft]) from [<bf0f1348>] (fbtft_probe_common+0x240/0x2b0 [fbtft])
[   76.218660] [<bf0f1348>] (fbtft_probe_common+0x240/0x2b0 [fbtft]) from [<bf1070ac>] (fbtft_driver_probe_spi+0x24/0x2c [fb_ili9341])
[   76.218687] [<bf1070ac>] (fbtft_driver_probe_spi+0x24/0x2c [fb_ili9341]) from [<c045a0fc>] (spi_drv_probe+0x28/0x2c)
[   76.218710] [<c045a0fc>] (spi_drv_probe+0x28/0x2c) from [<c042cf7c>] (driver_probe_device+0xd0/0x20c)
[   76.218732] [<c042cf7c>] (driver_probe_device+0xd0/0x20c) from [<c042d184>] (__driver_attach+0x78/0x9c)
[   76.218753] [<c042d184>] (__driver_attach+0x78/0x9c) from [<c042b500>] (bus_for_each_dev+0x7c/0xa0)
[   76.218773] [<c042b500>] (bus_for_each_dev+0x7c/0xa0) from [<c042ca3c>] (driver_attach+0x28/0x30)
[   76.218794] [<c042ca3c>] (driver_attach+0x28/0x30) from [<c042c5e0>] (bus_add_driver+0xf4/0x230)
[   76.218815] [<c042c5e0>] (bus_add_driver+0xf4/0x230) from [<c042d784>] (driver_register+0xac/0x124)
[   76.218836] [<c042d784>] (driver_register+0xac/0x124) from [<c045a554>] (spi_register_driver+0x54/0x68)
[   76.218862] [<c045a554>] (spi_register_driver+0x54/0x68) from [<bf109014>] (fbtft_driver_module_init+0x14/0x30 [fb_ili9341])
[   76.218888] [<bf109014>] (fbtft_driver_module_init+0x14/0x30 [fb_ili9341]) from [<c000867c>] (do_one_initcall+0xa8/0x164)
[   76.218911] [<c000867c>] (do_one_initcall+0xa8/0x164) from [<c0080740>] (sys_init_module+0xe40/0x1918)
[   76.218933] [<c0080740>] (sys_init_module+0xe40/0x1918) from [<c000df60>] (ret_fast_syscall+0x0/0x30)
[   76.218946] ---[ end trace 53050e35f955d0bd ]---
[   76.219036] fb_ili9341: probe of spi0.0 failed with error -22
notro commented 7 years ago

Ok, gpio_request_one() fails with -EINVAL (-22) somewhere down the line.

Let's try and control the gpio from userspace. This should turn on backlight, run as root:

echo 18 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio18/direction
echo 1 > /sys/class/gpio/gpio18/value
rezaee commented 7 years ago

No, nothing happend!

rezaee commented 7 years ago

This is contents of /etc/modules:

#gpio_sunxi
#w1-sunxi
#w1-gpio
#w1-therm
#sunxi-cir
fbtft_device custom name=fb_ili9341  gpios=reset:25,dc:24,led:18 speed=16000000 rotate=90 bgr=1

Maybe I must change something here?

notro commented 7 years ago

No, nothing happend!

Nothing in the kernel log?

Try removing the comment in front of gpio_sunxi. See: http://linux-sunxi.org/GPIO#Accessing_the_GPIO_pins_through_sysfs_on_sunxi-3.4

rezaee commented 7 years ago

Nothing in terminal and LCD happend. it made a folder named gpio18 in /sys/class/gpio and a file named value(beside some other files) inside it with number 1 inside the value. I did remove the front comment of gpio_sunxi and reboot my system amd try the commands again but nothing happend!

notro commented 7 years ago

it made a folder named gpio18 in /sys/class/gpio

If you can't control the gpio using this interface, then fbtft won't work. They use the same functions underneath.

rezaee commented 7 years ago

I asked about the problem in armbian forum and hope to find the solution! Very thank you for your help and so sorry I took your time!

rezaee commented 7 years ago

I think I found the problem! they are not same GPIO pins as they are in RaspberryPi3 in Nanopi-M1 (although they say this in they're advertise!!). you can see GPIO pins of nanopi-m1 here: http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M1

I changed the command to this(without changing wiring): sudo modprobe fbtft_device custom name=fb_ili9341 gpios=reset:1,dc:201,led:6 speed=16000000 rotate=90 bgr=1

And the problem changed to new Error:

[ 1626.941908] fbtft_device:  SPI devices registered:
[ 1626.941929] fbtft_device:      spidev spi0.0 33000kHz 8 bits mode=0x00
[ 1626.941940] fbtft_device:  'fb' Platform devices registered:
[ 1626.942033] fbtft_device: Deleting spi0.0
[ 1626.942462] fbtft_device:  GPIOS used by 'fb_ili9341':
[ 1626.942473] fbtft_device:    'reset' = GPIO1
[ 1626.942482] fbtft_device:    'dc' = GPIO201
[ 1626.942489] fbtft_device:    'led' = GPIO6
[ 1626.942497] fbtft_device:  SPI devices registered:
[ 1626.942508] fbtft_device:      fb_ili9341 spi0.0 16000kHz 8 bits mode=0x00
[ 1627.047324] fb_ili9341 spi0.0: fbtft_request_gpios: gpio_request_one('reset'=1) failed with -16
[ 1627.047442] fb_ili9341: probe of spi0.0 failed with error -16

I am trying to find the problem, and then trying to run the LCD with your help! Thank you again in advanced.

rezaee commented 7 years ago

I checked again these codes with equal pin number in my board(6) and it worked! and turned on my LCD backlight!


echo 6 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio6/direction
echo 1 > /sys/class/gpio/gpio6/value
rezaee commented 7 years ago

I think there is a problem with fbtft code! because I can export and unexport every GPIO pins but when I try to use LCD I get this error:

fb_ili9341 spi0.0: fbtft_request_gpios: gpio_request_one('reset'=200) failed with -16
[  101.058042] fb_ili9341: probe of spi0.0 failed with error -16

I changed gpio pins but the error is the same! but testing gpio pins with export command works!

rezaee commented 7 years ago

I commented again #gpio_sunxi in /etc/modules and the problem solved. I have no errors at this time:

[   95.158413] fbtft_device:  SPI devices registered:
[   95.163798] fbtft_device:      spidev spi0.0 33000kHz 8 bits mode=0x00
[   95.171075] fbtft_device:  'fb' Platform devices registered:
[   95.177424] fbtft_device: Deleting spi0.0
[   95.182402] fbtft_device:  GPIOS used by 'fb_ili9341':
[   95.188130] fbtft_device:    'reset' = GPIO1
[   95.192970] fbtft_device:    'dc' = GPIO201
[   95.197616] fbtft_device:    'led' = GPIO6
[   95.202216] fbtft_device:  SPI devices registered:
[   95.207541] fbtft_device:      fb_ili9341 spi0.0 16000kHz 8 bits mode=0x00
[   95.513259] graphics fb8: fb_ili9341 frame buffer, 320x240, 150 KiB video memory, 16 KiB buffer memory, fps=20, spi0.0 at 16 MHz

But the new problem is my LCD only shows a blanck white sceern and nothing else!

rezaee commented 7 years ago

This is the result of: dmesg | grep graphics

[ 78.466083] graphics fb8: fb_ili9341 frame buffer, 320x240, 150 KiB video memory, 16 KiB buffer memory, fps=20, spi0.0 at 16 MHz

rezaee commented 7 years ago

I tried this commands:

sudo mkdir -p /etc/X11/xorg.conf.d/
sudo wget https://gist.github.com/notro/63fc8f563b5f85010d30/raw/5e68d6c6df9471f973b3da5305e73a5017590a69/fbtft.conf -O /etc/X11/xorg.conf.d/fbtft.conf

becauseFRAMEBUFFER=/dev/fb1 startxand con2fbmap 1 1didn't work. but now the main display(HDMI) changed and went to blank screen and also TFT screen doesn't work!

And now I have no screen and I think I must reinstall my OS again! :(

notro commented 7 years ago

But the new problem is my LCD only shows a blanck white sceern and nothing else!

This means that for some reason the controller has not received the initialization sequence, or the sequence is not correct. You should get a black backlit display.

[ 78.466083] graphics fb8:

Your framebuffer is /dev/fb8

I find fbcon to be the best and least intrusive way to test if a display is working. In your case: con2fbmap 1 8

rezaee commented 7 years ago

con2fbmap 1 8 doesn't work! I tested it wit con2fbmap 1 (0to8) and non of them worked!

notro commented 7 years ago

No, I understand that. As long as the display is white it won't work. I just pointed to an easy way to test the display, instead of messing around with xorg.

rezaee commented 7 years ago

Very very thank you for your patient and helps! I shame to say but the problem was about incorrect wiring SLK and MISO! because my focus was about GPIO pins I didn't check them.

Now the display works very nice!

I have some questions: when I change the desktop with FRAMEBUFFER=/dev/fb8 startx and then want to go back to HDMI display, I use FRAMEBUFFER=/dev/fb0 startx orFRAMEBUFFER=/dev/fb1 startxbut TFT LCD freezes when display changes. why it happens and can I fix it?

Other question is How can I use touchpanel? does my display have touchpanel support? if yes, how can I activate ir?

notro commented 7 years ago

I can't help you with X, I only use it occasionally to test displays. No touchpanel support on this display.

notro commented 6 years ago

Closing issue since there has been no activity for more than 2 months. Reopen if needed.