]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: ti: k3-am62-verdin: Add Toradex Capacitive Touch Display 10.1" DSI
authorVitor Soares <vitor.soares@toradex.com>
Fri, 22 May 2026 16:11:09 +0000 (17:11 +0100)
committerNishanth Menon <nm@ti.com>
Fri, 29 May 2026 19:59:32 +0000 (14:59 -0500)
Add a device tree overlay for the Toradex Capacitive Touch Display 10.1"
on the Verdin DSI_1 interface. The display features an internal
Texas Instruments SN65DSI83 DSI-to-LVDS bridge driving a Riverdi
RVT101HVLNWC00 10.1" WXGA (1280x800) IPS TFT LCD panel. The touch input
is provided by an Ilitek ILI2132 capacitive touch controller.

The overlay is also combined with the Verdin AM62 Dahlia carrier board
device trees to provide ready-to-use DTBs in both WiFi and non-Wifi SoM
variants.

Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-dsi
Link: https://developer.toradex.com/hardware/accessories/add-ons/dsi-display-adapter/
Assisted-by: Claude:claude-sonnet-4.6
Signed-off-by: Vitor Soares <vitor.soares@toradex.com>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Link: https://patch.msgid.link/20260522161105.277519-18-ivitro@gmail.com
Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm64/boot/dts/ti/Makefile
arch/arm64/boot/dts/ti/k3-am625-verdin-panel-cap-touch-10inch-dsi.dtso [new file with mode: 0644]

index 867c05b675d12973690f4b7c055caa89d156cd69..dc397bc693acdece326ed1f286eb5f7d99402347 100644 (file)
 # Boards with AM62x SoC
 k3-am625-verdin-nonwifi-dahlia-dsi-to-hdmi-dtbs := k3-am625-verdin-nonwifi-dahlia.dtb \
        k3-am625-verdin-dsi-to-hdmi.dtbo
+k3-am625-verdin-nonwifi-dahlia-panel-cap-touch-10inch-dsi-dtbs := \
+       k3-am625-verdin-nonwifi-dahlia.dtb \
+       k3-am625-verdin-panel-cap-touch-10inch-dsi.dtbo
 k3-am625-verdin-nonwifi-dev-dsi-to-hdmi-dtbs := k3-am625-verdin-nonwifi-dev.dtb \
        k3-am625-verdin-dsi-to-hdmi.dtbo
 k3-am625-verdin-wifi-dahlia-dsi-to-hdmi-dtbs := k3-am625-verdin-wifi-dahlia.dtb \
        k3-am625-verdin-dsi-to-hdmi.dtbo
+k3-am625-verdin-wifi-dahlia-panel-cap-touch-10inch-dsi-dtbs := \
+       k3-am625-verdin-wifi-dahlia.dtb \
+       k3-am625-verdin-panel-cap-touch-10inch-dsi.dtbo
 k3-am625-verdin-wifi-dev-dsi-to-hdmi-dtbs := k3-am625-verdin-wifi-dev.dtb \
        k3-am625-verdin-dsi-to-hdmi.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am625-beagleplay.dtb
@@ -26,6 +32,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am625-tqma62xx-mba62xx.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-dsi-to-hdmi.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-dsi-to-lvds-panel-cap-touch-10inch.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dahlia-dsi-to-hdmi.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dahlia-panel-cap-touch-10inch-dsi.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dahlia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dev-dsi-to-hdmi.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-dev.dtb
@@ -33,8 +40,10 @@ dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-ivy.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-mallow.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-yavia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-nonwifi-zinnia.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-panel-cap-touch-10inch-dsi.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-panel-cap-touch-10inch-lvds.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dahlia-dsi-to-hdmi.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dahlia-panel-cap-touch-10inch-dsi.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dahlia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dev-dsi-to-hdmi.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dev.dtb
diff --git a/arch/arm64/boot/dts/ti/k3-am625-verdin-panel-cap-touch-10inch-dsi.dtso b/arch/arm64/boot/dts/ti/k3-am625-verdin-panel-cap-touch-10inch-dsi.dtso
new file mode 100644 (file)
index 0000000..ed66fee
--- /dev/null
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) Toradex
+ *
+ * Toradex Capacitive Touch Display 10.1" on Verdin DSI_1.
+ * On Dahlia (X17) and Development Board (X48), DSI_1 is exposed via a
+ * Samtec LSS-130 connector and requires the Toradex DSI Display Adapter
+ * to convert to FFC/FPC connector.
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-dsi
+ * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-dsi
+ * https://developer.toradex.com/hardware/accessories/add-ons/dsi-display-adapter
+ * https://www.toradex.com/accessories/verdin-dsi-display-adapter
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pwm/pwm.h>
+
+&{/} {
+       backlight_pwm3: backlight-pwm3 {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 45 63 88 119 158 203 255>;
+               default-brightness-level = <4>;
+               power-supply = <&reg_3v3>;
+               /* Verdin PWM_3_DSI (SODIMM 19) - PWM_3_DSI_LVDS */
+               pwms = <&epwm1 0 6666667 0>;
+       };
+
+       panel-lvds-bridge {
+               compatible = "riverdi,rvt101hvlnwc00", "panel-lvds";
+               backlight = <&backlight_pwm3>;
+               data-mapping = "vesa-24";
+               height-mm = <136>;
+               width-mm = <217>;
+
+               panel-timing {
+                       clock-frequency = <72400000>;
+                       de-active = <1>;
+                       hactive = <1280>;
+                       hback-porch = <88 88 88>;
+                       hfront-porch = <12 72 132>;
+                       hsync-active = <0>;
+                       hsync-len = <1 5 40>;
+                       pixelclk-active = <1>;
+                       vactive = <800>;
+                       vback-porch = <23 23 23>;
+                       vfront-porch = <1 15 49>;
+                       vsync-active = <0>;
+                       vsync-len = <1 10 20>;
+               };
+
+               port {
+                       panel_lvds_bridge_in: endpoint {
+                               remote-endpoint = <&dsi_lvds_bridge_out>;
+                       };
+               };
+       };
+};
+
+&dsi_bridge {
+       status = "okay";
+};
+
+&dsi_bridge_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@1 {
+               reg = <1>;
+
+               dsi_bridge_out: endpoint {
+                       remote-endpoint = <&dsi_lvds_bridge_in>;
+               };
+       };
+};
+
+&dss {
+       status = "okay";
+};
+
+/* Verdin I2C_2_DSI */
+&main_i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       bridge@2c {
+               compatible = "ti,sn65dsi83";
+               reg = <0x2c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_dsi1_bkl_en>;
+               /* Verdin GPIO_10_DSI (SODIMM 21) - DSI_1_BKL_EN */
+               enable-gpios = <&main_gpio0 30 GPIO_ACTIVE_HIGH>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               dsi_lvds_bridge_in: endpoint {
+                                       remote-endpoint = <&dsi_bridge_out>;
+                                       data-lanes = <1 2 3 4>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               dsi_lvds_bridge_out: endpoint {
+                                       remote-endpoint = <&panel_lvds_bridge_in>;
+                               };
+                       };
+               };
+       };
+
+       touchscreen@41 {
+               compatible = "ilitek,ili2132";
+               reg = <0x41>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_dsi1_int>, <&pinctrl_i2s_2_bclk_gpio>;
+               /* Verdin GPIO_9_DSI (SODIMM 17) - TOUCH_INT# */
+               interrupt-parent = <&main_gpio1>;
+               interrupts = <49 IRQ_TYPE_EDGE_RISING>;
+               /* Verdin I2S_2_BCLK (SODIMM 42) - TOUCH_RESET# */
+               reset-gpios = <&main_gpio0 35 GPIO_ACTIVE_LOW>;
+       };
+};