1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2
3/dts-v1/;
4
5#include "imx8mp-skov-reva.dtsi"
6
7/ {
8	model = "SKOV IMX8MP CPU revB - LT6";
9	compatible = "skov,imx8mp-skov-revb-lt6", "fsl,imx8mp";
10
11	lvds-decoder {
12		compatible = "ti,sn65lvds822", "lvds-decoder";
13		power-supply = <&reg_3v3>;
14
15		ports {
16			#address-cells = <1>;
17			#size-cells = <0>;
18
19			port@0 {
20				reg = <0>;
21
22				in_lvds1: endpoint {
23					data-mapping = "vesa-24";
24					remote-endpoint = <&ldb_lvds_ch1>;
25				};
26			};
27
28			port@1 {
29				reg = <1>;
30
31				lvds_decoder_out: endpoint {
32					remote-endpoint = <&panel_in>;
33				};
34			};
35		};
36	};
37
38	panel {
39		compatible = "logictechno,lttd800480070-l6wh-rt";
40		backlight = <&backlight>;
41		power-supply = <&reg_tft_vcom>;
42
43		port {
44			panel_in: endpoint {
45				remote-endpoint = <&lvds_decoder_out>;
46			};
47		};
48	};
49
50	touchscreen {
51		compatible = "resistive-adc-touch";
52		io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>, <&adc_ts 5>;
53		io-channel-names = "y", "z1", "z2", "x";
54		touchscreen-min-pressure = <65000>;
55		touchscreen-inverted-y;
56		touchscreen-swapped-x-y;
57		touchscreen-x-plate-ohms = <300>;
58	};
59};
60
61&reg_tft_vcom {
62	regulator-min-microvolt = <3600000>;
63	regulator-max-microvolt = <3600000>;
64	voltage-table = <3600000 26>;
65	status = "okay";
66};
67
68&pwm4 {
69	status = "okay";
70};
71
72&backlight {
73	status = "okay";
74};
75
76&ecspi1 {
77	pinctrl-names = "default";
78	pinctrl-0 = <&pinctrl_ecspi1>;
79	cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
80	status = "okay";
81
82	adc_ts: adc@0 {
83		compatible = "ti,tsc2046e-adc";
84		reg = <0>;
85		pinctrl-0 = <&pinctrl_touch>;
86		pinctrl-names ="default";
87		spi-max-frequency = <1000000>;
88		interrupts-extended = <&gpio4 25 IRQ_TYPE_LEVEL_LOW>;
89		#io-channel-cells = <1>;
90
91		#address-cells = <1>;
92		#size-cells = <0>;
93
94		channel@1 {
95			reg = <1>;
96			settling-time-us = <700>;
97			oversampling-ratio = <5>;
98		};
99
100		channel@3 {
101			reg = <3>;
102			settling-time-us = <700>;
103			oversampling-ratio = <5>;
104		};
105
106		channel@4 {
107			reg = <4>;
108			settling-time-us = <700>;
109			oversampling-ratio = <5>;
110		};
111
112		channel@5 {
113			reg = <5>;
114			settling-time-us = <700>;
115			oversampling-ratio = <5>;
116		};
117	};
118};
119
120&lcdif2 {
121	status = "okay";
122};
123
124&lvds_bridge {
125	assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
126				 <&clk IMX8MP_VIDEO_PLL1>;
127	assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
128	/* IMX8MP_VIDEO_PLL1 = IMX8MP_CLK_MEDIA_DISP2_PIX * 2 * 7 */
129	assigned-clock-rates = <0>, <462000000>;
130	status = "okay";
131
132	ports {
133		port@2 {
134			ldb_lvds_ch1: endpoint {
135				remote-endpoint = <&in_lvds1>;
136			};
137		};
138	};
139};
140
141&pwm1 {
142	status = "okay";
143};
144
145&iomuxc {
146	pinctrl_ecspi1: ecspi1grp {
147		fsl,pins = <
148			MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK			0x44
149			MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI			0x44
150			MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO			0x44
151			MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09			0x40
152		>;
153	};
154
155	pinctrl_touch: touchgrp {
156		fsl,pins = <
157			/* external pull up */
158			MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25			0x40
159		>;
160	};
161};
162