rlev
Posts: 87
Joined: Sat Dec 15, 2018 2:20 pm

CM3 and Goodix GT911

Mon Mar 09, 2020 11:19 am

Hi Everyone,

I have a LCD with 50 pins RGB interface that uses the Goodix GT911 as I2C control touch panel controller.
We are using a custom board based on the Raspberry Pi CM3 Plus Module.
The LCD works fine but for some reason we can not get the Touch screen panel to work.

This is the Touch controller wiring pins mapping :

Code: Select all

RESET	GPIO 02
INT	GPIO 03
SDA0	GPIO 28
SCL0	GPIO 29
We are using the available "goodix.dtbo" from /boot/overlays/ and add the appropriate "dtoverlay=goodix" in the config.txt
We have also added an overlay "goodix-mod.dts" trying to map the GT911 pins to the CM3 pins.
We are not sure if this additional "goodix-mod.dts" is needed or not. We are guessing it might be needed.

Can somebody please shed some light on this problem?
Are we on the right track? or we are missing an important step?


Thank you.

Below are some console logs .
Any help it appreciated .

config.txt

Code: Select all

disable_overscan=1
hdmi_force_hotplug=1
hdmi_group=1
hdmi_mode=31

arm_freq=1200

dtparam=i2c_arm=on
dtparam=spi=off
dtparam=i2c1=off

ignore_lcd=1
lcd_rotate=2
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=1024
framebuffer_height=600
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0xfff007
dpi_timings=1024 0 40 48 88 600 0 13 3 32 0 0 0 60 0 32000000 3


gpio=0=a2
gpio=1=a2
gpio=2=op,dh
gpio=3=ip

#dpi
gpio=4=a2
gpio=5=a2
gpio=6=a2
gpio=7=a2
gpio=8=a2
gpio=9=a2
gpio=10=a2
gpio=11=a2
gpio=12=a2
gpio=13=a2
gpio=14=a2
gpio=15=a2
gpio=16=a2
gpio=17=a2
gpio=18=a2
gpio=19=a2
gpio=20=a2
gpio=21=a2
gpio=22=a2
gpio=23=a2
gpio=24=a2
gpio=25=a2
gpio=26=a2
gpio=27=a2


#i2c for touch panel
gpio=28,29=a0

#uart0 for mcu
##gpio=32-33=a3
##gpio=30,31=op

#sdio for wifi
gpio=34-39=a3

#uart1 for BT
##gpio=40-43=a5

gpio=45=ip

# wifi
dtoverlay=sdio,sdio_overclock=25,gpios_34_39

#bluetooth
dtoverlay=cm-bt


# Uncomment some or all of these to enable the optional hardware interfaces
#dtoverlay=midi-uart1
#dtoverlay=uart1,txd1_pin=40
#dtoverlay=uart1,rxd1_pin=41

#dtoverlay=i2c0-bcm2708,pins_28_29
dtoverlay=i2c0-bcm2708,sda0_pin=28,scl0_pin=29,pin_func=6

# touch screen
#dtoverlay=st1633-overlay
#dtoverlay=st1633-override

dtoverlay=goodix
dtoverlay=goodix-mod


dtparam=i2c_vc=on
dtparam=uart0_arm=on
##dtparam=uart1_arm=on
dtparam=sdio1_arm=on
#dtparam=pwm1_arm=on

dtparam=audio=on

[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
#dtoverlay=vc4-fkms-v3d

# BT
##dtoverlay=bt-uart1

start_x=0
gpu_mem=256
enable_uart=1

goodix-mod.dts

Code: Select all

// Device tree overlay for I2C connected Goodix gt911 multiple touch controller
// HCT 7 inch DPI display
//   compile      : dtc -@ -I dts -O dtb -o goodix-mod.dtbo goodix-mod.dts
/dts-v1/;
/plugin/;

/ {
        compatible = "brcm,bcm2708";

        fragment@0 {
                target = <&gpio>;
                __overlay__ {
                        goodix_pins: goodix_pins {
                                brcm,pins = <3 2>; // interrupt and reset
                                brcm,function = <0 0>; // in
                                brcm,pull = <2 2>; // pull-up
                        };
                };
        };

        fragment@1 {
                target = <&i2c0>;
                __overlay__ {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "okay";

                        gt911: gt911@14 {
                                compatible = "goodix,gt9271";
                                reg = <0x14>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&goodix_pins>;
                                interrupt-parent = <&gpio>;
                                interrupts = <3 2>; // high-to-low edge triggered
                                irq-gpios = <&gpio 3 0>;
                                reset-gpios = <&gpio 2 0>;
                        };
                };
        };
};

dmesg

Code: Select all

pi@raspberrypi:~ $ dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.19.102-v7+ (dom@buildbot) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1295 SMP Thu Feb 6 15:43:59 GMT 2020
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    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: Raspberry Pi Compute Module 3 Plus Rev 1.0
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 8 MiB at 0x2f800000
[    0.000000] On node 0 totalpages: 196608
[    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] random: get_random_bytes called from start_kernel+0xac/0x4b4 with crng_init=0
[    0.000000] percpu: Embedded 16 pages/cpu s36864 r8192 d20480 u65536
[    0.000000] pcpu-alloc: s36864 r8192 d20480 u65536 alloc=16*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 194880
[    0.000000] Kernel command line: coherent_pool=1M bcm2708_fb.fbwidth=1024 bcm2708_fb.fbheight=600 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:67:C1:46 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 756380K/786432K available (8192K kernel code, 653K rwdata, 2224K rodata, 1024K init, 822K bss, 21860K reserved, 8192K cma-reserved)
[    0.000000] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                   vmalloc : 0xb0800000 - 0xff800000   (1264 MB)
                   lowmem  : 0x80000000 - 0xb0000000   ( 768 MB)
                   modules : 0x7f000000 - 0x80000000   (  16 MB)
                     .text : 0x(ptrval) - 0x(ptrval)   (9184 kB)
                     .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
                     .data : 0x(ptrval) - 0x(ptrval)   ( 654 kB)
                      .bss : 0x(ptrval) - 0x(ptrval)   ( 823 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 26903 entries in 79 pages
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000007] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000018] Switching to timer-based delay loop, resolution 52ns
[    0.000272] Console: colour dummy device 80x30
[    0.000291] console [tty1] enabled
[    0.000332] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.000346] pid_max: default: 32768 minimum: 301
[    0.000687] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000702] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001646] CPU: Testing write buffer coherency: ok
[    0.002105] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.002765] Setting up static identity map for 0x100000 - 0x10003c
[    0.002917] rcu: Hierarchical SRCU implementation.
[    0.003722] smp: Bringing up secondary CPUs ...
[    0.004619] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.005609] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.006522] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.006645] smp: Brought up 1 node, 4 CPUs
[    0.006657] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[    0.006663] CPU: All CPU(s) started in HYP mode.
[    0.006668] CPU: Virtualization extensions available.
[    0.007603] devtmpfs: initialized
[    0.020800] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[    0.021042] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.021062] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.021651] pinctrl core: initialized pinctrl subsystem
[    0.022505] NET: Registered protocol family 16
[    0.025571] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.031434] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.031442] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.031648] Serial: AMBA PL011 UART driver
[    0.033971] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    0.050031] raspberrypi-firmware soc:firmware: Attached to firmware from 2020-02-12 12:38, variant start
[    0.060043] raspberrypi-firmware soc:firmware: Firmware hash is 53a54c770c493957d99bf49762dfabc4eee00e45
[    0.103888] bcm2835-dma 3f007000.dma: DMA legacy API manager at (ptrval), dmachans=0x1
[    0.105535] SCSI subsystem initialized
[    0.105760] usbcore: registered new interface driver usbfs
[    0.105816] usbcore: registered new interface driver hub
[    0.105909] usbcore: registered new device driver usb
[    0.107547] clocksource: Switched to clocksource arch_sys_counter
[    0.196485] VFS: Disk quotas dquot_6.6.0
[    0.196567] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.196721] FS-Cache: Loaded
[    0.196933] CacheFiles: Loaded
[    0.207042] NET: Registered protocol family 2
[    0.207929] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[    0.207965] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.208075] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.208261] TCP: Hash tables configured (established 8192 bind 8192)
[    0.208398] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.208448] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.208685] NET: Registered protocol family 1
[    0.209259] RPC: Registered named UNIX socket transport module.
[    0.209266] RPC: Registered udp transport module.
[    0.209271] RPC: Registered tcp transport module.
[    0.209277] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.211068] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[    0.214116] Initialise system trusted keyrings
[    0.214308] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.224217] FS-Cache: Netfs 'nfs' registered for caching
[    0.224796] NFS: Registering the id_resolver key type
[    0.224824] Key type id_resolver registered
[    0.224830] Key type id_legacy registered
[    0.224846] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.227118] Key type asymmetric registered
[    0.227127] Asymmetric key parser 'x509' registered
[    0.227184] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.227356] io scheduler noop registered
[    0.227363] io scheduler deadline registered (default)
[    0.227627] io scheduler cfq registered
[    0.227635] io scheduler mq-deadline registered (default)
[    0.227642] io scheduler kyber registered
[    0.230887] bcm2708_fb soc:fb: FB found 1 display(s)
[    0.249039] Console: switching to colour frame buffer device 128x37
[    0.258463] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 1024x600
[    0.260616] bcm2835-rng 3f104000.rng: hwrng registered
[    0.260946] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    0.261472] vc-sm: Videocore shared memory driver
[    0.261801] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[    0.272612] brd: module loaded
[    0.282739] loop: module loaded
[    0.283348] Loading iSCSI transport class v2.0-870.
[    0.284029] libphy: Fixed MDIO Bus: probed
[    0.284131] usbcore: registered new interface driver lan78xx
[    0.284190] usbcore: registered new interface driver smsc95xx
[    0.284205] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    0.312063] dwc_otg 3f980000.usb: base=(ptrval)
[    0.512295] Core Release: 2.80a
[    0.512304] Setting default values for core params
[    0.512333] Finished setting default values for core params
[    0.712639] Using Buffer DMA mode
[    0.712646] Periodic Transfer Interrupt Enhancement - disabled
[    0.712651] Multiprocessor Interrupt Enhancement - disabled
[    0.712659] OTG VER PARAM: 0, OTG VER FLAG: 0
[    0.712673] Dedicated Tx FIFOs mode
[    0.713133] WARN::dwc_otg_hcd_init:1074: FIQ DMA bounce buffers: virt = af904000 dma = 0xef904000 len=9024
[    0.713158] FIQ FSM acceleration enabled for :
               Non-periodic Split Transactions
               Periodic Split Transactions
               High-Speed Isochronous Endpoints
               Interrupt/Control Split Transaction hack enabled
[    0.713166] dwc_otg: Microframe scheduler enabled
[    0.713221] WARN::hcd_init_fiq:457: FIQ on core 1
[    0.713231] WARN::hcd_init_fiq:458: FIQ ASM at 80683714 length 36
[    0.713241] WARN::hcd_init_fiq:497: MPHI regs_base at b0810000
[    0.713258] dwc_otg 3f980000.usb: DWC OTG Controller
[    0.713291] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[    0.713325] dwc_otg 3f980000.usb: irq 56, io mem 0x00000000
[    0.713372] Init: Port Power? op_state=1
[    0.713378] Init: Power Port (0)
[    0.713628] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    0.713639] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.713648] usb usb1: Product: DWC OTG Controller
[    0.713658] usb usb1: Manufacturer: Linux 4.19.102-v7+ dwc_otg_hcd
[    0.713667] usb usb1: SerialNumber: 3f980000.usb
[    0.714291] hub 1-0:1.0: USB hub found
[    0.714343] hub 1-0:1.0: 1 port detected
[    0.714920] dwc_otg: FIQ enabled
[    0.714926] dwc_otg: NAK holdoff enabled
[    0.714931] dwc_otg: FIQ split-transaction FSM enabled
[    0.714942] Module dwc_common_port init
[    0.715192] usbcore: registered new interface driver usb-storage
[    0.715368] mousedev: PS/2 mouse device common for all mice
[    0.716233] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    0.716470] bcm2835-cpufreq: min=600000 max=1200000
[    0.716944] sdhci: Secure Digital Host Controller Interface driver
[    0.716950] sdhci: Copyright(c) Pierre Ossman
[    0.717338] mmc-bcm2835 3f300000.mmc: could not get clk, deferring probe
[    0.717794] sdhost-bcm2835 3f202000.mmc: could not get clk, deferring probe
[    0.717927] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.718423] ledtrig-cpu: registered to indicate activity on CPUs
[    0.718500] hidraw: raw HID events driver (C) Jiri Kosina
[    0.718670] usbcore: registered new interface driver usbhid
[    0.718675] usbhid: USB HID core driver
[    0.719465] vchiq: vchiq_init_state: slot_zero = (ptrval), is_master = 0
[    0.720978] [vc_sm_connected_init]: start
[    0.729691] [vc_sm_connected_init]: end - returning 0
[    0.730775] Initializing XFRM netlink socket
[    0.730800] NET: Registered protocol family 17
[    0.730921] Key type dns_resolver registered
[    0.731475] Registering SWP/SWPB emulation handler
[    0.732129] registered taskstats version 1
[    0.732145] Loading compiled-in X.509 certificates
[    0.738830] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    0.738911] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 81, base_baud = 0) is a PL011 rev2
[    0.740799] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0
[    0.740809] mmc-bcm2835 3f300000.mmc: DMA channel allocated
[    0.767021] sdhost: log_buf @ (ptrval) (ef907000)
[    0.804261] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    0.805849] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    0.807434] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    0.810254] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    0.812757] mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
[    0.814126] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    0.815393] of_cfs_init
[    0.815487] of_cfs_init: OK
[    0.816082] Waiting for root device PARTUUID=ea7d04d6-02...
[    0.886852] mmc0: new high speed MMC card at address 0001
[    0.888084] mmcblk0: mmc0:0001 BJTD4R 29.1 GiB
[    0.888839] mmcblk0boot0: mmc0:0001 BJTD4R partition 1 4.00 MiB
[    0.889610] mmcblk0boot1: mmc0:0001 BJTD4R partition 2 4.00 MiB
[    0.889935] mmcblk0rpmb: mmc0:0001 BJTD4R partition 3 4.00 MiB, chardev (246:0)
[    0.891649]  mmcblk0: p1 p2
[    0.894679] random: fast init done
[    0.899654] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    0.899663] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[    0.906050] mmc1: new high speed SDIO card at address 0001
[    0.937671] Indeed it is in host mode hprt0 = 00021501
[    1.147586] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    1.148045] Indeed it is in host mode hprt0 = 00001101
[    1.390346] usb 1-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice= 6.54
[    1.390363] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    1.390372] usb 1-1: Product: USB2.1 Hub
[    1.390381] usb 1-1: Manufacturer: GenesysLogic
[    1.391148] hub 1-1:1.0: USB hub found
[    1.391476] hub 1-1:1.0: 4 ports detected
[    1.403346] EXT4-fs (mmcblk0p2): recovery complete
[    1.404232] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.404288] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.405564] devtmpfs: mounted
[    1.410837] Freeing unused kernel memory: 1024K
[    1.411220] Run /sbin/init as init process
[    1.727613] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    1.890521] usb 1-1.1: New USB device found, idVendor=0b95, idProduct=7720, bcdDevice= 0.01
[    1.890538] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.890548] usb 1-1.1: Product: AX88772A
[    1.890557] usb 1-1.1: Manufacturer: ASIX Elec. Corp.
[    1.890566] usb 1-1.1: SerialNumber: 00081A
[    1.929963] systemd[1]: System time before build time, advancing clock.
[    2.007594] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[    2.045718] NET: Registered protocol family 10
[    2.047023] Segment Routing with IPv6
[    2.092357] 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)
[    2.093240] systemd[1]: Detected architecture arm.
[    2.104816] systemd[1]: Set hostname to <raspberrypi>.
[    2.158821] usb 1-1.2: New USB device found, idVendor=0781, idProduct=5530, bcdDevice= 1.03
[    2.158848] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.158871] usb 1-1.2: Product: Cruzer
[    2.158890] usb 1-1.2: Manufacturer: SanDisk
[    2.158912] usb 1-1.2: SerialNumber: 20042204901890338432
[    2.159933] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[    2.177721] scsi host0: usb-storage 1-1.2:1.0
[    2.297669] usb 1-1.3: new low-speed USB device number 5 using dwc_otg
[    2.453796] usb 1-1.3: New USB device found, idVendor=046d, idProduct=c018, bcdDevice=43.01
[    2.453813] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.453822] usb 1-1.3: Product: USB Optical Mouse
[    2.453831] usb 1-1.3: Manufacturer: Logitech
[    2.459353] input: Logitech USB Optical Mouse as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:046D:C018.0001/input/input0
[    2.459814] hid-generic 0003:046D:C018.0001: input,hidraw0: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-3f980000.usb-1.3/input0
[    2.577620] usb 1-1.4: new low-speed USB device number 6 using dwc_otg
[    2.756735] usb 1-1.4: New USB device found, idVendor=03f0, idProduct=0024, bcdDevice= 3.00
[    2.756751] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.756761] usb 1-1.4: Product: HP Basic USB Keyboard
[    2.756770] usb 1-1.4: Manufacturer: CHICONY
[    2.773198] input: CHICONY HP Basic USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/0003:03F0:0024.0002/input/input1
[    2.838217] hid-generic 0003:03F0:0024.0002: input,hidraw1: USB HID v1.10 Keyboard [CHICONY HP Basic USB Keyboard] on usb-3f980000.usb-1.4/input0
[    2.919751] random: systemd: uninitialized urandom read (16 bytes read)
[    2.931247] random: systemd: uninitialized urandom read (16 bytes read)
[    2.931337] systemd[1]: Reached target Swap.
[    2.931884] random: systemd: uninitialized urandom read (16 bytes read)
[    2.932357] systemd[1]: Listening on udev Kernel Socket.
[    2.932909] systemd[1]: Listening on udev Control Socket.
[    2.933299] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    2.940606] systemd[1]: Listening on Syslog Socket.
[    2.941249] systemd[1]: Listening on fsck to fsckd communication Socket.
[    2.946496] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[    3.127872] i2c /dev entries driver
[    3.209167] scsi 0:0:0:0: Direct-Access     SanDisk  Cruzer           1.20 PQ: 0 ANSI: 5
[    3.216320] sd 0:0:0:0: [sda] 31266816 512-byte logical blocks: (16.0 GB/14.9 GiB)
[    3.217257] sd 0:0:0:0: [sda] Write Protect is off
[    3.217275] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[    3.218995] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    3.230982]  sda: sda1
[    3.233787] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    3.769556] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    3.892071] systemd-journald[122]: Received request to flush runtime journal from PID 1
[    4.388833] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    4.814056] media: Linux media interface: v0.10
[    4.848504] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    4.850955] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    4.850970] [vc_sm_connected_init]: start
[    4.854846] videodev: Linux video capture interface: v2.00
[    4.859471] [vc_sm_connected_init]: installed successfully
[    4.899431] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    4.900933] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    4.910651] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    4.930139] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    4.949888] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    4.949944] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    4.961630] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    4.961670] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    4.969681] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    4.975486] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    4.975525] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    4.988403] bcm2835_audio soc:audio: card created with 8 channels
[    5.343756] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    5.363463] usbcore: registered new interface driver uas
[    5.470452] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    5.531118] brcmfmac: F1 signature read @0x18000000=0x15264345
[    5.544681] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    5.545511] usbcore: registered new interface driver brcmfmac
[    5.849405] random: crng init done
[    5.849422] random: 7 urandom warning(s) missed due to ratelimiting
[    5.884751] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    5.899946] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
[    6.078066] asix 1-1.1:1.0 eth0: register 'asix' at usb-3f980000.usb-1.1, ASIX AX88772 USB 2.0 Ethernet, 00:0e:c6:53:36:d7
[    6.078485] usbcore: registered new interface driver asix
[    6.128138] pinctrl-bcm2835 3f200000.gpio: pin gpio3 already requested by 3f804000.i2c; cannot claim for 0-0014
[    6.128157] pinctrl-bcm2835 3f200000.gpio: pin-3 (0-0014) status -22
[    6.128170] pinctrl-bcm2835 3f200000.gpio: could not request pin 3 (gpio3) from group gpio3  on device pinctrl-bcm2835
[    6.128179] Goodix-TS 0-0014: Error applying setting, reverse things back
[    6.128209] Goodix-TS: probe of 0-0014 failed with error -22
[    6.133673] Goodix-TS 1-0014: prop pinctrl-0 index 0 invalid phandle
[    6.133707] Goodix-TS: probe of 1-0014 failed with error -22
[    7.203819] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    7.203853] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[    7.769445] uart-pl011 3f201000.serial: no DMA platform data
[    8.066716] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[   14.440537] Bluetooth: Core ver 2.22
[   14.440634] NET: Registered protocol family 31
[   14.440642] Bluetooth: HCI device and connection manager initialized
[   14.440667] Bluetooth: HCI socket layer initialized
[   14.440681] Bluetooth: L2CAP socket layer initialized
[   14.440722] Bluetooth: SCO socket layer initialized
[   14.458657] Bluetooth: HCI UART driver ver 2.3
[   14.458672] Bluetooth: HCI UART protocol H4 registered
[   14.458758] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   14.458971] Bluetooth: HCI UART protocol Broadcom registered
[   14.673604] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   14.673612] Bluetooth: BNEP filters: protocol multicast
[   14.673627] Bluetooth: BNEP socket layer initialized
[   14.733270] Bluetooth: RFCOMM TTY layer initialized
[   14.733303] Bluetooth: RFCOMM socket layer initialized
[   14.733326] Bluetooth: RFCOMM ver 1.11
[   19.499305] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   29.717272] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   29.849502] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   29.852236] asix 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[   50.532092] fuse init (API version 7.27)
[   52.558809] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
vcdbg log msg

Code: Select all

pi@raspberrypi:~ $ sudo vcdbg log msg
002290.904: brfs: File read: /mfs/sd/config.txt
002292.921: brfs: File read: 1787 bytes
002664.529: HDMI:EDID error reading EDID block 0 attempt 0
003026.550: HDMI:EDID error reading EDID block 0 attempt 1
003388.565: HDMI:EDID error reading EDID block 0 attempt 2
003750.582: HDMI:EDID error reading EDID block 0 attempt 3
004112.597: HDMI:EDID error reading EDID block 0 attempt 4
004474.614: HDMI:EDID error reading EDID block 0 attempt 5
004836.629: HDMI:EDID error reading EDID block 0 attempt 6
005198.646: HDMI:EDID error reading EDID block 0 attempt 7
005560.661: HDMI:EDID error reading EDID block 0 attempt 8
005922.678: HDMI:EDID error reading EDID block 0 attempt 9
005923.735: HDMI:EDID giving up on reading EDID block 0
006284.813: HDMI:EDID error reading EDID block 0 attempt 0
006646.835: HDMI:EDID error reading EDID block 0 attempt 1
007008.855: HDMI:EDID error reading EDID block 0 attempt 2
007370.875: HDMI:EDID error reading EDID block 0 attempt 3
007732.896: HDMI:EDID error reading EDID block 0 attempt 4
008094.916: HDMI:EDID error reading EDID block 0 attempt 5
008456.936: HDMI:EDID error reading EDID block 0 attempt 6
008818.956: HDMI:EDID error reading EDID block 0 attempt 7
009180.976: HDMI:EDID error reading EDID block 0 attempt 8
009542.996: HDMI:EDID error reading EDID block 0 attempt 9
009544.058: HDMI:EDID giving up on reading EDID block 0
009557.481: brfs: File read: /mfs/sd/config.txt
009559.310: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
009569.591: gpioman: gpioman_get_pin_num: pin BT_ON not defined
009569.651: gpioman: gpioman_get_pin_num: pin WL_ON not defined
009602.740: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
009602.829: *** Restart logging
009602.892: brfs: File read: 1787 bytes
009964.508: hdmi: HDMI:EDID error reading EDID block 0 attempt 0
010326.535: hdmi: HDMI:EDID error reading EDID block 0 attempt 1
010688.561: hdmi: HDMI:EDID error reading EDID block 0 attempt 2
011050.586: hdmi: HDMI:EDID error reading EDID block 0 attempt 3
011412.611: hdmi: HDMI:EDID error reading EDID block 0 attempt 4
011774.636: hdmi: HDMI:EDID error reading EDID block 0 attempt 5
012136.662: hdmi: HDMI:EDID error reading EDID block 0 attempt 6
012498.687: hdmi: HDMI:EDID error reading EDID block 0 attempt 7
012860.711: hdmi: HDMI:EDID error reading EDID block 0 attempt 8
013222.737: hdmi: HDMI:EDID error reading EDID block 0 attempt 9
013223.804: hdmi: HDMI:EDID giving up on reading EDID block 0
013584.901: hdmi: HDMI:EDID error reading EDID block 0 attempt 0
013946.922: hdmi: HDMI:EDID error reading EDID block 0 attempt 1
014308.944: hdmi: HDMI:EDID error reading EDID block 0 attempt 2
014670.965: hdmi: HDMI:EDID error reading EDID block 0 attempt 3
015032.986: hdmi: HDMI:EDID error reading EDID block 0 attempt 4
015395.007: hdmi: HDMI:EDID error reading EDID block 0 attempt 5
015757.028: hdmi: HDMI:EDID error reading EDID block 0 attempt 6
016119.049: hdmi: HDMI:EDID error reading EDID block 0 attempt 7
016481.070: hdmi: HDMI:EDID error reading EDID block 0 attempt 8
016843.091: hdmi: HDMI:EDID error reading EDID block 0 attempt 9
016844.153: hdmi: HDMI:EDID giving up on reading EDID block 0
016847.781: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
016848.998: gpioman: gpioman_get_pin_num: pin CAMERA_0_SDA_PIN not defined
016849.062: gpioman: gpioman_get_pin_num: pin CAMERA_0_SCL_PIN not defined
016849.124: gpioman: gpioman_get_pin_num: pin CAMERA_0_I2C_PORT not defined
016855.046: brfs: File read: /mfs/sd/bcm2710-rpi-cm3.dtb
016855.113: Loading 'bcm2710-rpi-cm3.dtb' to 0x100 size 0x62ce
017055.209: brfs: File read: 25294 bytes
017056.942: brfs: File read: /mfs/sd/config.txt
017057.083: dtparam: i2c_arm=on
017081.162: dtparam: spi=off
017101.837: dtparam: i2c1=off
017126.789: brfs: File read: 1787 bytes
017134.510: brfs: File read: /mfs/sd/overlays/sdio.dtbo
017166.852: Loaded overlay 'sdio'
017166.907: dtparam: sdio_overclock=25
017167.676: dtparam: gpios_34_39=true
017252.040: brfs: File read: 1889 bytes
017260.464: brfs: File read: /mfs/sd/overlays/cm-bt.dtbo
017277.736: Loaded overlay 'cm-bt'
017349.770: brfs: File read: 1049 bytes
017354.461: brfs: File read: /mfs/sd/overlays/i2c0-bcm2708.dtbo
017378.714: Loaded overlay 'i2c0-bcm2708'
017378.772: dtparam: sda0_pin=28
017380.488: dtparam: scl0_pin=29
017382.198: dtparam: pin_func=6
017390.845: Unknown dtparam 'pin_func' - ignored
017421.396: brfs: File read: 1674 bytes
017425.018: brfs: File read: /mfs/sd/overlays/goodix.dtbo
017445.593: Loaded overlay 'goodix'
017511.437: brfs: File read: 1437 bytes
017519.874: brfs: File read: /mfs/sd/overlays/goodix-mod.dtbo
017538.482: Loaded overlay 'goodix-mod'
017538.562: dtparam: i2c_vc=on
017560.603: dtparam: uart0_arm=on
017569.287: Unknown dtparam 'uart0_arm' - ignored
017569.365: dtparam: sdio1_arm=on
017578.065: Unknown dtparam 'sdio1_arm' - ignored
017578.147: dtparam: audio=on
017664.633: brfs: File read: 1216 bytes
017665.804: brfs: File read: /mfs/sd/cmdline.txt
017665.905: Read command line from file 'cmdline.txt':
017665.970: 'console=serial0,115200 console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles'
019555.825: gpioman: gpioman_get_pin_num: pin BT_ON not defined
019563.950: gpioman: gpioman_get_pin_num: pin WL_ON not defined
019579.391: brfs: File read: 166 bytes
020069.274: brfs: File read: /mfs/sd/kernel7.img
020069.335: Loading 'kernel7.img' to 0x8000 size 0x52e450
020069.404: Device tree loaded to 0x2eff9500 (size 0x6a5d)
020071.214: gpioman: gpioman_get_pin_num: pin SDCARD_CONTROL_POWER not defined
021318.159: vchiq_core: vchiq_init_state: slot_zero = 0xef980000, is_master = 1
021322.305: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
021327.519: TV service:host side not connected, dropping notification 0x00000002, 0x00000001, 0x0000001f
025522.005: brfs: File read: 5432400 bytes
025527.140: gpioman: gpioman_get_pin_num: pin FLASH_0_ENABLE not defined
025527.230: gpioman: gpioman_get_pin_num: pin FLASH_0_INDICATOR not defined
025527.329: gpioman: gpioman_get_pin_num: pin FLASH_0_ENABLE not defined
025527.394: gpioman: gpioman_get_pin_num: pin FLASH_0_INDICATOR not defined
i2cdetect

Code: Select all

pi@raspberrypi:~ $ sudo i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- 14 -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
raspi-gpio get

Code: Select all

pi@raspberrypi:~ $ sudo raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=6 alt=2 func=PCLK
GPIO 1: level=1 fsel=6 alt=2 func=DE
GPIO 2: level=1 fsel=4 alt=0 func=SDA1
GPIO 3: level=0 fsel=4 alt=0 func=SCL1
GPIO 4: level=1 fsel=6 alt=2 func=DPI_D0
GPIO 5: level=0 fsel=6 alt=2 func=DPI_D1
GPIO 6: level=1 fsel=6 alt=2 func=DPI_D2
GPIO 7: level=1 fsel=6 alt=2 func=DPI_D3
GPIO 8: level=0 fsel=6 alt=2 func=DPI_D4
GPIO 9: level=1 fsel=6 alt=2 func=DPI_D5
GPIO 10: level=0 fsel=6 alt=2 func=DPI_D6
GPIO 11: level=0 fsel=6 alt=2 func=DPI_D7
GPIO 12: level=1 fsel=6 alt=2 func=DPI_D8
GPIO 13: level=0 fsel=6 alt=2 func=DPI_D9
GPIO 14: level=0 fsel=6 alt=2 func=DPI_D10
GPIO 15: level=0 fsel=6 alt=2 func=DPI_D11
GPIO 16: level=1 fsel=6 alt=2 func=DPI_D12
GPIO 17: level=0 fsel=6 alt=2 func=DPI_D13
GPIO 18: level=0 fsel=6 alt=2 func=DPI_D14
GPIO 19: level=0 fsel=6 alt=2 func=DPI_D15
GPIO 20: level=0 fsel=6 alt=2 func=DPI_D16
GPIO 21: level=1 fsel=6 alt=2 func=DPI_D17
GPIO 22: level=0 fsel=6 alt=2 func=DPI_D18
GPIO 23: level=0 fsel=6 alt=2 func=DPI_D19
GPIO 24: level=1 fsel=6 alt=2 func=DPI_D20
GPIO 25: level=0 fsel=6 alt=2 func=DPI_D21
GPIO 26: level=0 fsel=6 alt=2 func=DPI_D22
GPIO 27: level=0 fsel=6 alt=2 func=DPI_D23
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=4 alt=0 func=SDA0
GPIO 29: level=1 fsel=4 alt=0 func=SCL0
GPIO 30: level=0 fsel=7 alt=3 func=CTS0
GPIO 31: level=0 fsel=7 alt=3 func=RTS0
GPIO 32: level=1 fsel=7 alt=3 func=TXD0
GPIO 33: level=1 fsel=7 alt=3 func=RXD0
GPIO 34: level=1 fsel=7 alt=3 func=SD1_CLK
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
GPIO 38: level=0 fsel=7 alt=3 func=SD1_DAT2
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3
GPIO 40: level=0 fsel=0 func=INPUT
GPIO 41: level=0 fsel=0 func=INPUT
GPIO 42: level=0 fsel=0 func=INPUT
GPIO 43: level=0 fsel=0 func=INPUT
GPIO 44: level=0 fsel=0 func=INPUT
GPIO 45: level=1 fsel=0 func=INPUT
BANK2 (GPIO 46 to 53):
GPIO 46: level=1 fsel=0 func=INPUT
GPIO 47: level=1 fsel=1 func=OUTPUT
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK
GPIO 49: level=1 fsel=4 alt=0 func=SD0_CMD
GPIO 50: level=1 fsel=4 alt=0 func=SD0_DAT0
GPIO 51: level=1 fsel=4 alt=0 func=SD0_DAT1
GPIO 52: level=1 fsel=4 alt=0 func=SD0_DAT2
GPIO 53: level=1 fsel=4 alt=0 func=SD0_DAT3
lsmod

Code: Select all

pi@raspberrypi:~ $ sudo lsmod
Module                  Size  Used by
fuse                  110592  3
rfcomm                 49152  4
bnep                   20480  2
hci_uart               40960  1
btbcm                  16384  1 hci_uart
serdev                 20480  1 hci_uart
bluetooth             389120  29 hci_uart,bnep,btbcm,rfcomm
ecdh_generic           28672  1 bluetooth
goodix                 16384  0
asix                   36864  0
evdev                  24576  5
brcmfmac              315392  0
brcmutil               16384  1 brcmfmac
sha256_generic         20480  0
uas                    24576  0
cfg80211              651264  1 brcmfmac
raspberrypi_hwmon      16384  0
hwmon                  16384  1 raspberrypi_hwmon
rfkill                 28672  6 bluetooth,cfg80211
snd_bcm2835            24576  2
snd_pcm               102400  1 snd_bcm2835
bcm2835_codec          36864  0
snd_timer              32768  1 snd_pcm
v4l2_mem2mem           24576  1 bcm2835_codec
bcm2835_v4l2           45056  0
snd                    73728  7 snd_timer,snd_bcm2835,snd_pcm
bcm2835_mmal_vchiq     32768  2 bcm2835_codec,bcm2835_v4l2
v4l2_common            16384  1 bcm2835_v4l2
videobuf2_dma_contig    20480  1 bcm2835_codec
videobuf2_vmalloc      16384  1 bcm2835_v4l2
videobuf2_memops       16384  2 videobuf2_dma_contig,videobuf2_vmalloc
videobuf2_v4l2         24576  3 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem
videobuf2_common       45056  4 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
vc_sm_cma              36864  1 bcm2835_mmal_vchiq
videodev              200704  6 bcm2835_codec,v4l2_common,videobuf2_common,bcm2835_v4l2,v4l2_mem2mem,videobuf2_v4l2
media                  36864  3 bcm2835_codec,videodev,v4l2_mem2mem
i2c_bcm2835            16384  0
sg                     28672  0
uio_pdrv_genirq        16384  0
fixed                  16384  0
uio                    20480  1 uio_pdrv_genirq
i2c_dev                20480  0
ip_tables              24576  0
x_tables               32768  1 ip_tables
ipv6                  454656  22

Thank you

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5284
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 and Goodix GT911

Mon Mar 09, 2020 12:28 pm

This thread looks very similar to another of yours about a touchscreen, and although you are now including more information you don't seem to be reading it first.

Code: Select all

RESET	GPIO 02
INT	GPIO 03

Code: Select all

GPIO 2: level=1 fsel=4 alt=0 func=SDA1
GPIO 3: level=0 fsel=4 alt=0 func=SCL1
It's clear that the attempt to repurpose GPIOs 2 & 3 hasn't worked - they are still being used for I2C1.
And here's a clue why:

Code: Select all

[    6.128138] pinctrl-bcm2835 3f200000.gpio: pin gpio3 already requested by 3f804000.i2c; cannot claim for 0-0014
[    6.128157] pinctrl-bcm2835 3f200000.gpio: pin-3 (0-0014) status -22
[    6.128170] pinctrl-bcm2835 3f200000.gpio: could not request pin 3 (gpio3) from group gpio3  on device pinctrl-bcm2835
Something is enabling the i2c1 interface when it shouldn't be.

My advice would be to take a moment to go through your config.txt and remove the duplication: if you have an overlay that configures some pins, don't also have gpio= lines that do the same thing - it's more to read through, and makes it harder to see the effect of any changes you make.

rlev
Posts: 87
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 and Goodix GT911

Tue Mar 10, 2020 10:44 am

PhilE,

Thank you for your response.

I have found out that was the overlay goodix.dtbo the one enabling i2c1.

https://raw.githubusercontent.com/raspb ... verlay.dts

I have modified it to use i2c0 matching my I2C pinout

Code: Select all

// Device tree overlay for I2C connected Goodix gt9271 multiple touch controller
/dts-v1/;
/plugin/;

/ {
	compatible = "brcm,bcm2835";

	fragment@0 {
		target = <&gpio>;
		__overlay__ {
			goodix_pins: goodix_pins {
				brcm,pins = <3 2>; // interrupt and reset
				brcm,function = <0 0>; // in
				brcm,pull = <2 2>; // pull-up
			};
		};
	};

	fragment@1 {
		target = <&i2c0>;
		__overlay__ {
			#address-cells = <1>;
			#size-cells = <0>;
			status = "okay";

			gt9271: gt9271@14 {
				compatible = "goodix,gt9271";
				reg = <0x14>;
				pinctrl-names = "default";
				pinctrl-0 = <&goodix_pins>;
				interrupt-parent = <&gpio>;
				interrupts = <3 2>; // high-to-low edge triggered
				irq-gpios = <&gpio 3 0>; 
				reset-gpios = <&gpio 2 0>; 
			};
		};
	};

	__overrides__ {
		interrupt = <&goodix_pins>,"brcm,pins:0",
			<&gt9271>,"interrupts:0",
			<&gt9271>,"irq-gpios:3";
		reset = <&goodix_pins>,"brcm,pins:3",
			<&gt9271>,"reset-gpios:3";
	};
};
The touch screen works but I see this error message in "dmesg" that I can not figure it out.

Code: Select all

[    5.480001] Goodix-TS 0-0014: ID 911, version: 1060
[    5.480133] Goodix-TS 0-0014: Direct firmware load for goodix_911_cfg.bin failed with error -2
[    5.508044] input: Goodix Capacitive TouchScreen as /devices/platform/soc/3f205000.i2c/i2c-0/0-0014/input/input2

Thanks

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5284
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 and Goodix GT911

Tue Mar 10, 2020 11:57 am

The driver is trying to download firmware to the touchscreen. Based on the device ID it knows to look for "goodix_911_cfg.bin", but I'm guessing you don't have one. If you can find it (or generate one) then you should copy it into /lib/firmware.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 14824
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: CM3 and Goodix GT911

Tue Mar 10, 2020 2:25 pm

https://github.com/torvalds/linux/commi ... cce0389a73
Input: goodix - write configuration data to device

Goodix devices can be configured by writing custom data to the device at
init. The configuration data is read with request_firmware from
"goodix_<id>_cfg.bin", where <id> is the product id read from the device
(e.g.: goodix_911_cfg.bin for Goodix GT911, goodix_9271_cfg.bin for
GT9271).

The configuration information has a specific format described in the Goodix
datasheet. It includes X/Y resolution, maximum supported touch points,
interrupt flags, various sensitivity factors and settings for advanced
features (like gesture recognition).

Before writing the firmware, it is necessary to reset the device. If
the device ACPI/DT information does not declare gpio pins (needed for
reset), writing the firmware will not be available for these devices.

This is based on Goodix datasheets for GT911 and GT9271 and on Goodix
driver gt9xx.c for Android (publicly available in Android kernel
trees for various devices).

Signed-off-by: Octavian Purdila <[email protected]>
Signed-off-by: Irina Tirdea <[email protected]>
Tested-by: Bastien Nocera <[email protected]>
Tested-by: Aleksei Mamlin <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
So it's optional config data, not firmware required to function.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

rlev
Posts: 87
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 and Goodix GT911

Tue Mar 10, 2020 6:31 pm

PhilE, 6by9,

Understood.

Thank you very much for your guide and help.

rlev
Posts: 87
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 and Goodix GT911

Sun Apr 12, 2020 10:37 pm

PhilE,

In this type of LCD with 50 pins RGB interface.
- Is there a way to turn the LCD on and off programmatically?
- Does the OS like Raspian turn the LCD off after some timeout without user input or interaction?

Thanks

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 14824
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: CM3 and Goodix GT911

Mon Apr 13, 2020 7:53 am

rlev wrote:
Sun Apr 12, 2020 10:37 pm
PhilE,

In this type of LCD with 50 pins RGB interface.
- Is there a way to turn the LCD on and off programmatically?
- Does the OS like Raspian turn the LCD off after some timeout without user input or interaction
Does the display have hardware to control the backlight? If so then you need a way to hook it up into a backlight driver - https://github.com/raspberrypi/linux/tr ... /backlight

If it's a simple on/off, then I see there is a gpio backlight driver in there, which is likely to be the simplest solution.
If the backlight control is part of the touchscreen controller ic, then you'll need to make a combined driver that registers with both subsystems.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

rlev
Posts: 87
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 and Goodix GT911

Mon Apr 13, 2020 10:57 am

Thank you 6by9

Return to “Device Tree”