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