xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx8mm-verdin-panel-cap-touch-10inch-dsi.dtso (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright (c) Toradex
4 *
5 * Toradex Capacitive Touch Display 10.1" on Verdin DSI_1.
6 * On Dahlia (X17) and Development Board (X48), DSI_1 is exposed via a
7 * Samtec LSS-130 connector and requires the Toradex DSI Display Adapter
8 * to convert to FFC/FPC connector.
9 *
10 * https://developer.toradex.com/hardware/accessories/displays/capacitive-touch-display-101inch-dsi
11 * https://www.toradex.com/accessories/capacitive-touch-display-10.1-inch-dsi
12 * https://developer.toradex.com/hardware/accessories/add-ons/dsi-display-adapter
13 * https://www.toradex.com/accessories/verdin-dsi-display-adapter
14 */
15
16/dts-v1/;
17/plugin/;
18
19#include <dt-bindings/gpio/gpio.h>
20#include <dt-bindings/interrupt-controller/irq.h>
21#include <dt-bindings/pwm/pwm.h>
22
23&{/} {
24	backlight_pwm3: backlight-pwm3 {
25		compatible = "pwm-backlight";
26		brightness-levels = <0 45 63 88 119 158 203 255>;
27		default-brightness-level = <4>;
28		power-supply = <&reg_3p3v>;
29		/* Verdin PWM_3_DSI (SODIMM 19) */
30		pwms = <&pwm1 0 6666667 0>;
31	};
32
33	panel-lvds-bridge {
34		compatible = "riverdi,rvt101hvlnwc00", "panel-lvds";
35		backlight = <&backlight_pwm3>;
36		data-mapping = "vesa-24";
37		height-mm = <136>;
38		width-mm = <217>;
39
40		panel-timing {
41			clock-frequency = <71100000>;
42			de-active = <1>;
43			hactive = <1280>;
44			hback-porch = <64 64 64>;
45			hfront-porch = <36 36 36>;
46			hsync-active = <0>;
47			hsync-len = <24 24 24>;
48			pixelclk-active = <1>;
49			vactive = <800>;
50			vback-porch = <24 24 24>;
51			vfront-porch = <8 8 8>;
52			vsync-active = <0>;
53			vsync-len = <8 8 8>;
54		};
55
56		port {
57			panel_lvds_bridge_in: endpoint {
58				remote-endpoint = <&dsi_lvds_bridge_out>;
59			};
60		};
61	};
62};
63
64/* Verdin I2C_2_DSI */
65&i2c2 {
66	#address-cells = <1>;
67	#size-cells = <0>;
68
69	status = "okay";
70
71	bridge@2c {
72		compatible = "ti,sn65dsi83";
73		reg = <0x2c>;
74		pinctrl-names = "default";
75		pinctrl-0 = <&pinctrl_gpio_10_dsi>;
76		/* Verdin GPIO_10_DSI (SODIMM 21) - DSI_1_BKL_EN */
77		enable-gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>;
78		vcc-supply = <&reg_1p8v>;
79
80		ports {
81			#address-cells = <1>;
82			#size-cells = <0>;
83
84			port@0 {
85				reg = <0>;
86
87				dsi_lvds_bridge_in: endpoint {
88					data-lanes = <1 2 3 4>;
89					remote-endpoint = <&mipi_dsi_out>;
90				};
91			};
92
93			port@2 {
94				reg = <2>;
95
96				dsi_lvds_bridge_out: endpoint {
97					remote-endpoint = <&panel_lvds_bridge_in>;
98				};
99			};
100		};
101	};
102
103	touchscreen@41 {
104		compatible = "ilitek,ili2132";
105		reg = <0x41>;
106		pinctrl-names = "default";
107		pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>;
108		/* Verdin GPIO_9_DSI (SODIMM 17) - TOUCH_INT# */
109		/* Rising edge avoids spurious interrupts from the noisy falling edge. */
110		interrupt-parent = <&gpio3>;
111		interrupts = <15 IRQ_TYPE_EDGE_RISING>;
112		/* Verdin I2S_2_BCLK (SODIMM 42) - TOUCH_RESET# */
113		reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
114	};
115};
116
117&lcdif {
118	status = "okay";
119};
120
121&mipi_dsi {
122	samsung,esc-clock-frequency = <16000000>;
123
124	status = "okay";
125};
126
127&mipi_dsi_out {
128	remote-endpoint = <&dsi_lvds_bridge_in>;
129};
130