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