summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiago De Franco <hiago.franco@toradex.com>2025-05-15 16:09:28 -0300
committerHiago De Franco <hiago.franco@toradex.com>2025-05-26 11:14:07 -0300
commit66266d278b740d5e35c94f2f354a40b995832ae4 (patch)
tree5763e185ba69f97c5733aa593daf7b360995d877
parentcad0e6cd3ea3acc4ca2f26011ee6501d3849c787 (diff)
aquila-am69: add panel-cap-touch-7inch-dsi overlays
Add device tree overlays for Riverdi 7-inch capacitive touch panel connected via DSI interface, supporting both Aquila Development Board and Clover carrier boards. It can be directly connected to Clover carrier board and to Aquila Development Board using Toradex DSI display adapter. The separate overlays account for hardware differences as Aquila Development Board uses I2C_3_DSI1 pins routed through an I2C mux while Clover has no I2C mux, the pins are directly connected to I2C_3_DSI1. Related-to: ELB-6420 Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
-rw-r--r--overlays/Makefile2
-rw-r--r--overlays/aquila-am69_adapter_panel-cap-touch-7inch-dsi_overlay.dts126
-rw-r--r--overlays/aquila-am69_panel-cap-touch-7inch-dsi_overlay.dts124
-rw-r--r--overlays/display-rvt70hslnwca0_overlay.dtsi31
4 files changed, 283 insertions, 0 deletions
diff --git a/overlays/Makefile b/overlays/Makefile
index 9278137..fa95ac5 100644
--- a/overlays/Makefile
+++ b/overlays/Makefile
@@ -20,6 +20,7 @@ HOSTCC := gcc $(DTS_INCLUDES)
PWD := $(shell pwd)
dtb-y += aquila-am69_adapter_panel-cap-touch-10inch-dsi_overlay.dtbo
+dtb-y += aquila-am69_adapter_panel-cap-touch-7inch-dsi_overlay.dtbo
dtb-y += aquila-am69_csi1-ov5640-27mhz_overlay.dtbo
dtb-y += aquila-am69_csi1-ov5640_overlay.dtbo
dtb-y += aquila-am69_csi2-ov5640-27mhz_overlay.dtbo
@@ -27,6 +28,7 @@ dtb-y += aquila-am69_csi2-ov5640_overlay.dtbo
dtb-y += aquila-am69_dsi-to-hdmi_overlay.dtbo
dtb-y += aquila-am69_dsi-to-lvds_panel-cap-touch-10inch-lvds_overlay.dtbo
dtb-y += aquila-am69_panel-cap-touch-10inch-dsi_overlay.dtbo
+dtb-y += aquila-am69_panel-cap-touch-7inch-dsi_overlay.dtbo
dtb-y += aquila-am69_spi1_spidev_overlay.dtbo
dtb-y += aquila-am69_spi2_spidev_overlay.dtbo
dtb-y += verdin-am62_dsi-to-hdmi_overlay.dtbo
diff --git a/overlays/aquila-am69_adapter_panel-cap-touch-7inch-dsi_overlay.dts b/overlays/aquila-am69_adapter_panel-cap-touch-7inch-dsi_overlay.dts
new file mode 100644
index 0000000..a96a1f8
--- /dev/null
+++ b/overlays/aquila-am69_adapter_panel-cap-touch-7inch-dsi_overlay.dts
@@ -0,0 +1,126 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (C) 2025 Toradex
+ *
+ * Aquila AM69 connected to Capacitive Touch Display 7" DSI using DSI adapter.
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-7inch-dsi
+ * https://www.toradex.com/accessories/capacitive-touch-display-7-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 "aquila-am69_backlight-dsi_overlay.dtsi"
+#include "display-rvt70hslnwca0_overlay.dtsi"
+
+/ {
+ compatible = "toradex,aquila-am69";
+};
+
+&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>;
+ };
+ };
+};
+
+/* I2C on DSI Connector Pin #52 and #54 */
+&i2c_dsi_1 {
+ #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 {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&dsi0_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ dsi_lvds_bridge_out: endpoint {
+ remote-endpoint = <&panel_in_rvt70hslnwca0>;
+ };
+ };
+ };
+ };
+
+ touch@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 (TOUCH_INT#, AQUILA B42) */
+ interrupt-parent = <&main_gpio0>;
+ interrupts = <12 IRQ_TYPE_EDGE_RISING>;
+ /* Aquila GPIO_18_DSI_1 (TOUCH_RESET#, AQUILA B43) */
+ reset-gpios = <&main_gpio0 31 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&panel_rvt70hslnwca0 {
+ backlight = <&backlight_aquila_dsi>;
+
+ port {
+ panel_in_rvt70hslnwca0: endpoint {
+ remote-endpoint = <&dsi_lvds_bridge_out>;
+ };
+ };
+};
diff --git a/overlays/aquila-am69_panel-cap-touch-7inch-dsi_overlay.dts b/overlays/aquila-am69_panel-cap-touch-7inch-dsi_overlay.dts
new file mode 100644
index 0000000..136a757
--- /dev/null
+++ b/overlays/aquila-am69_panel-cap-touch-7inch-dsi_overlay.dts
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (C) 2025 Toradex
+ *
+ * Aquila AM69 connected to Capacitive Touch Display 7" DSI.
+ *
+ * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-7inch-dsi
+ * https://www.toradex.com/accessories/capacitive-touch-display-7-inch-dsi
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+#include "aquila-am69_backlight-dsi_overlay.dtsi"
+#include "display-rvt70hslnwca0_overlay.dtsi"
+
+/ {
+ compatible = "toradex,aquila-am69";
+};
+
+&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 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 {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&dsi0_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ dsi_lvds_bridge_out: endpoint {
+ remote-endpoint = <&panel_in_rvt70hslnwca0>;
+ };
+ };
+ };
+ };
+
+ touch@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 (TOUCH_INT#, AQUILA B42) */
+ interrupt-parent = <&main_gpio0>;
+ interrupts = <12 IRQ_TYPE_EDGE_RISING>;
+ /* Aquila GPIO_18_DSI_1 (TOUCH_RESET#, AQUILA B43) */
+ reset-gpios = <&main_gpio0 31 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&panel_rvt70hslnwca0 {
+ backlight = <&backlight_aquila_dsi>;
+
+ port {
+ panel_in_rvt70hslnwca0: endpoint {
+ remote-endpoint = <&dsi_lvds_bridge_out>;
+ };
+ };
+};
diff --git a/overlays/display-rvt70hslnwca0_overlay.dtsi b/overlays/display-rvt70hslnwca0_overlay.dtsi
new file mode 100644
index 0000000..fda247a
--- /dev/null
+++ b/overlays/display-rvt70hslnwca0_overlay.dtsi
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (C) 2025 Toradex
+ *
+ * RVT70HSLNWCA0 DSI display (7 inch) with a resolution of 1024x600 pixel.
+ */
+
+&{/} {
+ panel_rvt70hslnwca0: panel-rvt70hslnwca0 {
+ compatible = "panel-lvds";
+ data-mapping = "vesa-24";
+ height-mm = <86>;
+ width-mm = <154>;
+
+ panel-timing {
+ clock-frequency = <40800000 51200000 67200000>;
+ de-active = <1>;
+ hactive = <1024>;
+ hback-porch = <160 160 160>;
+ hfront-porch = <16 160 216>;
+ hsync-active = <0>;
+ hsync-len = <1 5 140>;
+ pixelclk-active = <1>;
+ vactive = <600>;
+ vback-porch = <23 23 23>;
+ vfront-porch = <1 12 126>;
+ vsync-active = <0>;
+ vsync-len = <1 10 20>;
+ };
+ };
+};