1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*724ba675SRob Herring//
3*724ba675SRob Herring// Copyright 2013 Freescale Semiconductor, Inc.
4*724ba675SRob Herring
5*724ba675SRob Herring/dts-v1/;
6*724ba675SRob Herring#include "vf610.dtsi"
7*724ba675SRob Herring
8*724ba675SRob Herring/ {
9*724ba675SRob Herring	model = "VF610 Tower Board";
10*724ba675SRob Herring	compatible = "fsl,vf610-twr", "fsl,vf610";
11*724ba675SRob Herring
12*724ba675SRob Herring	chosen {
13*724ba675SRob Herring		bootargs = "console=ttyLP1,115200";
14*724ba675SRob Herring	};
15*724ba675SRob Herring
16*724ba675SRob Herring	memory@80000000 {
17*724ba675SRob Herring		device_type = "memory";
18*724ba675SRob Herring		reg = <0x80000000 0x8000000>;
19*724ba675SRob Herring	};
20*724ba675SRob Herring
21*724ba675SRob Herring	audio_ext: mclk_osc {
22*724ba675SRob Herring		compatible = "fixed-clock";
23*724ba675SRob Herring		#clock-cells = <0>;
24*724ba675SRob Herring		clock-frequency = <24576000>;
25*724ba675SRob Herring	};
26*724ba675SRob Herring
27*724ba675SRob Herring	enet_ext: eth_osc {
28*724ba675SRob Herring		compatible = "fixed-clock";
29*724ba675SRob Herring		#clock-cells = <0>;
30*724ba675SRob Herring		clock-frequency = <50000000>;
31*724ba675SRob Herring	};
32*724ba675SRob Herring
33*724ba675SRob Herring	regulators {
34*724ba675SRob Herring		compatible = "simple-bus";
35*724ba675SRob Herring		#address-cells = <1>;
36*724ba675SRob Herring		#size-cells = <0>;
37*724ba675SRob Herring
38*724ba675SRob Herring		reg_3p3v: regulator@0 {
39*724ba675SRob Herring			compatible = "regulator-fixed";
40*724ba675SRob Herring			reg = <0>;
41*724ba675SRob Herring			regulator-name = "3P3V";
42*724ba675SRob Herring			regulator-min-microvolt = <3300000>;
43*724ba675SRob Herring			regulator-max-microvolt = <3300000>;
44*724ba675SRob Herring			regulator-always-on;
45*724ba675SRob Herring		};
46*724ba675SRob Herring
47*724ba675SRob Herring		reg_vcc_3v3_mcu: regulator@1 {
48*724ba675SRob Herring			compatible = "regulator-fixed";
49*724ba675SRob Herring			reg = <1>;
50*724ba675SRob Herring			regulator-name = "vcc_3v3_mcu";
51*724ba675SRob Herring			regulator-min-microvolt = <3300000>;
52*724ba675SRob Herring			regulator-max-microvolt = <3300000>;
53*724ba675SRob Herring		};
54*724ba675SRob Herring	};
55*724ba675SRob Herring
56*724ba675SRob Herring	sound {
57*724ba675SRob Herring		compatible = "simple-audio-card";
58*724ba675SRob Herring		simple-audio-card,format = "i2s";
59*724ba675SRob Herring		simple-audio-card,widgets =
60*724ba675SRob Herring			"Microphone", "Microphone Jack",
61*724ba675SRob Herring			"Headphone", "Headphone Jack",
62*724ba675SRob Herring			"Speaker", "Speaker Ext",
63*724ba675SRob Herring			"Line", "Line In Jack";
64*724ba675SRob Herring		simple-audio-card,routing =
65*724ba675SRob Herring			"MIC_IN", "Microphone Jack",
66*724ba675SRob Herring			"Microphone Jack", "Mic Bias",
67*724ba675SRob Herring			"LINE_IN", "Line In Jack",
68*724ba675SRob Herring			"Headphone Jack", "HP_OUT",
69*724ba675SRob Herring			"Speaker Ext", "LINE_OUT";
70*724ba675SRob Herring
71*724ba675SRob Herring		simple-audio-card,cpu {
72*724ba675SRob Herring			sound-dai = <&sai2>;
73*724ba675SRob Herring			frame-master;
74*724ba675SRob Herring			bitclock-master;
75*724ba675SRob Herring		};
76*724ba675SRob Herring
77*724ba675SRob Herring		simple-audio-card,codec {
78*724ba675SRob Herring			sound-dai = <&codec>;
79*724ba675SRob Herring			frame-master;
80*724ba675SRob Herring			bitclock-master;
81*724ba675SRob Herring		};
82*724ba675SRob Herring	};
83*724ba675SRob Herring};
84*724ba675SRob Herring
85*724ba675SRob Herring&adc0 {
86*724ba675SRob Herring	pinctrl-names = "default";
87*724ba675SRob Herring	pinctrl-0 = <&pinctrl_adc0_ad5>;
88*724ba675SRob Herring	vref-supply = <&reg_vcc_3v3_mcu>;
89*724ba675SRob Herring	status = "okay";
90*724ba675SRob Herring};
91*724ba675SRob Herring
92*724ba675SRob Herring&clks {
93*724ba675SRob Herring	clocks = <&sxosc>, <&fxosc>, <&enet_ext>, <&audio_ext>;
94*724ba675SRob Herring	clock-names = "sxosc", "fxosc", "enet_ext", "audio_ext";
95*724ba675SRob Herring	assigned-clocks = <&clks VF610_CLK_ENET_SEL>,
96*724ba675SRob Herring			  <&clks VF610_CLK_ENET_TS_SEL>;
97*724ba675SRob Herring	assigned-clock-parents = <&clks VF610_CLK_ENET_EXT>,
98*724ba675SRob Herring				 <&clks VF610_CLK_ENET_EXT>;
99*724ba675SRob Herring};
100*724ba675SRob Herring
101*724ba675SRob Herring&dspi0 {
102*724ba675SRob Herring	bus-num = <0>;
103*724ba675SRob Herring	pinctrl-names = "default";
104*724ba675SRob Herring	pinctrl-0 = <&pinctrl_dspi0>;
105*724ba675SRob Herring	status = "okay";
106*724ba675SRob Herring
107*724ba675SRob Herring	sflash: at26df081a@0 {
108*724ba675SRob Herring		#address-cells = <1>;
109*724ba675SRob Herring		#size-cells = <1>;
110*724ba675SRob Herring		compatible = "atmel,at26df081a";
111*724ba675SRob Herring		spi-max-frequency = <16000000>;
112*724ba675SRob Herring		spi-cpol;
113*724ba675SRob Herring		spi-cpha;
114*724ba675SRob Herring		reg = <0>;
115*724ba675SRob Herring	};
116*724ba675SRob Herring};
117*724ba675SRob Herring
118*724ba675SRob Herring&edma0 {
119*724ba675SRob Herring	status = "okay";
120*724ba675SRob Herring};
121*724ba675SRob Herring
122*724ba675SRob Herring&esdhc1 {
123*724ba675SRob Herring	pinctrl-names = "default";
124*724ba675SRob Herring	pinctrl-0 = <&pinctrl_esdhc1>;
125*724ba675SRob Herring	bus-width = <4>;
126*724ba675SRob Herring	cd-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
127*724ba675SRob Herring	status = "okay";
128*724ba675SRob Herring};
129*724ba675SRob Herring
130*724ba675SRob Herring&fec0 {
131*724ba675SRob Herring	phy-mode = "rmii";
132*724ba675SRob Herring	phy-handle = <&ethphy0>;
133*724ba675SRob Herring	pinctrl-names = "default";
134*724ba675SRob Herring	pinctrl-0 = <&pinctrl_fec0>;
135*724ba675SRob Herring	status = "okay";
136*724ba675SRob Herring
137*724ba675SRob Herring	mdio {
138*724ba675SRob Herring		#address-cells = <1>;
139*724ba675SRob Herring		#size-cells = <0>;
140*724ba675SRob Herring
141*724ba675SRob Herring		ethphy0: ethernet-phy@0 {
142*724ba675SRob Herring			reg = <0>;
143*724ba675SRob Herring		};
144*724ba675SRob Herring
145*724ba675SRob Herring		ethphy1: ethernet-phy@1 {
146*724ba675SRob Herring			reg = <1>;
147*724ba675SRob Herring		};
148*724ba675SRob Herring	};
149*724ba675SRob Herring};
150*724ba675SRob Herring
151*724ba675SRob Herring&fec1 {
152*724ba675SRob Herring	phy-mode = "rmii";
153*724ba675SRob Herring	phy-handle = <&ethphy1>;
154*724ba675SRob Herring	pinctrl-names = "default";
155*724ba675SRob Herring	pinctrl-0 = <&pinctrl_fec1>;
156*724ba675SRob Herring	status = "okay";
157*724ba675SRob Herring};
158*724ba675SRob Herring
159*724ba675SRob Herring&i2c0 {
160*724ba675SRob Herring	clock-frequency = <100000>;
161*724ba675SRob Herring	pinctrl-names = "default";
162*724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c0>;
163*724ba675SRob Herring	status = "okay";
164*724ba675SRob Herring
165*724ba675SRob Herring	codec: sgtl5000@a {
166*724ba675SRob Herring	       #sound-dai-cells = <0>;
167*724ba675SRob Herring	       compatible = "fsl,sgtl5000";
168*724ba675SRob Herring	       reg = <0x0a>;
169*724ba675SRob Herring	       VDDA-supply = <&reg_3p3v>;
170*724ba675SRob Herring	       VDDIO-supply = <&reg_3p3v>;
171*724ba675SRob Herring	       clocks = <&clks VF610_CLK_SAI2>;
172*724ba675SRob Herring	};
173*724ba675SRob Herring};
174*724ba675SRob Herring
175*724ba675SRob Herring&iomuxc {
176*724ba675SRob Herring	vf610-twr {
177*724ba675SRob Herring		pinctrl_adc0_ad5: adc0ad5grp {
178*724ba675SRob Herring			fsl,pins = <
179*724ba675SRob Herring				VF610_PAD_PTC30__ADC0_SE5		0xa1
180*724ba675SRob Herring			>;
181*724ba675SRob Herring		};
182*724ba675SRob Herring
183*724ba675SRob Herring		pinctrl_dspi0: dspi0grp {
184*724ba675SRob Herring			fsl,pins = <
185*724ba675SRob Herring				VF610_PAD_PTB19__DSPI0_CS0		0x1182
186*724ba675SRob Herring				VF610_PAD_PTB20__DSPI0_SIN		0x1181
187*724ba675SRob Herring				VF610_PAD_PTB21__DSPI0_SOUT		0x1182
188*724ba675SRob Herring				VF610_PAD_PTB22__DSPI0_SCK		0x1182
189*724ba675SRob Herring			>;
190*724ba675SRob Herring		};
191*724ba675SRob Herring
192*724ba675SRob Herring		pinctrl_esdhc1: esdhc1grp {
193*724ba675SRob Herring			fsl,pins = <
194*724ba675SRob Herring				VF610_PAD_PTA24__ESDHC1_CLK	0x31ef
195*724ba675SRob Herring				VF610_PAD_PTA25__ESDHC1_CMD	0x31ef
196*724ba675SRob Herring				VF610_PAD_PTA26__ESDHC1_DAT0	0x31ef
197*724ba675SRob Herring				VF610_PAD_PTA27__ESDHC1_DAT1	0x31ef
198*724ba675SRob Herring				VF610_PAD_PTA28__ESDHC1_DATA2	0x31ef
199*724ba675SRob Herring				VF610_PAD_PTA29__ESDHC1_DAT3	0x31ef
200*724ba675SRob Herring				VF610_PAD_PTA7__GPIO_134	0x219d
201*724ba675SRob Herring			>;
202*724ba675SRob Herring		};
203*724ba675SRob Herring
204*724ba675SRob Herring		pinctrl_fec0: fec0grp {
205*724ba675SRob Herring			fsl,pins = <
206*724ba675SRob Herring				VF610_PAD_PTA6__RMII_CLKIN		0x30d1
207*724ba675SRob Herring				VF610_PAD_PTC0__ENET_RMII0_MDC		0x30d3
208*724ba675SRob Herring				VF610_PAD_PTC1__ENET_RMII0_MDIO		0x30d1
209*724ba675SRob Herring				VF610_PAD_PTC2__ENET_RMII0_CRS		0x30d1
210*724ba675SRob Herring				VF610_PAD_PTC3__ENET_RMII0_RXD1		0x30d1
211*724ba675SRob Herring				VF610_PAD_PTC4__ENET_RMII0_RXD0		0x30d1
212*724ba675SRob Herring				VF610_PAD_PTC5__ENET_RMII0_RXER		0x30d1
213*724ba675SRob Herring				VF610_PAD_PTC6__ENET_RMII0_TXD1		0x30d2
214*724ba675SRob Herring				VF610_PAD_PTC7__ENET_RMII0_TXD0		0x30d2
215*724ba675SRob Herring				VF610_PAD_PTC8__ENET_RMII0_TXEN		0x30d2
216*724ba675SRob Herring			>;
217*724ba675SRob Herring		};
218*724ba675SRob Herring
219*724ba675SRob Herring		pinctrl_fec1: fec1grp {
220*724ba675SRob Herring			fsl,pins = <
221*724ba675SRob Herring				VF610_PAD_PTC9__ENET_RMII1_MDC		0x30d2
222*724ba675SRob Herring				VF610_PAD_PTC10__ENET_RMII1_MDIO	0x30d3
223*724ba675SRob Herring				VF610_PAD_PTC11__ENET_RMII1_CRS		0x30d1
224*724ba675SRob Herring				VF610_PAD_PTC12__ENET_RMII1_RXD1	0x30d1
225*724ba675SRob Herring				VF610_PAD_PTC13__ENET_RMII1_RXD0	0x30d1
226*724ba675SRob Herring				VF610_PAD_PTC14__ENET_RMII1_RXER	0x30d1
227*724ba675SRob Herring				VF610_PAD_PTC15__ENET_RMII1_TXD1	0x30d2
228*724ba675SRob Herring				VF610_PAD_PTC16__ENET_RMII1_TXD0	0x30d2
229*724ba675SRob Herring				VF610_PAD_PTC17__ENET_RMII1_TXEN	0x30d2
230*724ba675SRob Herring			>;
231*724ba675SRob Herring		};
232*724ba675SRob Herring
233*724ba675SRob Herring		pinctrl_i2c0: i2c0grp {
234*724ba675SRob Herring			fsl,pins = <
235*724ba675SRob Herring				VF610_PAD_PTB14__I2C0_SCL		0x30d3
236*724ba675SRob Herring				VF610_PAD_PTB15__I2C0_SDA		0x30d3
237*724ba675SRob Herring			>;
238*724ba675SRob Herring		};
239*724ba675SRob Herring
240*724ba675SRob Herring		pinctrl_nfc: nfcgrp {
241*724ba675SRob Herring			fsl,pins = <
242*724ba675SRob Herring				VF610_PAD_PTD31__NF_IO15	0x28df
243*724ba675SRob Herring				VF610_PAD_PTD30__NF_IO14	0x28df
244*724ba675SRob Herring				VF610_PAD_PTD29__NF_IO13	0x28df
245*724ba675SRob Herring				VF610_PAD_PTD28__NF_IO12	0x28df
246*724ba675SRob Herring				VF610_PAD_PTD27__NF_IO11	0x28df
247*724ba675SRob Herring				VF610_PAD_PTD26__NF_IO10	0x28df
248*724ba675SRob Herring				VF610_PAD_PTD25__NF_IO9		0x28df
249*724ba675SRob Herring				VF610_PAD_PTD24__NF_IO8		0x28df
250*724ba675SRob Herring				VF610_PAD_PTD23__NF_IO7		0x28df
251*724ba675SRob Herring				VF610_PAD_PTD22__NF_IO6		0x28df
252*724ba675SRob Herring				VF610_PAD_PTD21__NF_IO5		0x28df
253*724ba675SRob Herring				VF610_PAD_PTD20__NF_IO4		0x28df
254*724ba675SRob Herring				VF610_PAD_PTD19__NF_IO3		0x28df
255*724ba675SRob Herring				VF610_PAD_PTD18__NF_IO2		0x28df
256*724ba675SRob Herring				VF610_PAD_PTD17__NF_IO1		0x28df
257*724ba675SRob Herring				VF610_PAD_PTD16__NF_IO0		0x28df
258*724ba675SRob Herring				VF610_PAD_PTB24__NF_WE_B	0x28c2
259*724ba675SRob Herring				VF610_PAD_PTB25__NF_CE0_B	0x28c2
260*724ba675SRob Herring				VF610_PAD_PTB27__NF_RE_B	0x28c2
261*724ba675SRob Herring				VF610_PAD_PTC26__NF_RB_B	0x283d
262*724ba675SRob Herring				VF610_PAD_PTC27__NF_ALE		0x28c2
263*724ba675SRob Herring				VF610_PAD_PTC28__NF_CLE		0x28c2
264*724ba675SRob Herring			>;
265*724ba675SRob Herring		};
266*724ba675SRob Herring
267*724ba675SRob Herring		pinctrl_pwm0: pwm0grp {
268*724ba675SRob Herring			fsl,pins = <
269*724ba675SRob Herring				VF610_PAD_PTB0__FTM0_CH0		0x1582
270*724ba675SRob Herring				VF610_PAD_PTB1__FTM0_CH1		0x1582
271*724ba675SRob Herring				VF610_PAD_PTB2__FTM0_CH2		0x1582
272*724ba675SRob Herring				VF610_PAD_PTB3__FTM0_CH3		0x1582
273*724ba675SRob Herring			>;
274*724ba675SRob Herring		};
275*724ba675SRob Herring
276*724ba675SRob Herring		pinctrl_sai2: sai2grp {
277*724ba675SRob Herring			fsl,pins = <
278*724ba675SRob Herring				VF610_PAD_PTA16__SAI2_TX_BCLK		0x02ed
279*724ba675SRob Herring				VF610_PAD_PTA18__SAI2_TX_DATA		0x02ee
280*724ba675SRob Herring				VF610_PAD_PTA19__SAI2_TX_SYNC		0x02ed
281*724ba675SRob Herring				VF610_PAD_PTA21__SAI2_RX_BCLK		0x02ed
282*724ba675SRob Herring				VF610_PAD_PTA22__SAI2_RX_DATA		0x02ed
283*724ba675SRob Herring				VF610_PAD_PTA23__SAI2_RX_SYNC		0x02ed
284*724ba675SRob Herring				VF610_PAD_PTB18__EXT_AUDIO_MCLK		0x02ed
285*724ba675SRob Herring			>;
286*724ba675SRob Herring		};
287*724ba675SRob Herring
288*724ba675SRob Herring		pinctrl_uart1: uart1grp {
289*724ba675SRob Herring			fsl,pins = <
290*724ba675SRob Herring				VF610_PAD_PTB4__UART1_TX		0x21a2
291*724ba675SRob Herring				VF610_PAD_PTB5__UART1_RX		0x21a1
292*724ba675SRob Herring			>;
293*724ba675SRob Herring		};
294*724ba675SRob Herring
295*724ba675SRob Herring		pinctrl_uart2: uart2grp {
296*724ba675SRob Herring			fsl,pins = <
297*724ba675SRob Herring				VF610_PAD_PTB6__UART2_TX		0x21a2
298*724ba675SRob Herring				VF610_PAD_PTB7__UART2_RX		0x21a1
299*724ba675SRob Herring			>;
300*724ba675SRob Herring		};
301*724ba675SRob Herring	};
302*724ba675SRob Herring};
303*724ba675SRob Herring
304*724ba675SRob Herring&nfc {
305*724ba675SRob Herring	assigned-clocks = <&clks VF610_CLK_NFC>;
306*724ba675SRob Herring	assigned-clock-rates = <33000000>;
307*724ba675SRob Herring	pinctrl-names = "default";
308*724ba675SRob Herring	pinctrl-0 = <&pinctrl_nfc>;
309*724ba675SRob Herring	status = "okay";
310*724ba675SRob Herring
311*724ba675SRob Herring	nand@0 {
312*724ba675SRob Herring		compatible = "fsl,vf610-nfc-nandcs";
313*724ba675SRob Herring		reg = <0>;
314*724ba675SRob Herring		#address-cells = <1>;
315*724ba675SRob Herring		#size-cells = <1>;
316*724ba675SRob Herring		nand-bus-width = <16>;
317*724ba675SRob Herring		nand-ecc-mode = "hw";
318*724ba675SRob Herring		nand-ecc-strength = <24>;
319*724ba675SRob Herring		nand-ecc-step-size = <2048>;
320*724ba675SRob Herring		nand-on-flash-bbt;
321*724ba675SRob Herring	};
322*724ba675SRob Herring};
323*724ba675SRob Herring
324*724ba675SRob Herring&pwm0 {
325*724ba675SRob Herring	pinctrl-names = "default";
326*724ba675SRob Herring	pinctrl-0 = <&pinctrl_pwm0>;
327*724ba675SRob Herring	status = "okay";
328*724ba675SRob Herring};
329*724ba675SRob Herring
330*724ba675SRob Herring&sai2 {
331*724ba675SRob Herring	#sound-dai-cells = <0>;
332*724ba675SRob Herring	pinctrl-names = "default";
333*724ba675SRob Herring	pinctrl-0 = <&pinctrl_sai2>;
334*724ba675SRob Herring	status = "okay";
335*724ba675SRob Herring};
336*724ba675SRob Herring
337*724ba675SRob Herring&uart1 {
338*724ba675SRob Herring	pinctrl-names = "default";
339*724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart1>;
340*724ba675SRob Herring	status = "okay";
341*724ba675SRob Herring};
342*724ba675SRob Herring
343*724ba675SRob Herring&uart2 {
344*724ba675SRob Herring	pinctrl-names = "default";
345*724ba675SRob Herring	pinctrl-0 = <&pinctrl_uart2>;
346*724ba675SRob Herring	status = "okay";
347*724ba675SRob Herring};
348*724ba675SRob Herring
349*724ba675SRob Herring&usbdev0 {
350*724ba675SRob Herring	disable-over-current;
351*724ba675SRob Herring	status = "okay";
352*724ba675SRob Herring};
353*724ba675SRob Herring
354*724ba675SRob Herring&usbh1 {
355*724ba675SRob Herring	disable-over-current;
356*724ba675SRob Herring	status = "okay";
357*724ba675SRob Herring};
358*724ba675SRob Herring
359*724ba675SRob Herring&usbmisc0 {
360*724ba675SRob Herring	status = "okay";
361*724ba675SRob Herring};
362*724ba675SRob Herring
363*724ba675SRob Herring&usbmisc1 {
364*724ba675SRob Herring	status = "okay";
365*724ba675SRob Herring};
366*724ba675SRob Herring
367*724ba675SRob Herring&usbphy0 {
368*724ba675SRob Herring	status = "okay";
369*724ba675SRob Herring};
370*724ba675SRob Herring
371*724ba675SRob Herring&usbphy1 {
372*724ba675SRob Herring	status = "okay";
373*724ba675SRob Herring};
374