From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0B0533DCD9C for ; Tue, 2 Jun 2026 11:51:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780401113; cv=none; b=VpezpUJ9k/D7hXH2BxNIMKQACSl1149PiRGEVt60tI9dqStzHviycPQUlqRrBgns2WouJbMATK6vS7V4pZt7lhxFaNzsLs80HH6nDdWtZbXtgZ52IXDRwKREtQesGYG5DL1b3dRxlSdcPiAS3/alwtVaSe5CmZHAwYQtRCKzleQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780401113; c=relaxed/simple; bh=huJSha/vBHDgVvprsuUDvcbacjXmFi6mxRwgk4rmUSk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LoMj1lppWFG2h5gpe5fS/FU4uw9Iy0iRENG/+DKCszYF4xNcpTzvJSbz4/GoQWDymkEP4kqaMwsfGwiE48cebnQ/nSp5VU9LxR5bEk0t/7MINcoL5lftse96UZss3lBQ9q+XDxIndEA2GxPcIW05dvzlQBernpC3eTY2CbMt8IA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aLS2RVZH; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aLS2RVZH" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-490abf12f0fso9918365e9.0 for ; Tue, 02 Jun 2026 04:51:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780401106; x=1781005906; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rW3dGwAqiUruHWn/0Ai/AGMfG26DoRiScxLbS+CHlR8=; b=aLS2RVZH+5RQmkpq4+5tC9rs9s8bYcAKOubOOTB5ZNwa5zDZkR1vemu3ZGWs+G6Qyl 9qEr0HiQrfa41N1gnIJt61VZ/AbKNrq8sot5z4RiQduYn7KTyt9u6F3rHGs4I2R/SyVx v+AtnJyt5eR9N4LA0Q+BIqiFnMd8d8gIt7LGcEIXJqRHDaZx9vVDfyBNML9haEEjVRo7 UQYd6UagdYfSc56xLwBz7e6vBEPBvbTSrbcYwzPFklHVs/BUIZO8hd1nu+B0wyY/dbAL 7aEbzthFahct9vzqNuYy+oZR8SJ1WSIRu8OUvHQY/u1o3AHIXAiAwcL6npusS6OrXL1N bMBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780401106; x=1781005906; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rW3dGwAqiUruHWn/0Ai/AGMfG26DoRiScxLbS+CHlR8=; b=LNxMamlXLNNDHY9vHPBfgZsYBd7w/gGStpFXkoGZ3NNPWDKoQ/ZniOT/xUtOK7gZgZ VEvI9hwwE0xtYB+n+O/etRRjPQRLjkXyDWmzJJpqkp0out3AbrJUDDyfxNZxLwZgsp4I 4Z3e2bo1FyuUODz7lo+9WpIWXg9DVLlaugXo5pAlGInER8noeLByQfsaH2uqn3dBQwcV c57gw+SxjI3Gj1yKrANclRSN+oL6rJ1afjmwzwu7Nv+WVjeltnR2vvk1zSiHD3wSGLP3 sIscRCUdtpvjGpNUuVdXPbPzcinJkRcog/BVlux+9kWUGEtUT1Mhojmz0Hd99pYBw/wQ IrvA== X-Forwarded-Encrypted: i=1; AFNElJ/5c7d0fZKmjz0bBtHm+N9kdHXGPxUYcPbBUdS6bAwM1KTdzOab9N5JUqe1naOghqXBx/cSlZLvt+b3EYY=@vger.kernel.org X-Gm-Message-State: AOJu0YyHYXNiy8kpBaJIKw8u/eTC5Bi+nAgmrZCCBp1iT4Yje8tEdh41 C2yreLcoehjxBLx++x+CnOBLq1oUs8tPCSoibb6rUNO+oPJ6NV8N5SW3 X-Gm-Gg: Acq92OEdzMdvrjF2K17OLqv4ZTmwFyoOlx2CaxzwjmFmhu9NHFc/G0pBn7GOFvBWI7E KTuI3nNYyrBDVjh0yyqVqfPqzmJpNNPadaThTJvwko1qIaRuCUKmXNMBsGV+fwkyIUQ5dMhP87j pCkPnhJwJCn4mlDS5zqVuSa+rWiaesjTOnJ3afdLsKc/M//Z6/YjmvTrdYBn/8rGd8YrA7E104I tXqAWhgQ5eXuqRFzS1C4Ske6uYzhfVgztjiIiaNu/fjTYS2AIQRMgs9hMxLtokTeD6xRjgEYYpM miPO7GZNcaigEgeA717QiWLc0BSwdPWC8+om5O7b9raF6el+cwuapVoIz6U5rtvr6gi5NtS5Hqw F4AewuMFPfvoXKyBkr4ordoF4DwPD+kQlHCO13Ei0pxkUEJgus0L948RV4ZIvmsRAZXZp8AxQ53 l7YtT4ky9LAMC1SXC6HE0b8+igkA== X-Received: by 2002:a05:600d:8488:10b0:490:9dc3:3483 with SMTP id 5b1f17b1804b1-490b0e373a0mr40839215e9.2.1780401106125; Tue, 02 Jun 2026 04:51:46 -0700 (PDT) Received: from vitor-nb ([2001:8a0:c4c6:f00:e8c3:a961:5b26:a2c6]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4909c152570sm139480015e9.9.2026.06.02.04.51.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 04:51:45 -0700 (PDT) From: Vitor Soares To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Vitor Soares , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/7] arm64: dts: ti: k3-am69-aquila: Add Toradex Capacitive Touch Display 10.1" DSI Date: Tue, 2 Jun 2026 12:51:28 +0100 Message-ID: <20260602115123.1324474-14-ivitro@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260602115123.1324474-9-ivitro@gmail.com> References: <20260602115123.1324474-9-ivitro@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Vitor Soares Add a device tree overlay for the Toradex Capacitive Touch Display 10.1" DSI on the Aquila DSI_1 interface. Used on the Clover Board (J12), where DSI_1 is exposed via a FFC/FPC connector. The display includes an internal Texas Instruments SN65DSI83 DSI-to-LVDS bridge driving a Riverdi RVT101HVLNWC00 10.1" WXGA IPS TFT LCD panel. Touch input is provided by an Ilitek ILI2132 capacitive touch controller. The overlay is also combined with the Aquila AM69 Clover carrier board device tree to provide a ready-to-use DTB. Link: https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-dsi Signed-off-by: Vitor Soares --- Changes in v2: - Enable main_ehrpwm5 for Clover board arch/arm64/boot/dts/ti/Makefile | 5 + ...m69-aquila-panel-cap-touch-10inch-dsi.dtso | 158 ++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am69-aquila-panel-cap-touch-10inch-dsi.dtso diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile index c145cc4ca7fc..bf50b7a72973 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -190,15 +190,20 @@ dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo dtb-$(CONFIG_ARCH_K3) += k3-j722s-evm-csi2-quad-tevi-ov5640.dtbo # Boards with J784s4 SoC +k3-am69-aquila-clover-panel-cap-touch-10inch-dsi-dtbs := \ + k3-am69-aquila-clover.dtb \ + k3-am69-aquila-panel-cap-touch-10inch-dsi.dtbo k3-am69-aquila-dev-dsi-to-hdmi-dtbs := k3-am69-aquila-dev.dtb \ k3-am69-aquila-dsi-to-hdmi.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-adapter-panel-cap-touch-10inch-dsi.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-adapter-panel-cap-touch-7inch-dsi.dtbo +dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-clover-panel-cap-touch-10inch-dsi.dtb dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-clover.dtb dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-dev.dtb dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-dev-dsi-to-hdmi.dtb dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-dsi-to-hdmi.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-dsi-to-lvds-panel-cap-touch-10inch.dtbo +dtb-$(CONFIG_ARCH_K3) += k3-am69-aquila-panel-cap-touch-10inch-dsi.dtbo dtb-$(CONFIG_ARCH_K3) += k3-am69-sk.dtb dtb-$(CONFIG_ARCH_K3) += k3-am69-sk-pcie0-ep.dtbo dtb-$(CONFIG_ARCH_K3) += k3-j784s4-evm.dtb diff --git a/arch/arm64/boot/dts/ti/k3-am69-aquila-panel-cap-touch-10inch-dsi.dtso b/arch/arm64/boot/dts/ti/k3-am69-aquila-panel-cap-touch-10inch-dsi.dtso new file mode 100644 index 000000000000..c5d597873440 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am69-aquila-panel-cap-touch-10inch-dsi.dtso @@ -0,0 +1,158 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) Toradex + * + * Toradex Capacitive Touch Display 10.1" on Aquila DSI_1. + * Used on Clover Board (J12), DSI_1 is exposed via a 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 + */ + +/dts-v1/; +/plugin/; + +#include +#include + +&{/} { + backlight_pwm3: backlight-pwm3 { + compatible = "pwm-backlight"; + brightness-levels = <0 45 63 88 119 158 203 255>; + default-brightness-level = <4>; + /* Aquila PWM_3_DSI (AQUILA B46) */ + pwms = <&main_ehrpwm5 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 = <83 83 83>; + hfront-porch = <12 72 132>; + hsync-active = <0>; + hsync-len = <1 5 40>; + pixelclk-active = <1>; + vactive = <800>; + vback-porch = <13 13 13>; + 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>; + }; + }; + }; +}; + +&dphy_tx0 { + status = "okay"; +}; + +&dsi0 { + status = "okay"; +}; + +&dsi0_ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dsi0_out: endpoint { + remote-endpoint = <&dsi_lvds_bridge_in>; + }; + }; + + port@1 { + reg = <1>; + + dsi0_in: endpoint { + remote-endpoint = <&dpi2_out>; + }; + }; +}; + +&dss_ports { + #address-cells = <1>; + #size-cells = <0>; + + port@2 { + reg = <2>; + + dpi2_out: endpoint { + remote-endpoint = <&dsi0_in>; + }; + }; +}; + +/* Aquila PWM_3_DSI */ +&main_ehrpwm5 { + status = "okay"; +}; + +/* Aquila I2C_3_DSI1 */ +&main_i2c0 { + #address-cells = <1>; + #size-cells = <0>; + + status = "okay"; + + bridge@2c { + compatible = "ti,sn65dsi83"; + reg = <0x2c>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_20_dsi_1>; + /* Aquila GPIO_20_DSI_1 (AQUILA B45) */ + enable-gpios = <&main_gpio0 18 GPIO_ACTIVE_HIGH>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + dsi_lvds_bridge_in: endpoint { + remote-endpoint = <&dsi0_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_gpio_17_dsi_1>, <&pinctrl_gpio_18_dsi_1>; + /* Aquila GPIO_17_DSI_1 (AQUILA B42) */ + interrupt-parent = <&main_gpio0>; + /* + * Data-ready pulse is ~200 us; either edge can be used, + * use the rising edge because the falling edge is noisy. + */ + interrupts = <12 IRQ_TYPE_EDGE_RISING>; + /* Aquila GPIO_18_DSI_1 (AQUILA B43) */ + reset-gpios = <&main_gpio0 31 GPIO_ACTIVE_LOW>; + }; +}; -- 2.54.0