1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * Copyright 2013-2014 Freescale Semiconductor, Inc.
4*f126890aSEmmanuel Vadot * Copyright 2018 NXP
5*f126890aSEmmanuel Vadot */
6*f126890aSEmmanuel Vadot
7*f126890aSEmmanuel Vadot/dts-v1/;
8*f126890aSEmmanuel Vadot#include "ls1021a.dtsi"
9*f126890aSEmmanuel Vadot
10*f126890aSEmmanuel Vadot/ {
11*f126890aSEmmanuel Vadot	model = "LS1021A QDS Board";
12*f126890aSEmmanuel Vadot	compatible = "fsl,ls1021a-qds", "fsl,ls1021a";
13*f126890aSEmmanuel Vadot
14*f126890aSEmmanuel Vadot	aliases {
15*f126890aSEmmanuel Vadot		enet0_rgmii_phy = &rgmii_phy1;
16*f126890aSEmmanuel Vadot		enet1_rgmii_phy = &rgmii_phy2;
17*f126890aSEmmanuel Vadot		enet2_rgmii_phy = &rgmii_phy3;
18*f126890aSEmmanuel Vadot		enet0_sgmii_phy = &sgmii_phy1c;
19*f126890aSEmmanuel Vadot		enet1_sgmii_phy = &sgmii_phy1d;
20*f126890aSEmmanuel Vadot	};
21*f126890aSEmmanuel Vadot
22*f126890aSEmmanuel Vadot	sys_mclk: clock-mclk {
23*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
24*f126890aSEmmanuel Vadot		#clock-cells = <0>;
25*f126890aSEmmanuel Vadot		clock-frequency = <24576000>;
26*f126890aSEmmanuel Vadot	};
27*f126890aSEmmanuel Vadot
28*f126890aSEmmanuel Vadot	reg_3p3v: regulator {
29*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
30*f126890aSEmmanuel Vadot		regulator-name = "3P3V";
31*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
32*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
33*f126890aSEmmanuel Vadot		regulator-always-on;
34*f126890aSEmmanuel Vadot	};
35*f126890aSEmmanuel Vadot
36*f126890aSEmmanuel Vadot	sound {
37*f126890aSEmmanuel Vadot		compatible = "simple-audio-card";
38*f126890aSEmmanuel Vadot		simple-audio-card,format = "i2s";
39*f126890aSEmmanuel Vadot		simple-audio-card,widgets =
40*f126890aSEmmanuel Vadot			"Microphone", "Microphone Jack",
41*f126890aSEmmanuel Vadot			"Headphone", "Headphone Jack",
42*f126890aSEmmanuel Vadot			"Speaker", "Speaker Ext",
43*f126890aSEmmanuel Vadot			"Line", "Line In Jack";
44*f126890aSEmmanuel Vadot		simple-audio-card,routing =
45*f126890aSEmmanuel Vadot			"MIC_IN", "Microphone Jack",
46*f126890aSEmmanuel Vadot			"Microphone Jack", "Mic Bias",
47*f126890aSEmmanuel Vadot			"LINE_IN", "Line In Jack",
48*f126890aSEmmanuel Vadot			"Headphone Jack", "HP_OUT",
49*f126890aSEmmanuel Vadot			"Speaker Ext", "LINE_OUT";
50*f126890aSEmmanuel Vadot
51*f126890aSEmmanuel Vadot		simple-audio-card,cpu {
52*f126890aSEmmanuel Vadot			sound-dai = <&sai2>;
53*f126890aSEmmanuel Vadot			frame-master;
54*f126890aSEmmanuel Vadot			bitclock-master;
55*f126890aSEmmanuel Vadot		};
56*f126890aSEmmanuel Vadot
57*f126890aSEmmanuel Vadot		simple-audio-card,codec {
58*f126890aSEmmanuel Vadot			sound-dai = <&codec>;
59*f126890aSEmmanuel Vadot			frame-master;
60*f126890aSEmmanuel Vadot			bitclock-master;
61*f126890aSEmmanuel Vadot		};
62*f126890aSEmmanuel Vadot	};
63*f126890aSEmmanuel Vadot};
64*f126890aSEmmanuel Vadot
65*f126890aSEmmanuel Vadot&dspi0 {
66*f126890aSEmmanuel Vadot	bus-num = <0>;
67*f126890aSEmmanuel Vadot	status = "okay";
68*f126890aSEmmanuel Vadot
69*f126890aSEmmanuel Vadot	dspiflash: at45db021d@0 {
70*f126890aSEmmanuel Vadot		#address-cells = <1>;
71*f126890aSEmmanuel Vadot		#size-cells = <1>;
72*f126890aSEmmanuel Vadot		compatible = "atmel,at45db021d", "atmel,at45", "atmel,dataflash";
73*f126890aSEmmanuel Vadot		spi-max-frequency = <16000000>;
74*f126890aSEmmanuel Vadot		spi-cpol;
75*f126890aSEmmanuel Vadot		spi-cpha;
76*f126890aSEmmanuel Vadot		reg = <0>;
77*f126890aSEmmanuel Vadot	};
78*f126890aSEmmanuel Vadot};
79*f126890aSEmmanuel Vadot
80*f126890aSEmmanuel Vadot&enet0 {
81*f126890aSEmmanuel Vadot	tbi-handle = <&tbi0>;
82*f126890aSEmmanuel Vadot	phy-handle = <&sgmii_phy1c>;
83*f126890aSEmmanuel Vadot	phy-connection-type = "sgmii";
84*f126890aSEmmanuel Vadot	status = "okay";
85*f126890aSEmmanuel Vadot};
86*f126890aSEmmanuel Vadot
87*f126890aSEmmanuel Vadot&enet1 {
88*f126890aSEmmanuel Vadot	tbi-handle = <&tbi0>;
89*f126890aSEmmanuel Vadot	phy-handle = <&sgmii_phy1d>;
90*f126890aSEmmanuel Vadot	phy-connection-type = "sgmii";
91*f126890aSEmmanuel Vadot	status = "okay";
92*f126890aSEmmanuel Vadot};
93*f126890aSEmmanuel Vadot
94*f126890aSEmmanuel Vadot&enet2 {
95*f126890aSEmmanuel Vadot	phy-handle = <&rgmii_phy3>;
96*f126890aSEmmanuel Vadot	phy-connection-type = "rgmii-id";
97*f126890aSEmmanuel Vadot	status = "okay";
98*f126890aSEmmanuel Vadot};
99*f126890aSEmmanuel Vadot
100*f126890aSEmmanuel Vadot&esdhc {
101*f126890aSEmmanuel Vadot	status = "okay";
102*f126890aSEmmanuel Vadot};
103*f126890aSEmmanuel Vadot
104*f126890aSEmmanuel Vadot&i2c0 {
105*f126890aSEmmanuel Vadot	status = "okay";
106*f126890aSEmmanuel Vadot
107*f126890aSEmmanuel Vadot	pca9547: mux@77 {
108*f126890aSEmmanuel Vadot		compatible = "nxp,pca9547";
109*f126890aSEmmanuel Vadot		reg = <0x77>;
110*f126890aSEmmanuel Vadot		#address-cells = <1>;
111*f126890aSEmmanuel Vadot		#size-cells = <0>;
112*f126890aSEmmanuel Vadot
113*f126890aSEmmanuel Vadot		i2c@0 {
114*f126890aSEmmanuel Vadot			#address-cells = <1>;
115*f126890aSEmmanuel Vadot			#size-cells = <0>;
116*f126890aSEmmanuel Vadot			reg = <0x0>;
117*f126890aSEmmanuel Vadot
118*f126890aSEmmanuel Vadot			ds3232: rtc@68 {
119*f126890aSEmmanuel Vadot				compatible = "dallas,ds3232";
120*f126890aSEmmanuel Vadot				reg = <0x68>;
121*f126890aSEmmanuel Vadot				interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
122*f126890aSEmmanuel Vadot			};
123*f126890aSEmmanuel Vadot		};
124*f126890aSEmmanuel Vadot
125*f126890aSEmmanuel Vadot		i2c@2 {
126*f126890aSEmmanuel Vadot			#address-cells = <1>;
127*f126890aSEmmanuel Vadot			#size-cells = <0>;
128*f126890aSEmmanuel Vadot			reg = <0x2>;
129*f126890aSEmmanuel Vadot
130*f126890aSEmmanuel Vadot			ina220@40 {
131*f126890aSEmmanuel Vadot				compatible = "ti,ina220";
132*f126890aSEmmanuel Vadot				reg = <0x40>;
133*f126890aSEmmanuel Vadot				shunt-resistor = <1000>;
134*f126890aSEmmanuel Vadot			};
135*f126890aSEmmanuel Vadot
136*f126890aSEmmanuel Vadot			ina220@41 {
137*f126890aSEmmanuel Vadot				compatible = "ti,ina220";
138*f126890aSEmmanuel Vadot				reg = <0x41>;
139*f126890aSEmmanuel Vadot				shunt-resistor = <1000>;
140*f126890aSEmmanuel Vadot			};
141*f126890aSEmmanuel Vadot		};
142*f126890aSEmmanuel Vadot
143*f126890aSEmmanuel Vadot		i2c@3 {
144*f126890aSEmmanuel Vadot			#address-cells = <1>;
145*f126890aSEmmanuel Vadot			#size-cells = <0>;
146*f126890aSEmmanuel Vadot			reg = <0x3>;
147*f126890aSEmmanuel Vadot
148*f126890aSEmmanuel Vadot			eeprom@56 {
149*f126890aSEmmanuel Vadot				compatible = "atmel,24c512";
150*f126890aSEmmanuel Vadot				reg = <0x56>;
151*f126890aSEmmanuel Vadot			};
152*f126890aSEmmanuel Vadot
153*f126890aSEmmanuel Vadot			eeprom@57 {
154*f126890aSEmmanuel Vadot				compatible = "atmel,24c512";
155*f126890aSEmmanuel Vadot				reg = <0x57>;
156*f126890aSEmmanuel Vadot			};
157*f126890aSEmmanuel Vadot
158*f126890aSEmmanuel Vadot			adt7461a@4c {
159*f126890aSEmmanuel Vadot				compatible = "adi,adt7461a";
160*f126890aSEmmanuel Vadot				reg = <0x4c>;
161*f126890aSEmmanuel Vadot			};
162*f126890aSEmmanuel Vadot		};
163*f126890aSEmmanuel Vadot
164*f126890aSEmmanuel Vadot		i2c@4 {
165*f126890aSEmmanuel Vadot			#address-cells = <1>;
166*f126890aSEmmanuel Vadot			#size-cells = <0>;
167*f126890aSEmmanuel Vadot			reg = <0x4>;
168*f126890aSEmmanuel Vadot
169*f126890aSEmmanuel Vadot			codec: sgtl5000@2a {
170*f126890aSEmmanuel Vadot				#sound-dai-cells = <0>;
171*f126890aSEmmanuel Vadot				compatible = "fsl,sgtl5000";
172*f126890aSEmmanuel Vadot				reg = <0x2a>;
173*f126890aSEmmanuel Vadot				VDDA-supply = <&reg_3p3v>;
174*f126890aSEmmanuel Vadot				VDDIO-supply = <&reg_3p3v>;
175*f126890aSEmmanuel Vadot				clocks = <&sys_mclk>;
176*f126890aSEmmanuel Vadot			};
177*f126890aSEmmanuel Vadot		};
178*f126890aSEmmanuel Vadot	};
179*f126890aSEmmanuel Vadot};
180*f126890aSEmmanuel Vadot
181*f126890aSEmmanuel Vadot&ifc {
182*f126890aSEmmanuel Vadot	#address-cells = <2>;
183*f126890aSEmmanuel Vadot	#size-cells = <1>;
184*f126890aSEmmanuel Vadot	/* NOR, NAND Flashes and FPGA on board */
185*f126890aSEmmanuel Vadot	ranges = <0x0 0x0 0x0 0x60000000 0x08000000>,
186*f126890aSEmmanuel Vadot		 <0x2 0x0 0x0 0x7e800000 0x00010000>,
187*f126890aSEmmanuel Vadot		 <0x3 0x0 0x0 0x7fb00000 0x00000100>;
188*f126890aSEmmanuel Vadot	status = "okay";
189*f126890aSEmmanuel Vadot
190*f126890aSEmmanuel Vadot	nor@0,0 {
191*f126890aSEmmanuel Vadot		#address-cells = <1>;
192*f126890aSEmmanuel Vadot		#size-cells = <1>;
193*f126890aSEmmanuel Vadot		compatible = "cfi-flash";
194*f126890aSEmmanuel Vadot		reg = <0x0 0x0 0x8000000>;
195*f126890aSEmmanuel Vadot		big-endian;
196*f126890aSEmmanuel Vadot		bank-width = <2>;
197*f126890aSEmmanuel Vadot		device-width = <1>;
198*f126890aSEmmanuel Vadot	};
199*f126890aSEmmanuel Vadot
200*f126890aSEmmanuel Vadot	nand@2,0 {
201*f126890aSEmmanuel Vadot		compatible = "fsl,ifc-nand";
202*f126890aSEmmanuel Vadot		reg = <0x2 0x0 0x10000>;
203*f126890aSEmmanuel Vadot	};
204*f126890aSEmmanuel Vadot
205*f126890aSEmmanuel Vadot	fpga: board-control@3,0 {
206*f126890aSEmmanuel Vadot		#address-cells = <1>;
207*f126890aSEmmanuel Vadot		#size-cells = <1>;
208*f126890aSEmmanuel Vadot		compatible = "simple-mfd";
209*f126890aSEmmanuel Vadot		reg = <0x3 0x0 0x0000100>;
210*f126890aSEmmanuel Vadot		bank-width = <1>;
211*f126890aSEmmanuel Vadot		device-width = <1>;
212*f126890aSEmmanuel Vadot		ranges = <0 3 0 0x100>;
213*f126890aSEmmanuel Vadot
214*f126890aSEmmanuel Vadot		mdio-mux-emi1 {
215*f126890aSEmmanuel Vadot			compatible = "mdio-mux-mmioreg";
216*f126890aSEmmanuel Vadot			mdio-parent-bus = <&mdio0>;
217*f126890aSEmmanuel Vadot			#address-cells = <1>;
218*f126890aSEmmanuel Vadot			#size-cells = <0>;
219*f126890aSEmmanuel Vadot			reg = <0x54 1>; /* BRDCFG4 */
220*f126890aSEmmanuel Vadot			mux-mask = <0xe0>; /* EMI1[2:0] */
221*f126890aSEmmanuel Vadot
222*f126890aSEmmanuel Vadot			/* Onboard PHYs */
223*f126890aSEmmanuel Vadot			ls1021amdio0: mdio@0 {
224*f126890aSEmmanuel Vadot				reg = <0>;
225*f126890aSEmmanuel Vadot				#address-cells = <1>;
226*f126890aSEmmanuel Vadot				#size-cells = <0>;
227*f126890aSEmmanuel Vadot				rgmii_phy1: ethernet-phy@1 {
228*f126890aSEmmanuel Vadot					reg = <0x1>;
229*f126890aSEmmanuel Vadot				};
230*f126890aSEmmanuel Vadot			};
231*f126890aSEmmanuel Vadot
232*f126890aSEmmanuel Vadot			ls1021amdio1: mdio@20 {
233*f126890aSEmmanuel Vadot				reg = <0x20>;
234*f126890aSEmmanuel Vadot				#address-cells = <1>;
235*f126890aSEmmanuel Vadot				#size-cells = <0>;
236*f126890aSEmmanuel Vadot				rgmii_phy2: ethernet-phy@2 {
237*f126890aSEmmanuel Vadot					reg = <0x2>;
238*f126890aSEmmanuel Vadot				};
239*f126890aSEmmanuel Vadot			};
240*f126890aSEmmanuel Vadot
241*f126890aSEmmanuel Vadot			ls1021amdio2: mdio@40 {
242*f126890aSEmmanuel Vadot				reg = <0x40>;
243*f126890aSEmmanuel Vadot				#address-cells = <1>;
244*f126890aSEmmanuel Vadot				#size-cells = <0>;
245*f126890aSEmmanuel Vadot				rgmii_phy3: ethernet-phy@3 {
246*f126890aSEmmanuel Vadot					reg = <0x3>;
247*f126890aSEmmanuel Vadot				};
248*f126890aSEmmanuel Vadot			};
249*f126890aSEmmanuel Vadot
250*f126890aSEmmanuel Vadot			ls1021amdio3: mdio@60 {
251*f126890aSEmmanuel Vadot				reg = <0x60>;
252*f126890aSEmmanuel Vadot				#address-cells = <1>;
253*f126890aSEmmanuel Vadot				#size-cells = <0>;
254*f126890aSEmmanuel Vadot				sgmii_phy1c: ethernet-phy@1c {
255*f126890aSEmmanuel Vadot					reg = <0x1c>;
256*f126890aSEmmanuel Vadot				};
257*f126890aSEmmanuel Vadot			};
258*f126890aSEmmanuel Vadot
259*f126890aSEmmanuel Vadot			ls1021amdio4: mdio@80 {
260*f126890aSEmmanuel Vadot				reg = <0x80>;
261*f126890aSEmmanuel Vadot				#address-cells = <1>;
262*f126890aSEmmanuel Vadot				#size-cells = <0>;
263*f126890aSEmmanuel Vadot				sgmii_phy1d: ethernet-phy@1d {
264*f126890aSEmmanuel Vadot					reg = <0x1d>;
265*f126890aSEmmanuel Vadot				};
266*f126890aSEmmanuel Vadot			};
267*f126890aSEmmanuel Vadot		};
268*f126890aSEmmanuel Vadot	};
269*f126890aSEmmanuel Vadot};
270*f126890aSEmmanuel Vadot
271*f126890aSEmmanuel Vadot&lpuart0 {
272*f126890aSEmmanuel Vadot	status = "okay";
273*f126890aSEmmanuel Vadot};
274*f126890aSEmmanuel Vadot
275*f126890aSEmmanuel Vadot&mdio0 {
276*f126890aSEmmanuel Vadot	tbi0: tbi-phy@8 {
277*f126890aSEmmanuel Vadot		reg = <0x8>;
278*f126890aSEmmanuel Vadot		device_type = "tbi-phy";
279*f126890aSEmmanuel Vadot	};
280*f126890aSEmmanuel Vadot};
281*f126890aSEmmanuel Vadot
282*f126890aSEmmanuel Vadot&qspi {
283*f126890aSEmmanuel Vadot	status = "okay";
284*f126890aSEmmanuel Vadot
285*f126890aSEmmanuel Vadot	flash@0 {
286*f126890aSEmmanuel Vadot		compatible = "jedec,spi-nor";
287*f126890aSEmmanuel Vadot		#address-cells = <1>;
288*f126890aSEmmanuel Vadot		#size-cells = <1>;
289*f126890aSEmmanuel Vadot		spi-max-frequency = <20000000>;
290*f126890aSEmmanuel Vadot		reg = <0>;
291*f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
292*f126890aSEmmanuel Vadot		spi-tx-bus-width = <4>;
293*f126890aSEmmanuel Vadot	};
294*f126890aSEmmanuel Vadot};
295*f126890aSEmmanuel Vadot
296*f126890aSEmmanuel Vadot&sai2 {
297*f126890aSEmmanuel Vadot	status = "okay";
298*f126890aSEmmanuel Vadot};
299*f126890aSEmmanuel Vadot
300*f126890aSEmmanuel Vadot&sata {
301*f126890aSEmmanuel Vadot	status = "okay";
302*f126890aSEmmanuel Vadot};
303*f126890aSEmmanuel Vadot
304*f126890aSEmmanuel Vadot&uart0 {
305*f126890aSEmmanuel Vadot	status = "okay";
306*f126890aSEmmanuel Vadot};
307*f126890aSEmmanuel Vadot
308*f126890aSEmmanuel Vadot&uart1 {
309*f126890aSEmmanuel Vadot	status = "okay";
310*f126890aSEmmanuel Vadot};
311*f126890aSEmmanuel Vadot
312*f126890aSEmmanuel Vadot&can0 {
313*f126890aSEmmanuel Vadot	status = "okay";
314*f126890aSEmmanuel Vadot};
315*f126890aSEmmanuel Vadot
316*f126890aSEmmanuel Vadot&can1 {
317*f126890aSEmmanuel Vadot	status = "okay";
318*f126890aSEmmanuel Vadot};
319*f126890aSEmmanuel Vadot
320*f126890aSEmmanuel Vadot&can2 {
321*f126890aSEmmanuel Vadot	status = "disabled";
322*f126890aSEmmanuel Vadot};
323*f126890aSEmmanuel Vadot
324*f126890aSEmmanuel Vadot&can3 {
325*f126890aSEmmanuel Vadot	status = "disabled";
326*f126890aSEmmanuel Vadot};
327