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: Interfacing 7'inch capacitive touch display to beaglebone black

Part Number: PROCESSOR-SDK-AM335X
Other Parts Discussed in Thread: TPS65217

Tool/software: Linux

Hi,

we are Interfacing 7'inch capacitive touch display to beaglebone black using i2c1. we updated the dts file to add touch driver under i2c1 in am335x-boneblack.dts file and please find dts modification below.

And we have inserted edt_ft5x06, but touch inputs are not sensing, Kindly suggest what wrong.

 

 

am335x-boneblack.dts:

#include <dt-bindings/interrupt-controller/irq.h>

&i2c1 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c1_pins>;

    status = "okay";
    clock-frequency = <400000>;

        ft5x06_ts@38 {
        compatible = "ft5x06-ts";
        reg = <0x38>;
        interrupt-parent = <&gpio0>;
        /*interrupts = <28 IRQ_TYPE_LEVEL_LOW>;  gpio 31 */
                interrupts-extended = <&gpio0 28 IRQ_TYPE_EDGE_FALLING>;
        wakeup-gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;        
    };    
};

Terminal window:

root@am335x-evm:/lib/modules/4.14.67-gd315a9bb00/kernel/drivers/input/touchscreen# insmod edt-ft5x06.ko
root@am335x-evm:/lib/modules/4.14.67-gd315a9bb00/kernel/drivers/input/touchscreen# modprobe edt-ft5x06.ko
modprobe: FATAL: Module edt-ft5x06.ko not found in directory /lib/modules/4.14.67-gd315a9bb00
root@am335x-evm:~# lsmod
Module                  Size  Used by
edt_ft5x06             20480  0
sha512_generic         20480  0
sha512_arm             24576  0
sha256_generic         20480  0
sha1_generic           16384  0
sha1_arm_neon          20480  0
sha1_arm               16384  1 sha1_arm_neon
md5                    16384  0
aes_arm_bs             20480  0
crypto_simd            16384  1 aes_arm_bs
cryptd                 24576  1 crypto_simd
des_generic            28672  0
cbc                    16384  0
xfrm_user              32768  2
xfrm4_tunnel           16384  0
ipcomp                 16384  0
xfrm_ipcomp            16384  1 ipcomp
esp4                   20480  0
ah4                    16384  0
af_key                 36864  0
xfrm_algo              16384  5 xfrm_user,esp4,ah4,af_key,xfrm_ipcomp
bc_example             16384  0
pru_rproc              20480  0
pruss_intc             16384  1 pru_rproc
pruss                  16384  1 pru_rproc
usb_f_acm              16384  1
u_serial               20480  3 usb_f_acm
usb_f_ecm              16384  1
musb_dsps              20480  0
phy_am335x             16384  2
phy_generic            16384  1 phy_am335x
musb_hdrc              98304  1 musb_dsps
phy_am335x_control     16384  1 phy_am335x
g_multi                16384  0
usb_f_mass_storage     40960  2 g_multi
usb_f_rndis            24576  2 g_multi
u_ether                20480  3 usb_f_ecm,g_multi,usb_f_rndis
libcomposite           53248  5 usb_f_ecm,usb_f_acm,usb_f_mass_storage,g_multi,usb_f_rndis
udc_core               28672  8 usb_f_ecm,usb_f_acm,usb_f_mass_storage,u_serial,musb_hdrc,u_ether,usb_f_rndis,libcomposite
snd_soc_simple_card    16384  0
snd_soc_simple_card_utils    16384  1 snd_soc_simple_card
pm33xx                 16384  0
wkup_m3_ipc            16384  1 pm33xx
wkup_m3_rproc          16384  1
remoteproc             40960  3 pru_rproc,wkup_m3_rproc,wkup_m3_ipc
pvrsrvkm              413696  1 bc_example
omap_aes_driver        24576  0
crypto_engine          16384  1 omap_aes_driver
omap_crypto            16384  1 omap_aes_driver
omap_sham              28672  0
ti_emif_sram           16384  1 pm33xx
pruss_soc_bus          16384  0
at24                   16384  0
rtc_omap               20480  2
musb_am335x            16384  0
omap_wdt               16384  0
sch_fq_codel           20480  3
uio_module_drv         16384  0
uio                    20480  1 uio_module_drv
ftdi_sio               40960  0
usbserial              36864  1 ftdi_sio
usbcore               204800  3 ftdi_sio,musb_hdrc,usbserial
usb_common             16384  6 phy_am335x,udc_core,musb_hdrc,libcomposite,musb_dsps,usbcore
cryptodev              45056  1

root@am335x-evm:~# ps -aef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  1 01:53 ?        00:00:04 /sbin/init
root         2     0  0 01:53 ?        00:00:00 [kthreadd]
root         3     2  0 01:53 ?        00:00:00 [kworker/0:0]
root         4     2  0 01:53 ?        00:00:00 [kworker/0:0H]
root         5     2  0 01:53 ?        00:00:00 [kworker/u2:0]
root         6     2  0 01:53 ?        00:00:00 [mm_percpu_wq]
root         7     2  0 01:53 ?        00:00:00 [ksoftirqd/0]
root         8     2  0 01:53 ?        00:00:00 [rcu_preempt]
root         9     2  0 01:53 ?        00:00:00 [rcu_sched]
root        10     2  0 01:53 ?        00:00:00 [rcu_bh]
root        11     2  0 01:53 ?        00:00:00 [kdevtmpfs]
root        12     2  0 01:53 ?        00:00:00 [netns]
root        13     2  0 01:53 ?        00:00:00 [kworker/0:1]
root        14     2  0 01:53 ?        00:00:00 [oom_reaper]
root        15     2  0 01:53 ?        00:00:00 [writeback]
root        16     2  0 01:53 ?        00:00:00 [kcompactd0]
root        17     2  0 01:53 ?        00:00:00 [crypto]
root        18     2  0 01:53 ?        00:00:00 [kblockd]
root        19     2  0 01:53 ?        00:00:00 [edac-poller]
root        20     2  0 01:53 ?        00:00:00 [watchdogd]
root        21     2  0 01:53 ?        00:00:00 [rpciod]
root        22     2  0 01:53 ?        00:00:00 [xprtiod]
root        23     2  0 01:53 ?        00:00:00 [kswapd0]
root        24     2  0 01:53 ?        00:00:00 [nfsiod]
root        36     2  0 01:53 ?        00:00:00 [kpcitest]
root        37     2  0 01:53 ?        00:00:00 [kworker/u2:1]
root        39     2  0 01:53 ?        00:00:00 [irq/58-48060000]
root        40     2  0 01:53 ?        00:00:01 [kworker/0:2]
root        41     2  0 01:53 ?        00:00:00 [irq/54-48038000]
root        42     2  0 01:53 ?        00:00:00 [irq/53-48038000]
root        43     2  0 01:53 ?        00:00:00 [ipv6_addrconf]
root        44     2  0 01:53 ?        00:00:01 [mmcqd/0]
root        45     2  0 01:53 ?        00:00:00 [kworker/0:3]
root        46     2  0 01:53 ?        00:00:00 [irq/32-44e0b000]
root        47     2  0 01:53 ?        00:00:00 [kworker/0:4]
root        48     2  0 01:53 ?        00:00:00 [irq/59-tps65217]
root        49     2  0 01:53 ?        00:00:00 [irq/33-4802a000]
root        50     2  0 01:53 ?        00:00:00 [irq/34-4819c000]
root        51     2  0 01:53 ?        00:00:00 [kworker/0:1H]
root        52     2  0 01:53 ?        00:00:00 [mmcqd/1]
root        53     2  0 01:53 ?        00:00:00 [mmcqd/1boot0]
root        54     2  0 01:53 ?        00:00:00 [mmcqd/1boot1]
root        55     2  0 01:53 ?        00:00:00 [mmcqd/1rpmb]
root        56     2  0 01:53 ?        00:00:00 [jbd2/mmcblk0p2-]
root        57     2  0 01:53 ?        00:00:00 [ext4-rsv-conver]
root        68     2  0 01:53 ?        00:00:00 [cryptodev_queue]
root        71     1  0 01:53 ?        00:00:01 /lib/systemd/systemd-journald
root        86     2  0 01:53 ?        00:00:00 [kworker/u2:2]
root        89     1  0 01:53 ?        00:00:01 /lib/systemd/systemd-udevd
systemd+    96     1  0 01:53 ?        00:00:00 /lib/systemd/systemd-timesyncd
systemd+   169     1  0 01:53 ?        00:00:00 /lib/systemd/systemd-networkd
root       173     1  0 01:53 ?        00:00:00 /sbin/syslogd -n
root       186     1  0 01:53 ?        00:00:00 /sbin/klogd -n
root       192     1  0 01:53 ?        00:00:00 /usr/sbin/crond -n
message+   208     1  0 01:53 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
rpc        212     1  0 01:53 ?        00:00:00 /usr/sbin/rpcbind
root       218     2  0 01:53 ?        00:00:00 [53500000.aes-en]
root       232     2  0 01:53 ?        00:00:00 [pvr_timer]
root       272     1  0 01:53 ?        00:00:00 /usr/sbin/atd -f
root       295     1  0 01:53 ?        00:00:00 /usr/sbin/rngd -f -r /dev/urandom
root       300     1  0 01:53 ?        00:00:00 /lib/systemd/systemd-logind
avahi      318     1  0 01:53 ?        00:00:00 avahi-daemon: running [am335x-evm.local]
root       338     2  0 01:53 ?        00:00:00 [ptp0]
avahi      340   318  0 01:53 ?        00:00:00 avahi-daemon: chroot helper
root       394     2  0 01:53 ?        00:00:00 [jbd2/mmcblk1p1-]
root       395     2  0 01:53 ?        00:00:00 [ext4-rsv-conver]
root       500     1  0 01:53 ?        00:00:00 /usr/sbin/snmpd -Ls0-6d -a -f
redis      506     1  0 01:53 ?        00:00:01 /usr/bin/redis-server 127.0.0.1:6379
systemd+   512     1  0 01:53 ?        00:00:00 /lib/systemd/systemd-resolved
root       519     1  0 01:53 ?        00:00:00 /usr/sbin/lighttpd -D -f /etc/lighttpd.conf
root       522     1  0 01:53 tty1     00:00:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
root       526     1  0 01:53 ttyS0    00:00:00 /bin/login --
root       551     2  0 01:53 ?        00:00:00 [file-storage]
root       554     1  0 01:53 ttyGS0   00:00:00 /sbin/agetty -8 -L ttyGS0 115200 xterm
rpcuser    560     1  0 01:53 ?        00:00:00 /usr/sbin/rpc.statd -F
root       576     2  0 01:53 ?        00:00:00 [pvr_workqueue]
root       747     1  0 01:54 ?        00:00:00 /usr/sbin/telnetd
nobody     756     1  0 01:54 ?        00:00:00 /usr/sbin/thttpd -d /srv/www -p 8080
root       760     1  0 01:54 ?        00:00:00 /lib/systemd/systemd --user
root       761   760  0 01:54 ?        00:00:00 (sd-pam)
root       765   526  0 01:54 ttyS0    00:00:01 -sh
root       829     1  0 01:55 ?        00:00:00 /usr/libexec/ipsec/starter --daemon charon --nofork
root       865   829  0 01:55 ?        00:00:00 /usr/libexec/ipsec/charon
root       989     1  0 01:57 ?        00:00:00 /sbin/agetty -8 -L ttyS3 115200 xterm
root       990   765  0 01:57 ttyS0    00:00:00 ps -aef

root@am335x-evm:~# touch
touch                   touchpad-edge-detector  
root@am335x-evm:~# touch
touch                   touchpad-edge-detector  
root@am335x-evm:~# touchpad-edge-detector
Usage: touchpad-edge-detector 12x34 /dev/input/event0This tool reads the touchpad events from the kernel and calculates
 the minimum and maximum for the x and y coordinates, respectively.
The first argument is the physical size of the touchpad in mm.
root@am335x-evm:~#

  • Hi,
    Please note that due to US holiday the responses may be delayed until the week of November 26th.
  • Hi,

     

    We are waiting for your replay, still we have a problem with touch inputs, it's not sensing. We updated the dts file by add touch driver under i2c1 in am335x-bone-common.dtsi file and please find dts modification below. Kindly suggest what wrong.

    am335x-bone-common.dtsi:

    #include <dt-bindings/interrupt-controller/irq.h>

    &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c1_pins>;

        status = "okay";
        clock-frequency = <400000>;

            ft5x06_ts@38 {
            compatible = "ft5x06-ts";
            reg = <0x38>;
            interrupt-parent = <&gpio0>;
            /*interrupts = <28 IRQ_TYPE_LEVEL_LOW>;  gpio 31 */
                    interrupts-extended = <&gpio0 28 IRQ_TYPE_EDGE_FALLING>;
            wakeup-gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;        
        };    
    };

  • Why are you using compatible = ft5x06-ts in your device tree file?

    Please make sure your device tree entry matches the bindings document in your Processor SDK at Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt

    Regards,
    Nick

  • Hi,

    We did what you suggest, But we got a problem when we tried to calibrate the touch screen.It is showing could not load cursor as below. And that we are trying to list module, edt_ft5x06 is showing 0(zero) under used by. Please find below highlighted part. Kindly suggest what wrong.

    root@am335x-evm:~# weston-calibrator


    could not load cursor 'dnd-move'
    could not load cursor 'dnd-copy'
    could not load cursor 'dnd-none'

    root@am335x-evm:~# lsmod
    Module                  Size  Used by
    sha512_generic         20480  0
    sha512_arm             24576  0
    sha256_generic         20480  0
    sha1_generic           16384  0
    sha1_arm_neon          20480  0
    sha1_arm               16384  1 sha1_arm_neon
    md5                    16384  0
    aes_arm_bs             20480  0
    crypto_simd            16384  1 aes_arm_bs
    cryptd                 24576  1 crypto_simd
    des_generic            28672  0
    cbc                    16384  0
    xfrm_user              32768  2
    xfrm4_tunnel           16384  0
    ipcomp                 16384  0
    xfrm_ipcomp            16384  1 ipcomp
    esp4                   20480  0
    ah4                    16384  0
    af_key                 36864  0
    xfrm_algo              16384  5 xfrm_user,esp4,ah4,af_key,xfrm_ipcomp
    bc_example             16384  0
    pru_rproc              20480  0
    pruss_intc             16384  1 pru_rproc
    pruss                  16384  1 pru_rproc
    usb_f_acm              16384  1
    u_serial               20480  3 usb_f_acm
    usb_f_ecm              16384  1
    musb_dsps              20480  0
    phy_am335x             16384  2
    phy_am335x_control     16384  1 phy_am335x
    phy_generic            16384  1 phy_am335x
    musb_hdrc              98304  1 musb_dsps
    g_multi                16384  0
    usb_f_mass_storage     40960  2 g_multi
    usb_f_rndis            24576  2 g_multi
    u_ether                20480  3 usb_f_ecm,g_multi,usb_f_rndis
    libcomposite           53248  5 usb_f_ecm,usb_f_acm,usb_f_mass_storage,g_multi,usb_f_rndis
    udc_core               28672  8 usb_f_ecm,usb_f_acm,usb_f_mass_storage,u_serial,musb_hdrc,u_ether,usb_f_rndis,libcomposite
    snd_soc_simple_card    16384  0
    snd_soc_simple_card_utils    16384  1 snd_soc_simple_card
    pm33xx                 16384  0
    wkup_m3_ipc            16384  1 pm33xx
    wkup_m3_rproc          16384  1                                                     
    remoteproc             40960  3 pru_rproc,wkup_m3_rproc,wkup_m3_ipc                 
    pvrsrvkm              413696  5 bc_example                                          
    omap_aes_driver        24576  0                                                     
    crypto_engine          16384  1 omap_aes_driver                                     
    omap_sham              28672  0
    omap_crypto            16384  1 omap_aes_driver
    ti_emif_sram           16384  1 pm33xx
    pruss_soc_bus          16384  0
    edt_ft5x06             20480  0
    at24                   16384  0
    rtc_omap               20480  2
    omap_wdt               16384  0
    musb_am335x            16384  0
    sch_fq_codel           20480  3
    uio_module_drv         16384  0
    uio                    20480  1 uio_module_drv
    ftdi_sio               40960  0
    usbserial              36864  1 ftdi_sio
    usbcore               204800  3 ftdi_sio,musb_hdrc,usbserial
    usb_common             16384  6 phy_am335x,udc_core,musb_hdrc,libcomposite,musb_dsps,usbcore
    cryptodev              45056  1
    root@am335x-evm:~#

  • Please post your updated device tree.

    Take a look at the AM437x GP EVM device tree file for a reference of how to implement a capacitive touch screen (pixcir_ts). The AM437x GP EVM device tree file can be found in your SDK at board-support/linux-xxxx/arch/arm/boot/dts/am437x-gp-evm.dts.

    Regards,
    Nick
  • Hi,

    Please find the  updated dtsi file below. Kindly suggest what wrong.

    /*
     * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    #include <dt-bindings/interrupt-controller/irq.h>

    / {
        cpus {
            cpu@0 {
                cpu0-supply = <&dcdc2_reg>;
            };
        };

        memory@80000000 {
            device_type = "memory";
            reg = <0x80000000 0x10000000>; /* 256 MB */
        };

        chosen {
            stdout-path = &uart0;
        };

        leds {
            pinctrl-names = "default";
            pinctrl-0 = <&user_leds_s0>;

            compatible = "gpio-leds";

            led2 {
                label = "beaglebone:green:heartbeat";
                gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
                linux,default-trigger = "heartbeat";
                default-state = "off";
            };

            led3 {
                label = "beaglebone:green:mmc0";
                gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
                linux,default-trigger = "mmc0";
                default-state = "off";
            };

            led4 {
                label = "beaglebone:green:usr2";
                gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
                linux,default-trigger = "cpu0";
                default-state = "off";
            };

            led5 {
                label = "beaglebone:green:usr3";
                gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
                linux,default-trigger = "mmc1";
                default-state = "off";
            };
            
            7Inch_GPIO1 {
                gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
                default-state = "on";                
            };
            
            7Inch_GPIO2 {
                gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
                default-state = "on";                
            };
            
            7Inch_GPIO3 {
                gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;    
                default-state = "on";                
            };
            
        };

        vmmcsd_fixed: fixedregulator0 {
            compatible = "regulator-fixed";
            regulator-name = "vmmcsd_fixed";
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
        };
    };

    &am33xx_pinmux {
        pinctrl-names = "default";
        pinctrl-0 = <&clkout2_pin>;

        user_leds_s0: user_leds_s0 {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE7)    /* gpmc_a5.gpio1_21 */
                AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLUP | MUX_MODE7)    /* gpmc_a6.gpio1_22 */
                AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLDOWN | MUX_MODE7)    /* gpmc_a7.gpio1_23 */
                AM33XX_IOPAD(0x860, PIN_OUTPUT_PULLUP | MUX_MODE7)    /* gpmc_a8.gpio1_24 */
                AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLUP | MUX_MODE7)    /* gpmc_a0.gpio1_16 */
                AM33XX_IOPAD(0x844, PIN_OUTPUT_PULLUP | MUX_MODE7)    /* gpmc_a1.gpio1_17 */            

            >;
        };

        7inch_ts_pins: 7inch_ts_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x878, PIN_OUTPUT_PULLUP | MUX_MODE7)    /* gpmc_ben1.gpio1_28 */
            >;
        };
        
        i2c1_pins: pinmux_i2c1_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_d1.i2c0_sda */
                AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE2)    /* spi0_cs0.i2c1_scl */
            >;
        };
        
        

        i2c0_pins: pinmux_i2c0_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_sda.i2c0_sda */
                AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_scl.i2c0_scl */
            >;
        };

        i2c2_pins: pinmux_i2c2_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_ctsn.i2c2_sda */
                AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_rtsn.i2c2_scl */
            >;
        };
        
        uart2_pins: pinmux_uart2_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x850, PIN_INPUT_PULLUP | MUX_MODE1)    /* spi0_sclk.uart2_rxd */
                AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE1)    /* spi0_d0.uart2_txd */
            >;
        };    
        
        uart0_pins: pinmux_uart0_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
                AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* uart0_txd.uart0_txd */
            >;
        };

        clkout2_pin: pinmux_clkout2_pin {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3)    /* xdma_event_intr1.clkout2 */
            >;
        };
        
        lcd_pins_default: lcd_pins_default {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad8.lcd_data23 */
                AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad9.lcd_data22 */
                AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad10.lcd_data21 */
                AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad11.lcd_data20 */
                AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad12.lcd_data19 */
                AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad13.lcd_data18 */
                AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad14.lcd_data17 */
                AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1)    /* gpmc_ad15.lcd_data16 */
                AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0)    /* lcd_data0.lcd_data0 */
                AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0)    /* lcd_data1.lcd_data1 */
                AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0)    /* lcd_data2.lcd_data2 */
                AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0)    /* lcd_data3.lcd_data3 */
                AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0)    /* lcd_data4.lcd_data4 */
                AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0)    /* lcd_data5.lcd_data5 */
                AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0)    /* lcd_data6.lcd_data6 */
                AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0)    /* lcd_data7.lcd_data7 */
                AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0)    /* lcd_data8.lcd_data8 */
                AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0)    /* lcd_data9.lcd_data9 */
                AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0)    /* lcd_data10.lcd_data10 */
                AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0)    /* lcd_data11.lcd_data11 */
                AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0)    /* lcd_data12.lcd_data12 */
                AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0)    /* lcd_data13.lcd_data13 */
                AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0)    /* lcd_data14.lcd_data14 */
                AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0)    /* lcd_data15.lcd_data15 */
                AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0)    /* lcd_vsync.lcd_vsync */
                AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0)    /* lcd_hsync.lcd_hsync */
                AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0)    /* lcd_pclk.lcd_pclk */
                AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0)    /* lcd_ac_bias_en.lcd_ac_bias_en */
            >;
        };


        ecap0_pins: backlight_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x964, MUX_MODE0)    /* ecap0_in_pwm0_out */
            >;
        };
        
        mcasp0_pins: mcasp0_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
                AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/
                AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
                AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
                AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
            >;
        };
        
        

        cpsw_default: cpsw_default {
            pinctrl-single,pins = <
                /* Slave 1 */
                AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxerr.mii1_rxerr */
                AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* mii1_txen.mii1_txen */
                AM33XX_IOPAD(0x918, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxdv.mii1_rxdv */
                AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* mii1_txd3.mii1_txd3 */
                AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* mii1_txd2.mii1_txd2 */
                AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* mii1_txd1.mii1_txd1 */
                AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* mii1_txd0.mii1_txd0 */
                AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_txclk.mii1_txclk */
                AM33XX_IOPAD(0x930, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxclk.mii1_rxclk */
                AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd3.mii1_rxd3 */
                AM33XX_IOPAD(0x938, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd2.mii1_rxd2 */
                AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd1.mii1_rxd1 */
                AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE0)    /* mii1_rxd0.mii1_rxd0 */
            >;
        };
        
            
        
        

        cpsw_sleep: cpsw_sleep {
            pinctrl-single,pins = <
                /* Slave 1 reset value */
                AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
            >;
        };

        davinci_mdio_default: davinci_mdio_default {
            pinctrl-single,pins = <
                /* MDIO */
                AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)    /* mdio_data.mdio_data */
                AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)            /* mdio_clk.mdio_clk */
            >;
        };

        davinci_mdio_sleep: davinci_mdio_sleep {
            pinctrl-single,pins = <
                /* MDIO reset value */
                AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
                AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
            >;
        };

        mmc1_pins: pinmux_mmc1_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7)        /* spio0_cs1.gpio0_6 */
                AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat0.mmc0_dat0 */
                AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat1.mmc0_dat1 */
                AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat2.mmc0_dat2 */
                AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat3.mmc0_dat3 */
                AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_cmd.mmc0_cmd */
                AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_clk.mmc0_clk */
                AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE4)        /* mcasp0_aclkr.mmc0_sdwp */
            >;
        };

        emmc_pins: pinmux_emmc_pins {
            pinctrl-single,pins = <
                AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
                AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
                AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
                AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
                AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
                AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
                AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
                AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
                AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
                AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
            >;
        };
    };

    &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pins>;

        status = "okay";
    };

    &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart2_pins>;

        status = "okay";
    };

    &usb {
        status = "okay";
    };

    &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c1_pins>;
        status = "okay";
        clock-frequency = <400000>;

            edt-ft5x06@38 {
            compatible = "edt-ft5x06";
            reg = <0x38>;
                    attb-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
            pinctrl-names = "default";        
                    pinctrl-0 = <&7inch_ts_pins>;
                    //interrupt-parent = <&gpio1>;        
                    //interrupts = <28 IRQ_TYPE_LEVEL_LOW>; /*  gpio 31 */
                    interrupts-extended = <&gpio1 28 IRQ_TYPE_EDGE_FALLING>,
                                          <&am33xx_pinmux 0x878>;
                    interrupt-names = "tsc", "wakeup";
            //wakeup-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;        
            touchscreen-size-x = <800>;
            touchscreen-size-y = <480>;
            wakeup-source;
        };    
    };


    &usb_ctrl_mod {
        status = "okay";
    };

    &usb0_phy {
        status = "okay";
    };

    &usb1_phy {
        status = "okay";
    };

    &usb0 {
        status = "okay";
        dr_mode = "peripheral";
        interrupts-extended = <&intc 18 &tps 0>;
        interrupt-names = "mc", "vbus";
    };

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

    &cppi41dma  {
        status = "okay";
    };

    &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0_pins>;

        status = "okay";
        clock-frequency = <400000>;

        tps: tps@24 {
            reg = <0x24>;
        };

        baseboard_eeprom: baseboard_eeprom@50 {
            compatible = "atmel,24c256";
            reg = <0x50>;

            #address-cells = <1>;
            #size-cells = <1>;
            baseboard_data: baseboard_data@0 {
                reg = <0 0x100>;
            };
        };
    };

    &i2c2 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c2_pins>;

        status = "okay";
        clock-frequency = <100000>;

        cape_eeprom0: cape_eeprom0@54 {
            compatible = "atmel,24c256";
            reg = <0x54>;
            #address-cells = <1>;
            #size-cells = <1>;
            cape0_data: cape_data@0 {
                reg = <0 0x100>;
            };
        };

        cape_eeprom1: cape_eeprom1@55 {
            compatible = "atmel,24c256";
            reg = <0x55>;
            #address-cells = <1>;
            #size-cells = <1>;
            cape1_data: cape_data@0 {
                reg = <0 0x100>;
            };
        };

        cape_eeprom2: cape_eeprom2@56 {
            compatible = "atmel,24c256";
            reg = <0x56>;
            #address-cells = <1>;
            #size-cells = <1>;
            cape2_data: cape_data@0 {
                reg = <0 0x100>;
            };
        };

        cape_eeprom3: cape_eeprom3@57 {
            compatible = "atmel,24c256";
            reg = <0x57>;
            #address-cells = <1>;
            #size-cells = <1>;
            cape3_data: cape_data@0 {
                reg = <0 0x100>;
            };
        };
    };
    &epwmss0 {
        status = "okay";

        ecap0: ecap@48300100 {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&ecap0_pins>;
        };
    };



    /include/ "tps65217.dtsi"

    &tps {
        /*
         * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
         * mode") at poweroff.  Most BeagleBone versions do not support RTC-only
         * mode and risk hardware damage if this mode is entered.
         *
         * For details, see linux-omap mailing list May 2015 thread
         *    [PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
         * In particular, messages:
         *    www.spinics.net/.../msg118585.html
         *    www.spinics.net/.../msg118615.html
         *
         * You can override this later with
         *    &tps {  /delete-property/ ti,pmic-shutdown-controller;  }
         * if you want to use RTC-only mode and made sure you are not affected
         * by the hardware problems. (Tip: double-check by performing a current
         * measurement after shutdown: it should be less than 1 mA.)
         */

        interrupts = <7>; /* NMI */
        interrupt-parent = <&intc>;

        ti,pmic-shutdown-controller;

        charger {
            status = "okay";
        };

        pwrbutton {
            status = "okay";
        };

        regulators {
            dcdc1_reg: regulator@0 {
                regulator-name = "vdds_dpr";
                regulator-always-on;
            };

            dcdc2_reg: regulator@1 {
                /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
                regulator-name = "vdd_mpu";
                regulator-min-microvolt = <925000>;
                regulator-max-microvolt = <1351500>;
                regulator-boot-on;
                regulator-always-on;
            };

            dcdc3_reg: regulator@2 {
                /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
                regulator-name = "vdd_core";
                regulator-min-microvolt = <925000>;
                regulator-max-microvolt = <1150000>;
                regulator-boot-on;
                regulator-always-on;
            };

            ldo1_reg: regulator@3 {
                regulator-name = "vio,vrtc,vdds";
                regulator-always-on;
            };

            ldo2_reg: regulator@4 {
                regulator-name = "vdd_3v3aux";
                regulator-always-on;
            };

            ldo3_reg: regulator@5 {
                regulator-name = "vdd_1v8";
                regulator-always-on;
            };

            ldo4_reg: regulator@6 {
                regulator-name = "vdd_3v3a";
                regulator-always-on;
            };
        };
    };

    &cpsw_emac0 {
        phy_id = <&davinci_mdio>, <0>;
        phy-mode = "mii";
    };

    &mac {
        slaves = <1>;
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&cpsw_default>;
        pinctrl-1 = <&cpsw_sleep>;
        status = "okay";
    };

    &davinci_mdio {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&davinci_mdio_default>;
        pinctrl-1 = <&davinci_mdio_sleep>;
        status = "okay";
    };

    &mmc1 {
        status = "okay";
        bus-width = <0x4>;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
        cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    };

    &aes {
        status = "okay";
    };

    &sham {
        status = "okay";
    };

    &rtc {
        clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
        clock-names = "ext-clk", "int-clk";
        system-power-controller;
    };

    &wkup_m3_ipc {
        ti,scale-data-fw = "am335x-bone-scale-data.bin";
    };

    &pruss_soc_bus {
        status = "okay";

        pruss: pruss@0 {
            status = "okay";
        };
    };

  • Hello there,

    To clarify: You are now able to calibrate the touchscreen, and the touchscreen is behaving as expected? Did you have to change anything in particular?

    I moved the color issue you brought up to this thread: e2e.ti.com/.../754373

    Regards,
    Nick