1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright (c) 2016 Protonic Holland
4 */
5
6/dts-v1/;
7#include "imx6dl.dtsi"
8#include "imx6qdl-prti6q.dtsi"
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/leds/common.h>
11#include <dt-bindings/sound/fsl-imx-audmux.h>
12
13/ {
14	model = "Protonic VT7";
15	compatible = "prt,prtvt7", "fsl,imx6dl";
16
17	memory@10000000 {
18		device_type = "memory";
19		reg = <0x10000000 0x20000000>;
20	};
21
22	backlight_lcd: backlight-lcd {
23		compatible = "pwm-backlight";
24		pinctrl-names = "default";
25		pinctrl-0 = <&pinctrl_backlight>;
26		pwms = <&pwm1 0 500000>;
27		brightness-levels = <0 20 81 248 1000>;
28		default-brightness-level = <20>;
29		num-interpolated-steps = <21>;
30		power-supply = <&reg_bl_12v0>;
31		enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
32	};
33
34	keys {
35		compatible = "gpio-keys";
36		autorepeat;
37
38		esc {
39			label = "GPIO Key ESC";
40			linux,code = <KEY_ESC>;
41			gpios = <&gpio_pca 0 GPIO_ACTIVE_LOW>;
42		};
43
44		up {
45			label = "GPIO Key UP";
46			linux,code = <KEY_UP>;
47			gpios = <&gpio_pca 1 GPIO_ACTIVE_LOW>;
48		};
49
50		down {
51			label = "GPIO Key DOWN";
52			linux,code = <KEY_DOWN>;
53			gpios = <&gpio_pca 4 GPIO_ACTIVE_LOW>;
54		};
55
56		enter {
57			label = "GPIO Key Enter";
58			linux,code = <KEY_ENTER>;
59			gpios = <&gpio_pca 3 GPIO_ACTIVE_LOW>;
60		};
61
62		cycle {
63			label = "GPIO Key CYCLE";
64			linux,code = <KEY_CYCLEWINDOWS>;
65			gpios = <&gpio_pca 2 GPIO_ACTIVE_LOW>;
66		};
67
68		f1 {
69			label = "GPIO Key F1";
70			linux,code = <KEY_F1>;
71			gpios = <&gpio_pca 14 GPIO_ACTIVE_LOW>;
72		};
73
74		f2 {
75			label = "GPIO Key F2";
76			linux,code = <KEY_F2>;
77			gpios = <&gpio_pca 13 GPIO_ACTIVE_LOW>;
78		};
79
80		f3 {
81			label = "GPIO Key F3";
82			linux,code = <KEY_F3>;
83			gpios = <&gpio_pca 12 GPIO_ACTIVE_LOW>;
84		};
85
86		f4 {
87			label = "GPIO Key F4";
88			linux,code = <KEY_F4>;
89			gpios = <&gpio_pca 11 GPIO_ACTIVE_LOW>;
90		};
91
92		f5 {
93			label = "GPIO Key F5";
94			linux,code = <KEY_F5>;
95			gpios = <&gpio_pca 10 GPIO_ACTIVE_LOW>;
96		};
97
98		f6 {
99			label = "GPIO Key F6";
100			linux,code = <KEY_F6>;
101			gpios = <&gpio_pca 5 GPIO_ACTIVE_LOW>;
102		};
103
104		f7 {
105			label = "GPIO Key F7";
106			linux,code = <KEY_F7>;
107			gpios = <&gpio_pca 6 GPIO_ACTIVE_LOW>;
108		};
109
110		f8 {
111			label = "GPIO Key F8";
112			linux,code = <KEY_F8>;
113			gpios = <&gpio_pca 7 GPIO_ACTIVE_LOW>;
114		};
115
116		f9 {
117			label = "GPIO Key F9";
118			linux,code = <KEY_F9>;
119			gpios = <&gpio_pca 8 GPIO_ACTIVE_LOW>;
120		};
121
122		f10 {
123			label = "GPIO Key F10";
124			linux,code = <KEY_F10>;
125			gpios = <&gpio_pca 9 GPIO_ACTIVE_LOW>;
126		};
127	};
128
129	leds {
130		compatible = "gpio-leds";
131		pinctrl-names = "default";
132		pinctrl-0 = <&pinctrl_leds>;
133
134		led-debug0 {
135			function = LED_FUNCTION_STATUS;
136			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
137			linux,default-trigger = "heartbeat";
138		};
139	};
140
141	reg_bl_12v0: regulator-bl-12v0 {
142		compatible = "regulator-fixed";
143		pinctrl-names = "default";
144		pinctrl-0 = <&pinctrl_reg_bl_12v0>;
145		regulator-name = "bl-12v0";
146		regulator-min-microvolt = <12000000>;
147		regulator-max-microvolt = <12000000>;
148		gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
149		enable-active-high;
150	};
151
152	reg_1v8: regulator-1v8 {
153		compatible = "regulator-fixed";
154		regulator-name = "1v8";
155		regulator-min-microvolt = <1800000>;
156		regulator-max-microvolt = <1800000>;
157	};
158
159	sound {
160		compatible = "simple-audio-card";
161		simple-audio-card,name = "prti6q-sgtl5000";
162		simple-audio-card,format = "i2s";
163		simple-audio-card,widgets =
164			"Microphone", "Microphone Jack",
165			"Line", "Line In Jack",
166			"Headphone", "Headphone Jack",
167			"Speaker", "External Speaker";
168		simple-audio-card,routing =
169			"MIC_IN", "Microphone Jack",
170			"LINE_IN", "Line In Jack",
171			"Headphone Jack", "HP_OUT",
172			"External Speaker", "LINE_OUT";
173
174		simple-audio-card,cpu {
175			sound-dai = <&ssi1>;
176			system-clock-frequency = <0>;
177		};
178
179		simple-audio-card,codec {
180			sound-dai = <&sgtl5000>;
181			bitclock-master;
182			frame-master;
183		};
184	};
185};
186
187&audmux {
188	pinctrl-names = "default";
189	pinctrl-0 = <&pinctrl_audmux>;
190	status = "okay";
191
192	mux-ssi1 {
193		fsl,audmux-port = <0>;
194		fsl,port-config = <
195			IMX_AUDMUX_V2_PTCR_SYN		0
196			IMX_AUDMUX_V2_PTCR_TFSEL(2)	0
197			IMX_AUDMUX_V2_PTCR_TCSEL(2)	0
198			IMX_AUDMUX_V2_PTCR_TFSDIR	0
199			IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2)
200		>;
201	};
202
203	mux-pins3 {
204		fsl,audmux-port = <2>;
205		fsl,port-config = <
206			IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0)
207			0		       IMX_AUDMUX_V2_PDCR_TXRXEN
208		>;
209	};
210};
211
212&can1 {
213	pinctrl-0 = <&pinctrl_can1 &pinctrl_can1phy>;
214};
215
216&clks {
217	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>;
218	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>;
219};
220
221&ecspi2 {
222	cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
223	pinctrl-names = "default";
224	pinctrl-0 = <&pinctrl_ecspi2>;
225	status = "okay";
226};
227
228&i2c1 {
229	sgtl5000: audio-codec@a {
230		compatible = "fsl,sgtl5000";
231		reg = <0xa>;
232		pinctrl-names = "default";
233		pinctrl-0 = <&pinctrl_codec>;
234		#sound-dai-cells = <0>;
235		clocks = <&clks 201>;
236		VDDA-supply = <&reg_3v3>;
237		VDDIO-supply = <&reg_3v3>;
238		VDDD-supply = <&reg_1v8>;
239	};
240};
241
242&i2c3 {
243	rtc@51 {
244		compatible = "nxp,pcf8563";
245		reg = <0x51>;
246	};
247
248	gpio_pca: gpio@74 {
249		compatible = "nxp,pca9539";
250		reg = <0x74>;
251		interrupts-extended = <&gpio4 5 IRQ_TYPE_LEVEL_LOW>;
252		#gpio-cells = <2>;
253		gpio-controller;
254	};
255};
256
257&ipu1 {
258	pinctrl-names = "default";
259	pinctrl-0 = <&pinctrl_ipu1_csi0>;
260	status = "okay";
261};
262
263&pwm1 {
264	#pwm-cells = <2>;
265	pinctrl-names = "default";
266	pinctrl-0 = <&pinctrl_pwm1>;
267	status = "okay";
268};
269
270&snvs_poweroff {
271	status = "okay";
272};
273
274&snvs_pwrkey {
275	status = "okay";
276};
277
278&ssi1 {
279	#sound-dai-cells = <0>;
280	fsl,mode = "ac97-slave";
281	status = "okay";
282};
283
284&usbh1 {
285	status = "disabled";
286};
287
288&vpu {
289	status = "disabled";
290};
291
292&iomuxc {
293	pinctrl_audmux: audmuxgrp {
294		fsl,pins = <
295			MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1		0x030b0
296			MX6QDL_PAD_CSI0_DAT7__AUD3_RXD		0x130b0
297			MX6QDL_PAD_CSI0_DAT4__AUD3_TXC		0x130b0
298			MX6QDL_PAD_CSI0_DAT5__AUD3_TXD		0x110b0
299			MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS		0x130b0
300		>;
301	};
302
303	pinctrl_backlight: backlightgrp {
304		fsl,pins = <
305			MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28	0x1b0b0
306		>;
307	};
308
309	pinctrl_can1phy: can1phy {
310		fsl,pins = <
311			/* CAN1_SR */
312			MX6QDL_PAD_KEY_COL3__GPIO4_IO12		0x13070
313			/* CAN1_TERM */
314			MX6QDL_PAD_GPIO_0__GPIO1_IO00		0x1b0b0
315		>;
316	};
317
318	pinctrl_codec: codecgrp {
319		fsl,pins = <
320			/* AUDIO_nRESET */
321			MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21	0x1f0b0
322		>;
323	};
324
325	pinctrl_ecspi2: ecspi2grp {
326		fsl,pins = <
327			MX6QDL_PAD_EIM_OE__ECSPI2_MISO		0x100b1
328			MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK		0x100b1
329			MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI		0x100b1
330			MX6QDL_PAD_EIM_RW__GPIO2_IO26		0x000b1
331		>;
332	};
333
334	pinctrl_ipu1_csi0: ipu1csi0grp {
335		fsl,pins = <
336			MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12	0x1b0b0
337			MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13	0x1b0b0
338			MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14	0x1b0b0
339			MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15	0x1b0b0
340			MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16	0x1b0b0
341			MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17	0x1b0b0
342			MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18	0x1b0b0
343			MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19	0x1b0b0
344			MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
345			/* ITU656_nRESET */
346			MX6QDL_PAD_GPIO_2__GPIO1_IO02		0x1b0b0
347			/* ITU656_nPDN */
348			MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20	0x1b0b0
349		>;
350	};
351
352	pinctrl_ipu1_disp: ipudisp1grp {
353		fsl,pins = <
354			MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0xb0
355			MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15	   0xb0
356
357			MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0xb0
358			MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0xb0
359			MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0xb0
360			MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0xb0
361			MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0xb0
362			MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0xb0
363			MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0xb0
364			MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0xb0
365
366			MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0xb0
367			MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0xb0
368			MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0xb0
369			MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0xb0
370			MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0xb0
371			MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0xb0
372			MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0xb0
373			MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0xb0
374
375			MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0xb0
376			MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0xb0
377			MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0xb0
378			MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0xb0
379			MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0xb0
380			MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0xb0
381			MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0xb0
382			MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0xb0
383		>;
384	};
385
386	pinctrl_leds: ledsgrp {
387		fsl,pins = <
388			MX6QDL_PAD_GPIO_8__GPIO1_IO08		0x1b0b0
389		>;
390	};
391
392	pinctrl_pwm1: pwm1grp {
393		fsl,pins = <
394			MX6QDL_PAD_GPIO_9__PWM1_OUT		0x1b0b0
395		>;
396	};
397
398	pinctrl_reg_bl_12v0: 12blgrp {
399		fsl,pins = <
400			MX6QDL_PAD_GPIO_7__GPIO1_IO07		0x1b0b0
401		>;
402	};
403
404	pinctrl_tsc: tscgrp {
405
406		fsl,pins = <
407			MX6QDL_PAD_EIM_D20__GPIO3_IO20		0x1b0b0
408			MX6QDL_PAD_EIM_EB2__GPIO2_IO30		0x1b0b0
409		>;
410	};
411};
412