Linux Audio

Check our new training course

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