xref: /linux/arch/arm64/boot/dts/freescale/imx8mm-kontron-dl.dtso (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2024 Kontron Electronics GmbH
4 */
5
6/dts-v1/;
7/plugin/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include "imx8mm-pinfunc.h"
11
12&{/} {
13	compatible = "kontron,imx8mm-bl", "kontron,imx8mm-sl", "fsl,imx8mm";
14
15	backlight: backlight {
16		compatible = "pwm-backlight";
17		pwms = <&pwm1 0 50000 0>;
18		brightness-levels = <0 100>;
19		num-interpolated-steps = <100>;
20		default-brightness-level = <100>;
21	};
22
23	panel {
24		compatible = "jenson,bl-jt60050-01a", "panel-lvds";
25		pinctrl-names = "default";
26		pinctrl-0 = <&pinctrl_panel>;
27		backlight = <&backlight>;
28		data-mapping = "vesa-24";
29		enable-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>;
30		height-mm = <86>;
31		width-mm = <154>;
32
33		panel-timing {
34			clock-frequency = <51200000>;
35			hactive = <1024>;
36			vactive = <600>;
37			hsync-len = <1>;
38			hfront-porch = <160>;
39			hback-porch = <160>;
40			vsync-len = <1>;
41			vfront-porch = <12>;
42			vback-porch = <23>;
43		};
44
45		port {
46			panel_out_bridge: endpoint {
47				remote-endpoint = <&bridge_out_panel>;
48			};
49		};
50	};
51};
52
53&dsi_mux_sel_hdmi {
54	status = "disabled";
55};
56
57&dsi_mux_sel_lvds {
58	status = "okay";
59};
60
61&mipi_dsi_out {
62	remote-endpoint = <&bridge_in_dsi_lvds>;
63};
64
65&gpio3 {
66	pinctrl-names = "default";
67	pinctrl-0 = <&pinctrl_gpio3>;
68
69	panel-rst-hog {
70		gpio-hog;
71		gpios = <20 GPIO_ACTIVE_HIGH>;
72		output-high;
73		line-name = "panel-reset";
74	};
75
76	panel-stby-hog {
77		gpio-hog;
78		gpios = <21 GPIO_ACTIVE_HIGH>;
79		output-high;
80		line-name = "panel-standby";
81	};
82
83	panel-hinv-hog {
84		gpio-hog;
85		gpios = <24 GPIO_ACTIVE_HIGH>;
86		output-high;
87		line-name = "panel-horizontal-invert";
88	};
89
90	panel-vinv-hog {
91		gpio-hog;
92		gpios = <25 GPIO_ACTIVE_HIGH>;
93		output-low;
94		line-name = "panel-vertical-invert";
95	};
96};
97
98&hdmi {
99	status = "disabled";
100};
101
102&i2c2 {
103	clock-frequency = <400000>;
104	pinctrl-names = "default";
105	pinctrl-0 = <&pinctrl_i2c2>;
106	#address-cells = <1>;
107	#size-cells = <0>;
108	status = "okay";
109
110	touchscreen@5d {
111		compatible = "goodix,gt928";
112		reg = <0x5d>;
113		pinctrl-names = "default";
114		pinctrl-0 = <&pinctrl_touch>;
115		interrupt-parent = <&gpio3>;
116		interrupts = <22 8>;
117		reset-gpios = <&gpio3 23 0>;
118		irq-gpios = <&gpio3 22 0>;
119	};
120};
121
122&lvds {
123	status = "okay";
124
125	ports {
126		#address-cells = <1>;
127		#size-cells = <0>;
128
129		port@0 {
130			reg = <0>;
131
132			bridge_in_dsi_lvds: endpoint {
133				remote-endpoint = <&mipi_dsi_out>;
134				data-lanes = <1 2>;
135			};
136		};
137
138		port@2 {
139			reg = <2>;
140
141			bridge_out_panel: endpoint {
142				remote-endpoint = <&panel_out_bridge>;
143			};
144		};
145	};
146};
147
148&pwm1 {
149	pinctrl-names = "default";
150	pinctrl-0 = <&pinctrl_pwm1>;
151	status = "okay";
152};
153
154&iomuxc {
155	pinctrl_gpio3: gpio3grp {
156		fsl,pins = <
157			MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24		0x19
158			MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20		0x19
159			MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21		0x19
160			MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25		0x19
161		>;
162	};
163
164	pinctrl_i2c2: i2c2grp {
165		fsl,pins = <
166			MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL			0x40000083
167			MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA			0x40000083
168		>;
169	};
170
171	pinctrl_panel: panelgrp {
172		fsl,pins = <
173			MX8MM_IOMUXC_SAI5_RXFS_GPIO3_IO19		0x19
174		>;
175	};
176
177	pinctrl_pwm1: pwm1grp {
178		fsl,pins = <
179			MX8MM_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT		0x6
180		>;
181	};
182
183	pinctrl_touch: touchgrp {
184		fsl,pins = <
185			MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22		0x19
186			MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23		0x19
187		>;
188	};
189};
190