Link copied to clipboard!

How to enable touch on Riverdi 12.1” and 15.6” displays on Toradex

Back to top

Introduction

Toradex is a leading provider of embedded computing solutions, specializing in system-on-modules (SoMs) and carrier boards. They offer powerful and scalable platforms for a variety of industries, including automotive, medical, and industrial applications. Toradex’s solutions are widely known for their reliability, high performance, and ease of integration, making them a popular choice for embedded systems.

Riverdi displays are used with Toradex systems to enable high-quality visual interfaces in industrial-grade applications.

Riverdi displays up to 10” typically use a touch controller that is supported directly by the standard Linux driver stack used in Toradex BSP images. In these cases, enabling touch usually requires only adding the correct node to the device tree overlay.

However, larger displays such as:

use a different controller: ILI2510.

Ilitek, the manufacturer of the touch controllers used in Riverdi displays, specializes in industrial-grade touchscreen solutions. They provide robust controllers with at least 10 years of warranty, ensuring long-term durability and reliability in challenging environments. Ilitek’s controllers are trusted in many industrial, automotive, and commercial products for their precision and performance.

In these modules the controller is not handled by the ILI2132 driver used in smaller displays. Instead, the system must use the Ilitek touchscreen driver, which must be enabled in the kernel configuration – so not like ILI2132, which is already provided in the compilation by Toradex.

Because of this difference, enabling touch on larger displays requires a few additional steps:

  • enabling the correct kernel driver
  • rebuilding the kernel or kernel modules
  • move it to the Toradex
  • enable driver and test touch

Only after the driver is present in the system can the touchscreen node in the device tree successfully bind to the driver.

Touch controller differences

Riverdi display modules use two different touch controller families depending on display size.

Displays up to 10”

Controller: ILI2132

Displays 12.1” and larger

Controller: ILI251X family (2510 and 2511)

The ILI2510 driver supports the Ilitek I2C touchscreen protocol and exposes the device through the Linux input subsystem. It supports touchscreens of the bigger size.

Enabling the ILI2510 driver in the kernel

To start, make sure you have set the proper environment variables:

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-

To support the ILI2510 controller, the Ilitek touchscreen driver must be enabled in the Linux kernel configuration used by the Toradex BSP.

Open the kernel configuration menu.

make menuconfig

Navigate to the touchscreen driver section.

Device Drivers
Input device support
Touchscreens

Enable the Ilitek touchscreen driver by pressing M when selected. It is named:

Ilitek I2C 213X/23XX/25XX/Lego Series Touch ICs

Compiling the driver as a module simplifies debugging and allows it to be loaded dynamically.

Then we need to compile the driver:

make modules

And install them:

make modules_install

You should have ilitek_ts_i2c.ko. Now copy it onto your Toradex however you like. In the previous guide we configured ip addresses for scp. To check how we configured scp between Toradex and virtual machine, see this guide.

Copying and activating the driver on Toradex from VM

Open lib/modules/$(uname -r)/kernel/drivers/input/touchscreen/ in your Toradex and do ls there to see if you have properly copied ilitek_ts_i2c.ko.

lsmod | grep ili

Then load the module:

modprobe ilitek_ts_i2c

If the driver is correctly installed, Linux will display information about the module including version and supported devices.

Checking Linux input devices

Confirm that the touchscreen appears in the input subsystem.

cat /proc/bus/input/devices

or

ls /dev/input/

A new input event device should be visible.

Testing touch events

To test raw input events use the evtest tool.

evtest

Select the touchscreen device from the list.

When touching the screen:

  • coordinates should change with finger movement
  • pressure events should be reported
  • touch events should appear immediately

You can also use weston-eventdemo to test if you can use precise touch.

Troubleshooting notes

What works reliably in this setup

  • Ilitek driver enabled in kernel configuration
  • correct touchscreen node in device tree overlay
  • successful detection on I2C bus
  • touch events visible through evtest

Common issues

  • kernel driver not enabled
  • incorrect compatible string in device tree
  • wrong I2C bus definition

Conclusion

Larger Riverdi 12.1” and 15.6” displays follow a different touch integration path because they rely on the ILI2510 controller, while smaller modules work with the ILI2132 driver.

The main steps are clear: enable the Ilitek I2C touchscreen driver in the kernel configuration, rebuild the kernel or module, copy it to the Toradex target, and update references to the correct driver.

Once configured, the touchscreen appears as a standard Linux input device. You can test it with Linux input tools and run it in graphical environments such as Weston, Qt, or LVGL.

DISCOVER OUR

Whitepaper

Achieve the perfect user-display interaction with the right Touch Sensor IC. Ever faced issues with phantom touch events or certification? Boost your R&D like a pro with our Whitepaper!

Save by quality

Go to our product catalog and see how you can save by quality, not on quality.

Contact us now, save with quality, not on quality.