This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/PROCESSOR-SDK-AM335X: FT5x06 capacitive touchscreen issue

Part Number: PROCESSOR-SDK-AM335X

Tool/software: Linux

Hello All,

We have designed custom board based on AM3354 processor where AM335x-evm and beagle bone used as reference design.We have interfaced FT5x06(FT5406 ) capacitive touchscreen over i2c bus.following changes done for bring up the touch screen driver.

processor Side                                Touch screen

 I2C2_SDA <------------------------------>  TOUCH_SDA

I2C2_SCL <------------------------------>   TOUCH_SCL

GPIO3_18 ------------------------------>    TOUCH_WAK

GPIO3_20 <------------------------------     TOUCH_INT

1. Modified device tree for  touch screen & i2c  related then build the "dtb" and loaded to the board

 i2c2_pins: pinmux_i2c2_pins {
                  pinctrl-single,pins = <
                                 0x17c ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D17) uart1_rtsn.I2C2_SCL */
                               0x178 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D18) uart1_ctsn.I2C2_SDA */
                   >;
               };

edt_ft5406_ts_pins: edt_ft5406_ts_pins {
           pinctrl-single,pins = <
                        0x1a8 ( PIN_INPUT | MUX_MODE7 ) /* (D13) mcasp0_axr1.gpio3[20] */
                       0x1a0 ( PIN_OUTPUT | MUX_MODE7 ) /* (B12) mcasp0_aclkr.gpio3[18] */
                >;
    };

        &i2c2 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&i2c2_pins>;
        clock-frequency = <400000>;
        edt-ft5406@38 {
                status = "okay";
                compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
                pinctrl-names = "default";
                pinctrl-0 = <&edt_ft5406_ts_pins>;
                reg = <0x38>;
                interrupt-parent = <&gpio3>;
                interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
          /*    reset-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>; */
                wake-gpios = <&gpio3 18 GPIO_ACTIVE_LOW>;
                touchscreen-size-x = <800>;
                touchscreen-size-y = <480>;
        };
};

2. Added edt-FT5x06 driver as build-in and "zImage" loaded to the board.

But touch screen driver giving issue during probing and also i2c-2 devices address not detected.Following are the lof for touch screen

1. Following boot message are for the touch and i2c  during booting

[    2.029642] edt_ft5x06 2-0038: touchscreen probe failed
[    2.034956] edt_ft5x06: probe of 2-0038 failed with error -121
[    2.049657] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 400 kHz

2. dmesg printed  following log:

[    2.007054] edt_ft5x06 2-0038: GPIO lookup for consumer reset
[    2.007080] edt_ft5x06 2-0038: using device tree for GPIO lookup
[    2.007100] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/i2c@4819c000/edt-ft5406@38[0]'
[    2.007115] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/i2c@4819c000/edt-ft5406@38[0]'
[    2.007128] edt_ft5x06 2-0038: using lookup tables for GPIO lookup
[    2.007142] edt_ft5x06 2-0038: lookup for GPIO reset failed
[    2.007155] edt_ft5x06 2-0038: GPIO lookup for consumer wake
[    2.007166] edt_ft5x06 2-0038: using device tree for GPIO lookup
[    2.007200] of_get_named_gpiod_flags: parsed 'wake-gpios' property of node '/ocp/i2c@4819c000/edt-ft5406@38[0]' - status (0)
[    2.029642] edt_ft5x06 2-0038: touchscreen probe failed
[    2.034956] edt_ft5x06: probe of 2-0038 failed with error -121
[    2.049657] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 400 kHz

3. I2c address not detected by "i2cdetect" command

root@am335x-evm:~# i2cdetect -r 2
WARNING! This program can confuse your I2C bus, cause data loss and worse!
 I will probe file /dev/i2c-2 using read byte commands.
 I will probe address range 0x03-0x77.
 Continue? [Y/n]
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                       

4. "cat /proc/bus/input/devices" command not listing any touchscreen related device.

5. "cat /proc/interrupt" command did not shows incremented count for touch screen when touch on LCD panel.

Kindly suggest the possible reason and solution to the problem.

Thanks,

Anil




  • Hi,

    Do you have external pullups on the I2C lines? Do you see any activity on them when you probe the interface?
  • Hi Biser,

    Yes. External pullup's are connected on the I2C lines.

    W/WO external pullup's on the WAKE and INT lines also tested but the problem still present.

    Using Oscilloscope probed the I2C lines i am not seeing I2C clock generated from processor.

    I am seeing the below Kernel log message for the touch screen. Also attached the complete kernel log message for your reference.

    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 4.4.41-gf9f6f0db2d (root@EMMYS0683) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #12 PREEMPT Wed Jul 12 18:56:22 IST 2017
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine model: TI AM335x EVM
    [    0.000000] cma: Reserved 48 MiB at 0x9d000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (sgx neon )
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=NAND.file-system,2048 rootfstype=ubifs rootwait=1
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 459964K/524288K available (6615K kernel code, 317K rwdata, 2348K rodata, 264K init, 265K bss, 15172K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc08c904c   (8965 kB)
    [    0.000000]       .init : 0xc08ca000 - 0xc090c000   ( 264 kB)
    [    0.000000]       .data : 0xc090c000 - 0xc095b6f0   ( 318 kB)
    [    0.000000]        .bss : 0xc095b6f0 - 0xc099de18   ( 266 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] 	Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000017] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000045] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000057] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000285] clocksource_probe: no matching clocksources found
    [    0.000502] Console: colour dummy device 80x30
    [    0.000533] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [    0.000542] This ensures that you still see kernel messages. Please
    [    0.000550] update your kernel commandline.
    [    0.000571] Calibrating delay loop... 597.60 BogoMIPS (lpj=2988032)
    [    0.118775] pid_max: default: 32768 minimum: 301
    [    0.118930] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.118944] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.119790] Initializing cgroup subsys io
    [    0.119827] Initializing cgroup subsys memory
    [    0.119871] Initializing cgroup subsys devices
    [    0.119890] Initializing cgroup subsys freezer
    [    0.119908] Initializing cgroup subsys perf_event
    [    0.119923] Initializing cgroup subsys pids
    [    0.119956] CPU: Testing write buffer coherency: ok
    [    0.120411] Setting up static identity map for 0x80008200 - 0x80008260
    [    0.123142] devtmpfs: initialized
    [    0.140487] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.159728] omap_hwmod: debugss: _wait_target_disable failed
    [    0.217910] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.222636] pinctrl core: initialized pinctrl subsystem
    [    0.224218] NET: Registered protocol family 16
    [    0.226935] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.248784] cpuidle: using governor ladder
    [    0.278772] cpuidle: using governor menu
    [    0.284558] OMAP GPIO hardware version 0.1
    [    0.295245] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_s0, deferring probe
    [    0.299108] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.339781] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.345444] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [    0.345518] omap_i2c 4819c000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c2_pins, deferring probe
    [    0.345699] media: Linux media interface: v0.10
    [    0.345782] Linux video capture interface: v2.00
    [    0.345858] pps_core: LinuxPPS API ver. 1 registered
    [    0.345869] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.345907] PTP clock support registered
    [    0.345984] EDAC MC: Ver: 3.0.0
    [    0.347444] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.347886] Advanced Linux Sound Architecture Driver Initialized.
    [    0.349492] clocksource: Switched to clocksource timer1
    [    0.363683] NET: Registered protocol family 2
    [    0.364643] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.364714] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.364775] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.364863] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.364888] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.365077] NET: Registered protocol family 1
    [    0.365552] RPC: Registered named UNIX socket transport module.
    [    0.365571] RPC: Registered udp transport module.
    [    0.365579] RPC: Registered tcp transport module.
    [    0.365588] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.366713] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    0.369256] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.380132] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.381160] NFS: Registering the id_resolver key type
    [    0.381241] Key type id_resolver registered
    [    0.381252] Key type id_legacy registered
    [    0.381346] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.385814] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
    [    0.385850] io scheduler noop registered
    [    0.385868] io scheduler deadline registered
    [    0.386095] io scheduler cfq registered (default)
    [    0.387912] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.392080] backlight supply power not found, using dummy regulator
    [    0.473569] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.478631] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
    [    1.107202] console [ttyS0] enabled
    [    1.112161] [drm] Initialized drm 1.1.0 20060810
    [    1.118183] panel panel: found backlight
    [    1.123928] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    1.130713] [drm] No driver support for vblank timestamp query.
    [    1.168654] Console: switching to colour frame buffer device 100x30
    [    1.183153] tilcdc 4830e000.lcdc: fb0:  frame buffer device
    [    1.209722] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0
    [    1.224430] loop: module loaded
    [    1.232575] libphy: Fixed MDIO Bus: probed
    [    1.239417] mousedev: PS/2 mouse device common for all mice
    [    1.246090] rtc-mcp795 spi1.0: 1.SPI setup done....
    [    1.251549] rtc-mcp795 spi1.0: 1. Read RTC called.....!!!!!
    [    1.257539] rtc-mcp795 spi1.0: rtc core: registered rtc-mcp795 as rtc0
    [    1.264179] rtc-mcp795 spi1.0: 2.devm_rtc_device_register done....
    [    1.270487] i2c /dev entries driver
    [    1.275461] cpuidle: enable-method property 'ti,am3352' found operations
    [    1.309803] pinctrl-single 44e10800.pinmux: pin 44e1099c.0 already requested by 481a0000.spi; cannot claim for 47810000.mmc
    [    1.321086] pinctrl-single 44e10800.pinmux: pin-103 (47810000.mmc) status -22
    [    1.328299] pinctrl-single 44e10800.pinmux: could not request pin 103 (44e1099c.0) from group pinmux_wlan_pins  on device pinctrl-single
    [    1.340743] omap_hsmmc 47810000.mmc: Error applying setting, reverse things back
    [    1.468206] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.491542] NET: Registered protocol family 10
    [    1.497484] sit: IPv6 over IPv4 tunneling driver
    [    1.510587] NET: Registered protocol family 17
    [    1.515470] Key type dns_resolver registered
    [    1.529830] omap_voltage_late_init: Voltage driver support not added
    [    1.552102] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [    1.557294] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.581135] nand: device found, Manufacturer ID: 0x98, Chip ID: 0xda
    [    1.587523] nand: Toshiba NAND 256MiB 3,3V 8-bit
    [    1.596515] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 128
    [    1.612673] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
    [    1.618127] 10 ofpart partitions found on MTD device 8000000.nand
    [    1.639501] Creating 10 MTD partitions on "8000000.nand":
    [    1.649516] 0x000000000000-0x000000020000 : "NAND.SPL"
    [    1.660786] 0x000000020000-0x000000040000 : "NAND.SPL.backup1"
    [    1.678732] 0x000000040000-0x000000060000 : "NAND.SPL.backup2"
    [    1.690918] 0x000000060000-0x000000080000 : "NAND.SPL.backup3"
    [    1.710967] 0x000000080000-0x0000000c0000 : "NAND.u-boot-spl-os"
    [    1.718549] 0x0000000c0000-0x0000001c0000 : "NAND.u-boot"
    [    1.740552] 0x0000001c0000-0x0000001e0000 : "NAND.u-boot-env"
    [    1.747907] 0x0000001e0000-0x000000200000 : "NAND.u-boot-env.backup1"
    [    1.770914] 0x000000200000-0x000000a00000 : "NAND.kernel"
    [    1.790947] 0x000000a00000-0x000010000000 : "NAND.file-system"
    [    2.019729] tps65910 0-002d: No interrupt support, no core IRQ
    [    2.055437] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    2.089576] edt_ft5x06 2-0038: i2c transfer failed: 0xffffff87 
    [    2.095536] edt_ft5x06 2-0038: touchscreen probe failed
    [    2.109562] edt_ft5x06: probe of 2-0038 failed with error -121
    [    2.129581] omap_i2c 4819c000.i2c: bus 2 rev0.11 at 400 kHz
    [    2.136500] vmmc: supplied by vbat
    [    2.179851] vdd_mpu: supplied by vbat
    [    2.184955] ubi0: attaching mtd9
    [    3.462382] mmc1: MAN_BKOPS_EN bit is not set
    [    3.472257] mmc1: new high speed MMC card at address 0001
    [    3.487229] mmcblk0: mmc1:0001 004G60 3.69 GiB 
    [    3.499792] mmcblk0boot0: mmc1:0001 004G60 partition 1 2.00 MiB
    [    3.509564] mmcblk0boot1: mmc1:0001 004G60 partition 2 2.00 MiB
    [    3.827726] ubi0: scanning is finished
    [    3.841777] ubi0: attached mtd9 (name "NAND.file-system", size 246 MiB)
    [    3.848527] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
    [    3.855489] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
    [    3.862273] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
    [    3.869268] ubi0: good PEBs: 1966, bad PEBs: 2, corrupted PEBs: 0
    [    3.875434] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
    [    3.882710] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 71294218
    [    3.891753] ubi0: available PEBs: 0, total reserved PEBs: 1966, PEBs reserved for bad PEB handling: 38
    [    3.901131] ubi0: background thread "ubi_bgt0d" started, PID 67
    [    3.908239] input: volume_keys@0 as /devices/platform/volume_keys@0/input/input1
    [    3.916642] rtc-mcp795 spi1.0: 1. Read RTC called.....!!!!!
    [    3.922327] rtc-mcp795 spi1.0: setting system clock to 2016-12-15 03:03:11 UTC (1481770991)
    [    3.935251] lis3_reg: disabling
    [    3.938438] wlan-en-regulator: disabling
    [    3.943059] ALSA device list:
    [    3.946053]   No soundcards found.
    [    3.955419] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 68
    [    4.011954] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
    [    4.019414] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
    [    4.029512] UBIFS (ubi0:0): FS size: 242905088 bytes (231 MiB, 1913 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
    [    4.040314] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
    [    4.046185] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID E729169E-45DF-4695-84C1-89D864A4AF44, small LPT model
    [    4.059634] VFS: Mounted root (ubifs filesystem) on device 0:15.
    [    4.067215] devtmpfs: mounted
    [    4.070746] Freeing unused kernel memory: 264K (c08ca000 - c090c000)
    [    4.077129] This architecture does not have kernel memory protection.
    [    4.338602] random: systemd: uninitialized urandom read (16 bytes read, 28 bits of entropy available)
    [    4.371446] random: systemd: uninitialized urandom read (16 bytes read, 28 bits of entropy available)
    [    4.394778] systemd[1]: systemd 229 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
    [    4.414739] systemd[1]: Detected architecture arm.
    
    Welcome to Arago 2016.10!
    
    [    4.442346] systemd[1]: Set hostname to <am335x-evm>.
    [    4.628925] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 28 bits of entropy available)
    [    4.676678] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
    [    4.738331] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
    [    4.799799] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
    [    4.809986] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
    [    4.820686] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
    [    4.888737] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
    [    4.924668] random: systemd: uninitialized urandom read (16 bytes read, 29 bits of entropy available)
    [    5.212849] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
    [    5.245202] systemd[1]: Created slice System Slice.
    [  OK  ] Created slice System Slice.
    [    5.270557] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password Requests to Wall Directory Watch.
    [    5.300302] systemd[1]: Listening on Syslog Socket.
    [  OK  ] Listening on Syslog Socket.
    [    5.331514] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [    5.361277] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password Requests to Console Directory Watch.
    [    5.389971] systemd[1]: Reached target Paths.
    [  OK  ] Reached target Paths.
    [    5.412523] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [    5.442395] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    5.469996] systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    [    5.490013] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    5.510366] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    5.548559] systemd[1]: Mounting Temporary Directory...
             Mounting Temporary Directory...
    [    5.595714] systemd[1]: Starting Remount Root and Kernel File Systems...
             Starting Remount Root and Kernel File Systems...
    [    5.696287] systemd[1]: Mounting POSIX Message Queue File System...
             Mounting POSIX Message Queue File System...
    [    5.814677] systemd[1]: Starting Setup Virtual Console...
             Starting Setup Virtual Console...
    [    5.866185] systemd[1]: Starting Create Static Device Nodes in /dev...
             Starting Create Static Device Nodes in /dev...
    [    5.925327] systemd[1]: Mounting Debug File System...
             Mounting Debug File System...
    [    5.980728] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [    6.020433] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    6.060093] systemd[1]: Reached target Remote File Systems.
    [  OK  ] Reached target Remote File Systems.
    [    6.090369] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    6.146465] systemd[1]: Starting Journal Service...
             Starting Journal Service...
    [    6.195589] systemd[1]: Starting Apply Kernel Variables...
             Starting Apply Kernel Variables...
    [    6.252527] systemd[1]: Created slice system-getty.slice.
    [  OK  ] Created slice system-getty.slice.
    [    6.317936] systemd[1]: Mounted Debug File System.
    [  OK  ] Mounted Debug File System.
    [    6.360256] systemd[1]: Mounted POSIX Message Queue File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [    6.400280] systemd[1]: Mounted Temporary Directory.
    [  OK  ] Mounted Temporary Directory.
    [    6.414872] systemd[1]: Started Remount Root and Kernel File Systems.
    [  OK  ] Started Remount Root and Kernel File Systems.
    [    6.462987] systemd[1]: Started Setup Virtual Console.
    [  OK  ] Started Setup Virtual Console.
    [    6.482911] systemd[1]: Started Create Static Device Nodes in /dev.
    [  OK  ] Started Create Static Device Nodes in /dev.
    [    6.523385] systemd[1]: Started Apply Kernel Variables.
    [  OK  ] Started Apply Kernel Variables.
    [    6.561304] systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.
             Starting udev Kernel Device Manager...
             Starting udev Coldplug all Devices...
             Starting Flush Journal to Persistent Storage...
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
    [  OK  ] Mounted /var/volatile.
    [  OK  ] Mounted /media/ram.
    [  OK  ] Started udev Kernel Device Manager.
    [    9.352399] systemd-journald[109]: Received request to flush runtime journal from PID 1
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
             Starting Load/Save Random Seed...
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Started Create Volatile Files and Directories.
    [  OK  ] Found device /dev/ttyS0.
    [  OK  ] Started udev Coldplug all Devices.
    [  OK  ] Created slice system-systemd\x2dbacklight.slice.
             Starting Load/Save Screen Backlight...htness of backlight:backlight...
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Started Load/Save Screen Backlight Brightness of backlight:backlight.
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Found device /dev/ttyS3.
    [  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
    [  OK  ] Reached target System Time Synchronized.
             Starting Synchronize System and HW clocks...
    [   15.927737] rtc-mcp795 spi1.0: 2.Write RTC called.....!!!!!
    [   15.956001] rtc-mcp795 spi1.0: 1. Read RTC called.....!!!!!
    [  OK  ] Started Synchronize System and HW clocks.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
             Starting Print notice about GPLv3 packages...
             Starting Permit User Sessions...
    [  OK  ] Started D-Bus System Message Bus.
             Starting Network Service...
    [  OK  ] Started System Logging Service.
             Starting telnetd.service...
    [  OK  ] Started Kernel Logging Service.
             Starting Login Service...
    [  OK  ] Started Permit User Sessions.
    [  OK  ] Started telnetd.service.
    [  OK  ] Started Network Service.
    [  OK  ] Reached target Network.
             Starting Network Name Resolution...
             Starting thttpd.service...
    [  OK  ] Started Serial Getty on ttyS0.
    [  OK  ] Started Getty on tty1.
    [  OK  ] Started Serial Getty on ttyS3.
    [  OK  ] Started Login Service.
    [  OK  ] Started thttpd.service.
    [  OK  ] Started Network Name Resolution.
             Starting rng-tools.service...
    [   22.118865] random: nonblocking pool is initialized
    [  OK  ] Started rng-tools.service.
             Starting thermal-zone-init.service...
    [  OK  ] Started thermal-zone-init.service.
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
    	binutils
    	dosfstools
    	m4
    
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    [  OK  ] Started Print notice about GPLv3 packages.
    [   26.170736] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
    [   26.171191] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.172142] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.187397] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.188334] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.203182] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
    [   26.203510] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.204481] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.219354] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
    [   26.219672] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.220628] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   26.281765] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
    
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project http://arago-project.org am335x-evm ttyS0
    
    Arago 2016.10 am335x-evm ttyS0
    
    am335x-evm login: 
    

    [    2.095536] edt_ft5x06 2-0038: touchscreen probe failed

    [    2.109562] edt_ft5x06: probe of 2-0038 failed with error -121

    While executing the edt_ft5x06_ts_probe() function from edt-ft5x06.c file, it fails when it tries to read the EDT NAME. Because which kernel message is getting logged.

    error = edt_ft5x06_ts_identify(client, tsdata, fw_version);

    if (error) {

    dev_err(&client->dev, "touchscreen probe failed\n");

    return error;

    }

    I am not able to understand why the I2C clock is not coming out of the processor.

    Regards,

    Anil

  • I am also bringing up a touchscreen that uses that controller right now. When I couldn't see the device on i2c at all, it was because we were holding down its reset line with a pull down resistor. We based the design on a reference board that had a touchscreen controller whose reset line operated the opposite of this one. Hope this helps, -Nathan
  • Hi Nathan,

    From the capacitive touch screen panel, Reset signal was not brought out to the connector side. Please find the below connector which has the provision to connect SCK, SCL, WAKE, INT, VCC and GND signals only. 

    In such case its difficult to control the reset signal from the processor GPIO lines. I am not sure that how the reset control is take care. i believe Reset signal is taken care at the touch panel module side that may the reason that not bringing out the reset signal to the connector side to control from the processor.

    Kindly share your thought on this.

    Regards,

    Anil

  • forgot to attach the connector details on the post.

  • Hi All,

    any updates...

    thanks,
    Anil
  • Hi All,

    I have observed the following behavior of pin control  for Touch screen signal (WAKE and INT)

    cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-functions
    function: edt_ft5406_ts_pins, groups = [ edt_ft5406_ts_pins ]
    function: pinmux_i2c2_pins, groups = [ pinmux_i2c2_pins ]

    cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups
    group: pinmux_i2c2_pins
    pin 95 (44e1097c.0)
    pin 94 (44e10978.0)
    group: edt_ft5406_ts_pins
    pin 106 (44e109a8.0)
    pin 104 (44e109a0.0)

    cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-pins
    pin 94 (44e10978.0): 4819c000.i2c (GPIO UNCLAIMED) function pinmux_i2c2_pins group pinmux_i2c2_pins
    pin 95 (44e1097c.0): 4819c000.i2c (GPIO UNCLAIMED) function pinmux_i2c2_pins group pinmux_i2c2_pins
    pin 104 (44e109a0.0):(MUX UNCLAIMED) (GPIO UNCLAIMED)
    pin 106 (44e109a8.0):(MUX UNCLAIMED) (GPIO UNCLAIMED)

    I am not able to understand why touch screen (edt_ft5406) not claiming for the pins. What is wrong in device tree configuration(device tree maintained above in this thread)

    Please any one check and suggest solution for this issue.

    Thanks,

    Anil



  • Hi Anil,

    Do you have the CONFIG_GPIOLIB enabled in your kernel?
    As a second point can you try enabling the internal pullups on gpio pins?

    Best Regards,
    Yordan
  • Hi Yordan,

    1)  Do you have the CONFIG_GPIOLIB enabled in your kernel?  --> Yes, It's enabled in kernel

    2) As a second point can you try enabling the internal pullups on gpio pins?

    My device tree configuration for touch is as following :
    i2c2_pins: pinmux_i2c2_pins {
            pinctrl-single,pins = <
                    0x17c ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D17) uart1_rtsn.I2C2_SCL */
                    0x178 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D18) uart1_ctsn.I2C2_SDA */
            >;
        };

        edt_ft5406_ts_pins: edt_ft5406_ts_pins {
                    pinctrl-single,pins = <
                        0x1a8 ( PIN_INPUT | MUX_MODE7 ) /* (D13) mcasp0_axr1.gpio3[20] */
                        0x1a0 ( PIN_OUTPUT| MUX_MODE7 ) /* (B12) mcasp0_aclkr.gpio3[18] */
                    >;
            };

        &i2c2 {
               status = "okay";
               pinctrl-names = "default";
               pinctrl-0 = <&i2c2_pins>;
               clock-frequency = <400000>;
               edt-ft5406@38 {
                    status = "okay";
                    compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
                    pinctrl-names = "default";
                    pinctrl-0 = <&edt_ft5406_ts_pins>;
                    reg = <0x38>;
                    interrupt-parent = <&gpio3>;
                    interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
                    wakeup-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;

                    touchscreen-size-x = <800>;
                    touchscreen-size-y = <480>;
               };
        };

    I will change touch screen related pins/signal as below and test.Please correct me if anything is wrong in device tree configuration.

    dt_ft5406_ts_pins: edt_ft5406_ts_pins {
                    pinctrl-single,pins = <
                        0x1a8 ( PIN_INPUT_PULLUP | MUX_MODE7 ) /* (D13) mcasp0_axr1.gpio3[20] */
                        0x1a0 ( PIN_OUTPUT_PULLUP | MUX_MODE7 ) /* (B12) mcasp0_aclkr.gpio3[18] */
                    >;
            };

    Thanks,
    Anil

  • Hi Anil,

    I will change touch screen related pins/signal as below and test.Please correct me if anything is wrong in device tree configuration.

    dt_ft5406_ts_pins: edt_ft5406_ts_pins {
    pinctrl-single,pins = <
    0x1a8 ( PIN_INPUT_PULLUP | MUX_MODE7 ) /* (D13) mcasp0_axr1.gpio3[20] */
    0x1a0 ( PIN_OUTPUT_PULLUP | MUX_MODE7 ) /* (B12) mcasp0_aclkr.gpio3[18] */
    >;
    };


    Yes, this is what I meant by enabling internal pullups on GPIO pins.

    Best Regards,
    Yordan
  • Hi Yordan,

    As per suggestion ,enabled  internal pullups on both pins,but issue is remain same.

    1. root@am335x-evm:~# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups
    group: edt_ft5406_ts_pins
    pin 106 (44e109a8.0)
    pin 104 (44e109a0.0)


    2. root@am335x-evm:~# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-pins
    Pinmux settings per pin
    Format: pin (name): mux_owner gpio_owner hog?
    pin 100 (44e10990.0): 481a0000.spi (GPIO UNCLAIMED) function pinmux_spi1_pins group pinmux_spi1_pins
    pin 101 (44e10994.0): 481a0000.spi (GPIO UNCLAIMED) function pinmux_spi1_pins group pinmux_spi1_pins
    pin 102 (44e10998.0): 481a0000.spi (GPIO UNCLAIMED) function pinmux_spi1_pins group pinmux_spi1_pins
    pin 103 (44e1099c.0): 481a0000.spi (GPIO UNCLAIMED) function pinmux_spi1_pins group pinmux_spi1_pins
    pin 104 (44e109a0.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
    pin 105 (44e109a4.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
    pin 106 (44e109a8.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
    pin 107 (44e109ac.0): 44e10800.pinmux (GPIO UNCLAIMED) function ddr3_vtt_toggle group ddr3_vtt_toggle
    pin 108 (44e109b0.0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
    pin 109 (44e109b4.0): 44e10800.pinmux (GPIO UNCLAIMED) function pinmux_clkout2_pin group pinmux_clkout2_pin

    3. boot log for touchscreen
    root@am335x-evm:~# dmesg | grep edt
    [    1.390418] ledtrig-cpu: registered to indicate activity on CPUs
    [   11.368370] edt_ft5x06 2-0038: GPIO lookup for consumer reset
    [   11.368404] edt_ft5x06 2-0038: using device tree for GPIO lookup
    [   11.368425] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/i2c@4819c000/edt-ft5406@38[0]'
    [   11.368440] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/i2c@4819c000/edt-ft5406@38[0]'
    [   11.368453] edt_ft5x06 2-0038: using lookup tables for GPIO lookup
    [   11.368468] edt_ft5x06 2-0038: lookup for GPIO reset failed
    [   11.368483] edt_ft5x06 2-0038: GPIO lookup for consumer wake
    [   11.368494] edt_ft5x06 2-0038: using device tree for GPIO lookup
    [   11.368507] of_get_named_gpiod_flags: can't parse 'wake-gpios' property of node '/ocp/i2c@4819c000/edt-ft5406@38[0]'
    [   11.368520] of_get_named_gpiod_flags: can't parse 'wake-gpio' property of node '/ocp/i2c@4819c000/edt-ft5406@38[0]'
    [   11.368533] edt_ft5x06 2-0038: using lookup tables for GPIO lookup
    [   11.368545] edt_ft5x06 2-0038: lookup for GPIO wake failed
    [   11.459917] edt_ft5x06 2-0038: touchscreen probe failed
    [   11.465283] edt_ft5x06: probe of 2-0038 failed with error -121

    Thanks,

    Anil


     

  • Hi All,

    Any update regarding this issue.

    Thanks,

    Anil

  • Hi Anil,

    Latest SDKs use u-boot to set pinmux. Can you verify that these gpio pins are not used in u-boot for other function in your system?

    Best Regards,
    Yordan