Hello everyone.
I am trying to use a 7" capacitive touch screen which uses the FT5316. I check online that this touch driver works with edt-ft5x06 driver that is already included in Toradex Kernel (toradex_4.9-2.3.x-imx).
I did the following step:
- Download the Linux Kernel Source. Branch
toradex_4.9-2.3.x-imx
referent to BSP version 2.8b5 and later.
$ mkdir -p ~/workdir
$ cd ~/workdir
$ git clone -b toradex_4.9-2.3.x-imx git://git.toradex.com/linux-toradex.git
- Set the Kernel configuration.
make colibri-imx6ull_defconfig
- Enable the edt-ft5x06 driver on Kernel.
make nconfig
and select the symbol TOUCHSCREEN_EDT_FT5X06 as a module.
- Compile the Kernel modules. See log below
charlesdias@charlesdias:~/DeviceTree/workdir/linux-toradex$ make -j$(nproc) modules
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CHK scripts/mod/devicetable-offsets.h
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
Building modules, stage 2.
MODPOST 83 modules
charlesdias@charlesdias:~/DeviceTree/workdir/linux-toradex$ mkdir modules
charlesdias@charlesdias:~/DeviceTree/workdir/linux-toradex$ export INSTALL_MOD_PATH=modules
charlesdias@charlesdias:~/DeviceTree/workdir/linux-toradex$ make modules_install
INSTALL crypto/echainiv.ko
INSTALL crypto/tcrypt.ko
INSTALL drivers/bluetooth/btmrvl.ko
INSTALL drivers/bluetooth/btmrvl_sdio.ko
INSTALL drivers/bluetooth/btsdio.ko
INSTALL drivers/bluetooth/hci_uart.ko
INSTALL drivers/crypto/caam/sm_test.ko
INSTALL drivers/hid/hid-multitouch.ko
INSTALL drivers/input/serio/serport.ko
INSTALL drivers/input/touchscreen/atmel_mxt_ts.ko
INSTALL drivers/input/touchscreen/edt-ft5x06.ko
INSTALL drivers/input/touchscreen/fusion_F0710A.ko
INSTALL drivers/media/usb/uvc/uvcvideo.ko
INSTALL drivers/media/v4l2-core/videobuf2-core.ko
INSTALL drivers/media/v4l2-core/videobuf2-memops.ko
INSTALL drivers/media/v4l2-core/videobuf2-v4l2.ko
INSTALL drivers/media/v4l2-core/videobuf2-vmalloc.ko
INSTALL drivers/net/can/can-dev.ko
INSTALL drivers/net/can/flexcan.ko
INSTALL drivers/net/can/spi/mcp251x.ko
INSTALL drivers/net/ppp/ppp_async.ko
INSTALL drivers/net/ppp/ppp_deflate.ko
INSTALL drivers/net/ppp/ppp_generic.ko
INSTALL drivers/net/ppp/ppp_mppe.ko
INSTALL drivers/net/ppp/pppox.ko
INSTALL drivers/net/ppp/pptp.ko
INSTALL drivers/net/slip/slhc.ko
INSTALL drivers/net/usb/asix.ko
INSTALL drivers/net/usb/ax88179_178a.ko
INSTALL drivers/net/usb/cdc_ether.ko
INSTALL drivers/net/usb/usbnet.ko
INSTALL drivers/usb/class/cdc-acm.ko
INSTALL drivers/usb/class/cdc-wdm.ko
INSTALL drivers/usb/gadget/function/u_ether.ko
INSTALL drivers/usb/gadget/function/u_serial.ko
INSTALL drivers/usb/gadget/function/usb_f_acm.ko
INSTALL drivers/usb/gadget/function/usb_f_ecm.ko
INSTALL drivers/usb/gadget/function/usb_f_ecm_subset.ko
INSTALL drivers/usb/gadget/function/usb_f_eem.ko
INSTALL drivers/usb/gadget/function/usb_f_fs.ko
INSTALL drivers/usb/gadget/function/usb_f_mass_storage.ko
INSTALL drivers/usb/gadget/function/usb_f_ncm.ko
INSTALL drivers/usb/gadget/function/usb_f_obex.ko
INSTALL drivers/usb/gadget/function/usb_f_rndis.ko
INSTALL drivers/usb/gadget/function/usb_f_serial.ko
INSTALL drivers/usb/gadget/function/usb_f_ss_lb.ko
INSTALL drivers/usb/gadget/legacy/g_ether.ko
INSTALL drivers/usb/gadget/legacy/g_mass_storage.ko
INSTALL drivers/usb/gadget/legacy/g_ncm.ko
INSTALL drivers/usb/gadget/legacy/g_serial.ko
INSTALL drivers/usb/gadget/legacy/g_zero.ko
INSTALL drivers/usb/gadget/legacy/gadgetfs.ko
INSTALL drivers/usb/gadget/libcomposite.ko
INSTALL drivers/usb/serial/option.ko
INSTALL drivers/usb/serial/usb_wwan.ko
INSTALL fs/configfs/configfs.ko
INSTALL fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko
INSTALL lib/crc7.ko
INSTALL lib/libcrc32c.ko
INSTALL net/bluetooth/bluetooth.ko
INSTALL net/bluetooth/bnep/bnep.ko
INSTALL net/bluetooth/hidp/hidp.ko
INSTALL net/bluetooth/rfcomm/rfcomm.ko
INSTALL net/can/can-bcm.ko
INSTALL net/can/can-gw.ko
INSTALL net/can/can-raw.ko
INSTALL net/can/can.ko
INSTALL net/ipv4/gre.ko
INSTALL net/ipv4/ip_tunnel.ko
INSTALL net/ipv4/tunnel4.ko
INSTALL net/ipv4/udp_tunnel.ko
INSTALL net/ipv6/ip6_udp_tunnel.ko
INSTALL net/ipv6/sit.ko
INSTALL net/l2tp/l2tp_core.ko
INSTALL net/l2tp/l2tp_ppp.ko
INSTALL net/netfilter/xt_l2tp.ko
INSTALL net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
INSTALL sound/core/snd-hwdep.ko
INSTALL sound/core/snd-pcm.ko
INSTALL sound/core/snd-rawmidi.ko
INSTALL sound/core/snd-timer.ko
INSTALL sound/usb/snd-usb-audio.ko
INSTALL sound/usb/snd-usbmidi-lib.ko
DEPMOD 4.9.220-00008-gd7e4d5790281-dirty
- Compile the Kernel
charlesdias@charlesdias:~/DeviceTree/workdir/linux-toradex$ make -j$(nproc) zImage 2>&1 | tee build.log
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK scripts/mod/devicetable-offsets.h
CHK include/generated/utsrelease.h
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/config_data.h
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
My questions are:
- How can I update the Kernel image and add the new module to iMX6ULL;
- And how create the DTS file for this touch? I started the DST file, please, check below.
/dts-v1/;
#include "imx6ull-colibri-nonwifi.dtsi"
#include "imx6ull-colibri-aster.dtsi"
/ {
model = "Colibri iMX6ULL 512MB Display Control Board V0.1";
compatible = "toradex,colibri_imx6ull-aster", "fsl,imx6ull";
};
&i2c1 {
pinctrl-0 = <&pinctrl_i2c1>;
polytouch: edt-ft5316@38 {
compatible = "edt,edt-ft5x06";
reg = <0x38>;
pinctrl-names = "default";
interrupt-parent = <&gpio5>;
interrupts = <4 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 107 - GPIO5.IO[4] */
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* SODIMM 106 - GPIO1.IO[10] */
status = "okay";
};
};
Thanks so much!
System and Hardware:
- Angstrom v2017.12 - Kernel
- Colibri-iMX6ULL_LXDE-Image 2.8b7. 20200610
- Linux colibri-imx6ull 4.9.220-2.8.7+g57229263ff65 #1 SMP Wed Jun 10 17:07:44 UTC 2020 armv7l GNU/Linux
- Colibri iMX6ULL 512MB IT V1.1A
- Custom board based on Aster V1.1B
- Display ER-TFT070A2-4 with Capacitive Touch Panel (IC FT5316)