diff options
author | Hiago De Franco <hiago.franco@toradex.com> | 2025-05-15 16:09:28 -0300 |
---|---|---|
committer | Hiago De Franco <hiago.franco@toradex.com> | 2025-05-26 11:14:07 -0300 |
commit | 66266d278b740d5e35c94f2f354a40b995832ae4 (patch) | |
tree | 5763e185ba69f97c5733aa593daf7b360995d877 | |
parent | cad0e6cd3ea3acc4ca2f26011ee6501d3849c787 (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/Makefile | 2 | ||||
-rw-r--r-- | overlays/aquila-am69_adapter_panel-cap-touch-7inch-dsi_overlay.dts | 126 | ||||
-rw-r--r-- | overlays/aquila-am69_panel-cap-touch-7inch-dsi_overlay.dts | 124 | ||||
-rw-r--r-- | overlays/display-rvt70hslnwca0_overlay.dtsi | 31 |
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>; + }; + }; +}; |