xref: /linux/arch/arm/boot/dts/nxp/imx/imx6dl-victgo.dts (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (c) 2016 Protonic Holland
4*724ba675SRob Herring * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
5*724ba675SRob Herring */
6*724ba675SRob Herring
7*724ba675SRob Herring/dts-v1/;
8*724ba675SRob Herring#include "imx6dl.dtsi"
9*724ba675SRob Herring#include "imx6qdl-vicut1.dtsi"
10*724ba675SRob Herring
11*724ba675SRob Herring/ {
12*724ba675SRob Herring	model = "Kverneland TGO";
13*724ba675SRob Herring	compatible = "kvg,victgo", "fsl,imx6dl";
14*724ba675SRob Herring
15*724ba675SRob Herring	gpio-keys {
16*724ba675SRob Herring		compatible = "gpio-keys";
17*724ba675SRob Herring		pinctrl-names = "default";
18*724ba675SRob Herring		pinctrl-0 = <&pinctrl_gpiokeys>;
19*724ba675SRob Herring		autorepeat;
20*724ba675SRob Herring
21*724ba675SRob Herring		key-power {
22*724ba675SRob Herring			label = "Power Button";
23*724ba675SRob Herring			gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
24*724ba675SRob Herring			linux,code = <KEY_POWER>;
25*724ba675SRob Herring			wakeup-source;
26*724ba675SRob Herring		};
27*724ba675SRob Herring
28*724ba675SRob Herring		key-enter {
29*724ba675SRob Herring			label = "Rotary Key";
30*724ba675SRob Herring			gpios = <&gpio2 05 GPIO_ACTIVE_LOW>;
31*724ba675SRob Herring			linux,code = <KEY_ENTER>;
32*724ba675SRob Herring			wakeup-source;
33*724ba675SRob Herring		};
34*724ba675SRob Herring	};
35*724ba675SRob Herring
36*724ba675SRob Herring	iio-hwmon {
37*724ba675SRob Herring		compatible = "iio-hwmon";
38*724ba675SRob Herring		io-channels = <&vdiv_vaccu>, <&vdiv_hitch_pos>;
39*724ba675SRob Herring	};
40*724ba675SRob Herring
41*724ba675SRob Herring	panel {
42*724ba675SRob Herring		compatible = "lg,lb070wv8";
43*724ba675SRob Herring		backlight = <&backlight_lcd>;
44*724ba675SRob Herring		power-supply = <&reg_3v3>;
45*724ba675SRob Herring
46*724ba675SRob Herring		port {
47*724ba675SRob Herring			panel_in: endpoint {
48*724ba675SRob Herring				remote-endpoint = <&lvds0_out>;
49*724ba675SRob Herring			};
50*724ba675SRob Herring		};
51*724ba675SRob Herring	};
52*724ba675SRob Herring
53*724ba675SRob Herring	clk50m_phy: phy-clock {
54*724ba675SRob Herring		compatible = "fixed-clock";
55*724ba675SRob Herring		#clock-cells = <0>;
56*724ba675SRob Herring		clock-frequency = <50000000>;
57*724ba675SRob Herring		clock-output-names = "enet_ref_pad";
58*724ba675SRob Herring	};
59*724ba675SRob Herring
60*724ba675SRob Herring	rotary-encoder {
61*724ba675SRob Herring		compatible = "rotary-encoder";
62*724ba675SRob Herring		pinctrl-0 = <&pinctrl_rotary_ch>;
63*724ba675SRob Herring		gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>,
64*724ba675SRob Herring			<&gpio2 4 GPIO_ACTIVE_HIGH>;
65*724ba675SRob Herring		linux,axis = <REL_WHEEL>;
66*724ba675SRob Herring		rotary-encoder,steps-per-period = <4>;
67*724ba675SRob Herring		rotary-encoder,relative-axis;
68*724ba675SRob Herring		rotary-encoder,rollover;
69*724ba675SRob Herring		wakeup-source;
70*724ba675SRob Herring	};
71*724ba675SRob Herring
72*724ba675SRob Herring	thermal-zones {
73*724ba675SRob Herring		chassis-thermal {
74*724ba675SRob Herring			polling-delay = <20000>;
75*724ba675SRob Herring			polling-delay-passive = <0>;
76*724ba675SRob Herring			thermal-sensors = <&tsens0>;
77*724ba675SRob Herring
78*724ba675SRob Herring			trips {
79*724ba675SRob Herring				alert {
80*724ba675SRob Herring					temperature = <105000>; /* millicelsius */
81*724ba675SRob Herring					hysteresis = <2000>; /* millicelsius */
82*724ba675SRob Herring					type = "passive";
83*724ba675SRob Herring				};
84*724ba675SRob Herring			};
85*724ba675SRob Herring		};
86*724ba675SRob Herring
87*724ba675SRob Herring		touch-thermal0 {
88*724ba675SRob Herring			polling-delay = <20000>;
89*724ba675SRob Herring			polling-delay-passive = <0>;
90*724ba675SRob Herring			thermal-sensors = <&touch_temp0>;
91*724ba675SRob Herring
92*724ba675SRob Herring			trips {
93*724ba675SRob Herring				alert {
94*724ba675SRob Herring					temperature = <105000>; /* millicelsius */
95*724ba675SRob Herring					hysteresis = <2000>; /* millicelsius */
96*724ba675SRob Herring					type = "passive";
97*724ba675SRob Herring				};
98*724ba675SRob Herring			};
99*724ba675SRob Herring		};
100*724ba675SRob Herring
101*724ba675SRob Herring		touch-thermal1 {
102*724ba675SRob Herring			polling-delay = <20000>;
103*724ba675SRob Herring			polling-delay-passive = <0>;
104*724ba675SRob Herring			thermal-sensors = <&touch_temp1>;
105*724ba675SRob Herring
106*724ba675SRob Herring			trips {
107*724ba675SRob Herring				alert {
108*724ba675SRob Herring					temperature = <105000>; /* millicelsius */
109*724ba675SRob Herring					hysteresis = <2000>; /* millicelsius */
110*724ba675SRob Herring					type = "passive";
111*724ba675SRob Herring				};
112*724ba675SRob Herring			};
113*724ba675SRob Herring		};
114*724ba675SRob Herring	};
115*724ba675SRob Herring
116*724ba675SRob Herring	touchscreen {
117*724ba675SRob Herring		compatible = "resistive-adc-touch";
118*724ba675SRob Herring		io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>,
119*724ba675SRob Herring                              <&adc_ts 5>;
120*724ba675SRob Herring		io-channel-names = "y", "z1", "z2", "x";
121*724ba675SRob Herring		touchscreen-min-pressure = <64687>;
122*724ba675SRob Herring		touchscreen-inverted-y;
123*724ba675SRob Herring		touchscreen-x-plate-ohms = <300>;
124*724ba675SRob Herring		touchscreen-y-plate-ohms = <800>;
125*724ba675SRob Herring	};
126*724ba675SRob Herring
127*724ba675SRob Herring	touch_temp0: touch-temperature-sensor0 {
128*724ba675SRob Herring		compatible = "generic-adc-thermal";
129*724ba675SRob Herring		#thermal-sensor-cells = <0>;
130*724ba675SRob Herring		io-channels = <&adc_ts 0>;
131*724ba675SRob Herring		io-channel-names = "sensor-channel";
132*724ba675SRob Herring		temperature-lookup-table = <    (-40000) 736
133*724ba675SRob Herring						85000 474>;
134*724ba675SRob Herring	};
135*724ba675SRob Herring
136*724ba675SRob Herring	touch_temp1: touch-temperature-sensor1 {
137*724ba675SRob Herring		compatible = "generic-adc-thermal";
138*724ba675SRob Herring		#thermal-sensor-cells = <0>;
139*724ba675SRob Herring		io-channels = <&adc_ts 7>;
140*724ba675SRob Herring		io-channel-names = "sensor-channel";
141*724ba675SRob Herring		temperature-lookup-table = <    (-40000) 826
142*724ba675SRob Herring						85000 609>;
143*724ba675SRob Herring	};
144*724ba675SRob Herring
145*724ba675SRob Herring	vdiv_vaccu: voltage-divider-vaccu {
146*724ba675SRob Herring		compatible = "voltage-divider";
147*724ba675SRob Herring		io-channels = <&adc_ts 2>;
148*724ba675SRob Herring		output-ohms = <2500>;
149*724ba675SRob Herring		full-ohms = <64000>;
150*724ba675SRob Herring		#io-channel-cells = <0>;
151*724ba675SRob Herring	};
152*724ba675SRob Herring
153*724ba675SRob Herring	vdiv_hitch_pos: voltage-divider-hitch-pos {
154*724ba675SRob Herring		compatible = "voltage-divider";
155*724ba675SRob Herring		io-channels = <&adc_ts 6>;
156*724ba675SRob Herring		output-ohms = <3300>;
157*724ba675SRob Herring		full-ohms = <13300>;
158*724ba675SRob Herring		#io-channel-cells = <0>;
159*724ba675SRob Herring	};
160*724ba675SRob Herring};
161*724ba675SRob Herring
162*724ba675SRob Herring&clks {
163*724ba675SRob Herring	clocks = <&clk50m_phy>;
164*724ba675SRob Herring	clock-names = "enet_ref_pad";
165*724ba675SRob Herring	assigned-clocks = <&clks IMX6QDL_CLK_ENET_REF_SEL>;
166*724ba675SRob Herring	assigned-clock-parents = <&clk50m_phy>;
167*724ba675SRob Herring};
168*724ba675SRob Herring
169*724ba675SRob Herring&ecspi2 {
170*724ba675SRob Herring	cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
171*724ba675SRob Herring	pinctrl-names = "default";
172*724ba675SRob Herring	pinctrl-0 = <&pinctrl_ecspi2>;
173*724ba675SRob Herring	status = "okay";
174*724ba675SRob Herring
175*724ba675SRob Herring	adc_ts: adc@0 {
176*724ba675SRob Herring		compatible = "ti,tsc2046e-adc";
177*724ba675SRob Herring		reg = <0>;
178*724ba675SRob Herring		pinctrl-0 = <&pinctrl_touchscreen>;
179*724ba675SRob Herring		pinctrl-names = "default";
180*724ba675SRob Herring		spi-max-frequency = <1000000>;
181*724ba675SRob Herring		interrupts-extended = <&gpio5 8 IRQ_TYPE_LEVEL_LOW>;
182*724ba675SRob Herring		#io-channel-cells = <1>;
183*724ba675SRob Herring
184*724ba675SRob Herring		#address-cells = <1>;
185*724ba675SRob Herring		#size-cells = <0>;
186*724ba675SRob Herring
187*724ba675SRob Herring		channel@1 {
188*724ba675SRob Herring			reg = <1>;
189*724ba675SRob Herring			settling-time-us = <700>;
190*724ba675SRob Herring			oversampling-ratio = <5>;
191*724ba675SRob Herring		};
192*724ba675SRob Herring
193*724ba675SRob Herring		channel@3 {
194*724ba675SRob Herring			reg = <3>;
195*724ba675SRob Herring			settling-time-us = <700>;
196*724ba675SRob Herring			oversampling-ratio = <5>;
197*724ba675SRob Herring		};
198*724ba675SRob Herring
199*724ba675SRob Herring		channel@4 {
200*724ba675SRob Herring			reg = <4>;
201*724ba675SRob Herring			settling-time-us = <700>;
202*724ba675SRob Herring			oversampling-ratio = <5>;
203*724ba675SRob Herring		};
204*724ba675SRob Herring
205*724ba675SRob Herring		channel@5 {
206*724ba675SRob Herring			reg = <5>;
207*724ba675SRob Herring			settling-time-us = <700>;
208*724ba675SRob Herring			oversampling-ratio = <5>;
209*724ba675SRob Herring		};
210*724ba675SRob Herring	};
211*724ba675SRob Herring};
212*724ba675SRob Herring
213*724ba675SRob Herring&fec {
214*724ba675SRob Herring	pinctrl-names = "default";
215*724ba675SRob Herring	pinctrl-0 = <&pinctrl_enet>;
216*724ba675SRob Herring	phy-mode = "rmii";
217*724ba675SRob Herring	phy-handle = <&rmii_phy>;
218*724ba675SRob Herring	status = "okay";
219*724ba675SRob Herring
220*724ba675SRob Herring	mdio {
221*724ba675SRob Herring		#address-cells = <1>;
222*724ba675SRob Herring		#size-cells = <0>;
223*724ba675SRob Herring
224*724ba675SRob Herring		/* Microchip KSZ8081RNA PHY */
225*724ba675SRob Herring		rmii_phy: ethernet-phy@0 {
226*724ba675SRob Herring			reg = <0>;
227*724ba675SRob Herring			interrupts-extended = <&gpio4 30 IRQ_TYPE_LEVEL_LOW>;
228*724ba675SRob Herring			reset-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
229*724ba675SRob Herring			reset-assert-us = <10000>;
230*724ba675SRob Herring			reset-deassert-us = <300>;
231*724ba675SRob Herring		};
232*724ba675SRob Herring	};
233*724ba675SRob Herring};
234*724ba675SRob Herring
235*724ba675SRob Herring&gpio1 {
236*724ba675SRob Herring	gpio-line-names =
237*724ba675SRob Herring		"CAN1_TERM", "SD1_CD", "ITU656_RESET", "CAM1_MIRROR",
238*724ba675SRob Herring			"CAM2_MIRROR", "", "", "SMBALERT",
239*724ba675SRob Herring		"DEBUG_0", "DEBUG_1", "", "", "", "", "", "",
240*724ba675SRob Herring		"SD1_DATA0", "SD1_DATA1", "SD1_CMD", "SD1_DATA2", "SD1_CLK",
241*724ba675SRob Herring			"SD1_DATA3", "ETH_MDIO", "",
242*724ba675SRob Herring		"", "", "", "", "", "", "", "ETH_MDC";
243*724ba675SRob Herring};
244*724ba675SRob Herring
245*724ba675SRob Herring&gpio4 {
246*724ba675SRob Herring	gpio-line-names =
247*724ba675SRob Herring		"", "", "", "", "", "", "UART4_TXD", "UART4_RXD",
248*724ba675SRob Herring		"UART5_TXD", "UART5_RXD", "CAN1_TX", "CAN1_RX", "CAN1_SR",
249*724ba675SRob Herring			"CAN2_SR", "CAN2_TX", "CAN2_RX",
250*724ba675SRob Herring		"", "", "DIP1_FB", "", "VCAM_EN", "ON1_CTRL", "ON2_CTRL",
251*724ba675SRob Herring			"HITCH_IN_OUT",
252*724ba675SRob Herring		"LIGHT_ON", "", "ETH_RESET", "CONTACT_IN", "BL_EN",
253*724ba675SRob Herring			"BL_PWM", "ETH_INT", "ISB_LED";
254*724ba675SRob Herring};
255*724ba675SRob Herring
256*724ba675SRob Herring&gpio5 {
257*724ba675SRob Herring	gpio-line-names =
258*724ba675SRob Herring		"", "", "", "", "", "", "", "",
259*724ba675SRob Herring		"TSC_PENIRQ", "TSC_BUSY", "ECSPI2_MOSI", "ECSPI2_MISO",
260*724ba675SRob Herring			"ECSPI2_SS0", "ECSPI2_SCLK", "", "",
261*724ba675SRob Herring		"", "", "ITU656_CLK", "I2S_MCLK", "ITU656_PDN", "AUDIO_RESET",
262*724ba675SRob Herring			"I2S_BITCLK", "I2S_DOUT",
263*724ba675SRob Herring		"I2S_LRCLK", "I2S_DIN", "I2C1_SDA", "I2C1_SCL", "YACO_AUX_RX",
264*724ba675SRob Herring			"YACO_AUX_TX", "ITU656_D0", "ITU656_D1";
265*724ba675SRob Herring};
266*724ba675SRob Herring
267*724ba675SRob Herring&gpio6 {
268*724ba675SRob Herring	gpio-line-names =
269*724ba675SRob Herring		"ITU656_D2", "ITU656_D3", "ITU656_D4", "ITU656_D5",
270*724ba675SRob Herring			"ITU656_D6", "ITU656_D7", "", "",
271*724ba675SRob Herring		"", "", "", "", "", "", "", "",
272*724ba675SRob Herring		"", "", "", "", "", "", "", "",
273*724ba675SRob Herring		"", "", "", "", "", "", "", "";
274*724ba675SRob Herring};
275*724ba675SRob Herring
276*724ba675SRob Herring&i2c1 {
277*724ba675SRob Herring	keypad@70 {
278*724ba675SRob Herring		compatible = "holtek,ht16k33";
279*724ba675SRob Herring		pinctrl-names = "default";
280*724ba675SRob Herring		pinctrl-0 = <&pinctrl_keypad>;
281*724ba675SRob Herring		reg = <0x70>;
282*724ba675SRob Herring		refresh-rate-hz = <20>;
283*724ba675SRob Herring		debounce-delay-ms = <50>;
284*724ba675SRob Herring		interrupts-extended = <&gpio4 5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
285*724ba675SRob Herring		keypad,num-rows = <12>;
286*724ba675SRob Herring		keypad,num-columns = <3>;
287*724ba675SRob Herring		linux,keymap = <
288*724ba675SRob Herring			MATRIX_KEY(2, 0, KEY_F6)
289*724ba675SRob Herring			MATRIX_KEY(3, 0, KEY_F8)
290*724ba675SRob Herring			MATRIX_KEY(4, 0, KEY_F10)
291*724ba675SRob Herring			MATRIX_KEY(5, 0, KEY_F4)
292*724ba675SRob Herring			MATRIX_KEY(6, 0, KEY_F2)
293*724ba675SRob Herring			MATRIX_KEY(2, 1, KEY_F5)
294*724ba675SRob Herring			MATRIX_KEY(3, 1, KEY_F7)
295*724ba675SRob Herring			MATRIX_KEY(4, 1, KEY_F9)
296*724ba675SRob Herring			MATRIX_KEY(5, 1, KEY_F3)
297*724ba675SRob Herring			MATRIX_KEY(6, 1, KEY_F1)
298*724ba675SRob Herring		      >;
299*724ba675SRob Herring	};
300*724ba675SRob Herring};
301*724ba675SRob Herring
302*724ba675SRob Herring&iomuxc {
303*724ba675SRob Herring	pinctrl_ecspi2: ecspi2grp {
304*724ba675SRob Herring		fsl,pins = <
305*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI		0x100b1
306*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO		0x100b1
307*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12		0x100b1
308*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK		0x100b1
309*724ba675SRob Herring		>;
310*724ba675SRob Herring	};
311*724ba675SRob Herring
312*724ba675SRob Herring	pinctrl_enet: enetgrp {
313*724ba675SRob Herring		fsl,pins = <
314*724ba675SRob Herring			/* MX6QDL_ENET_PINGRP4 */
315*724ba675SRob Herring			MX6QDL_PAD_ENET_MDC__ENET_MDC			0x1b0b0
316*724ba675SRob Herring			MX6QDL_PAD_ENET_MDIO__ENET_MDIO			0x1b0b0
317*724ba675SRob Herring			MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0		0x1b0b0
318*724ba675SRob Herring			MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1		0x1b0b0
319*724ba675SRob Herring			MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER		0x1b0b0
320*724ba675SRob Herring			MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN		0x1b0b0
321*724ba675SRob Herring			MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0		0x1b0b0
322*724ba675SRob Herring			MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1		0x1b0b0
323*724ba675SRob Herring			MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN		0x1b0b0
324*724ba675SRob Herring			MX6QDL_PAD_GPIO_16__ENET_REF_CLK		0x1b0b0
325*724ba675SRob Herring			/* Phy reset */
326*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26		0x1b0b0
327*724ba675SRob Herring			/* nINTRP */
328*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30		0x1b0b0
329*724ba675SRob Herring		>;
330*724ba675SRob Herring	};
331*724ba675SRob Herring
332*724ba675SRob Herring	pinctrl_gpiokeys: gpiokeygrp {
333*724ba675SRob Herring		fsl,pins = <
334*724ba675SRob Herring			/* ROTARY_BTN */
335*724ba675SRob Herring			MX6QDL_PAD_NANDF_D5__GPIO2_IO05			0x1b0b0
336*724ba675SRob Herring			/* nON_SWITCH */
337*724ba675SRob Herring			MX6QDL_PAD_EIM_CS0__GPIO2_IO23			0x1b0b0
338*724ba675SRob Herring		>;
339*724ba675SRob Herring	};
340*724ba675SRob Herring
341*724ba675SRob Herring	pinctrl_keypad: keypadgrp {
342*724ba675SRob Herring		fsl,pins = <
343*724ba675SRob Herring			MX6QDL_PAD_GPIO_19__GPIO4_IO05			0x1b0b0
344*724ba675SRob Herring		>;
345*724ba675SRob Herring	};
346*724ba675SRob Herring
347*724ba675SRob Herring	pinctrl_rotary_ch: rotarychgrp {
348*724ba675SRob Herring		fsl,pins = <
349*724ba675SRob Herring			MX6QDL_PAD_NANDF_D3__GPIO2_IO03			0x1b0b0
350*724ba675SRob Herring			MX6QDL_PAD_NANDF_D4__GPIO2_IO04			0x1b0b0
351*724ba675SRob Herring		>;
352*724ba675SRob Herring	};
353*724ba675SRob Herring
354*724ba675SRob Herring	pinctrl_touchscreen: touchscreengrp {
355*724ba675SRob Herring		fsl,pins = <
356*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08		0x1b0b0
357*724ba675SRob Herring			MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09		0x1b0b0
358*724ba675SRob Herring		>;
359*724ba675SRob Herring	};
360*724ba675SRob Herring};
361