1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Device Tree file for NXP LS1028A QDS Board.
4 *
5 * Copyright 2018 NXP
6 *
7 * Harninder Rai <harninder.rai@nxp.com>
8 *
9 */
10
11/dts-v1/;
12
13#include "fsl-ls1028a.dtsi"
14
15/ {
16	model = "LS1028A QDS Board";
17	compatible = "fsl,ls1028a-qds", "fsl,ls1028a";
18
19	aliases {
20		crypto = &crypto;
21		gpio0 = &gpio1;
22		gpio1 = &gpio2;
23		gpio2 = &gpio3;
24		serial0 = &duart0;
25		serial1 = &duart1;
26		mmc0 = &esdhc;
27		mmc1 = &esdhc1;
28		rtc1 = &ftm_alarm1;
29	};
30
31	chosen {
32		stdout-path = "serial0:115200n8";
33	};
34
35	memory@80000000 {
36		device_type = "memory";
37		reg = <0x0 0x80000000 0x1 0x00000000>;
38	};
39
40	sys_mclk: clock-mclk {
41		compatible = "fixed-clock";
42		#clock-cells = <0>;
43		clock-frequency = <25000000>;
44	};
45
46	reg_1p8v: regulator-1p8v {
47		compatible = "regulator-fixed";
48		regulator-name = "1P8V";
49		regulator-min-microvolt = <1800000>;
50		regulator-max-microvolt = <1800000>;
51		regulator-always-on;
52	};
53
54	sb_3v3: regulator-sb3v3 {
55		compatible = "regulator-fixed";
56		regulator-name = "3v3_vbus";
57		regulator-min-microvolt = <3300000>;
58		regulator-max-microvolt = <3300000>;
59		regulator-boot-on;
60		regulator-always-on;
61	};
62
63	sound {
64		compatible = "simple-audio-card";
65		simple-audio-card,format = "i2s";
66		simple-audio-card,widgets =
67			"Microphone", "Microphone Jack",
68			"Headphone", "Headphone Jack",
69			"Speaker", "Speaker Ext",
70			"Line", "Line In Jack";
71		simple-audio-card,routing =
72			"MIC_IN", "Microphone Jack",
73			"Microphone Jack", "Mic Bias",
74			"LINE_IN", "Line In Jack",
75			"Headphone Jack", "HP_OUT",
76			"Speaker Ext", "LINE_OUT";
77
78		simple-audio-card,cpu {
79			sound-dai = <&sai1>;
80			frame-master;
81			bitclock-master;
82		};
83
84		simple-audio-card,codec {
85			sound-dai = <&sgtl5000>;
86			frame-master;
87			bitclock-master;
88			system-clock-frequency = <25000000>;
89		};
90	};
91
92	mdio-mux {
93		compatible = "mdio-mux-multiplexer";
94		mux-controls = <&mux 0>;
95		mdio-parent-bus = <&enetc_mdio_pf3>;
96		#address-cells = <1>;
97		#size-cells = <0>;
98
99		/* on-board RGMII PHY */
100		mdio@0 {
101			#address-cells = <1>;
102			#size-cells = <0>;
103			reg = <0>;
104
105			qds_phy1: ethernet-phy@5 {
106				/* Atheros 8035 */
107				reg = <5>;
108			};
109		};
110
111		mdio_slot1: mdio@4 {
112			#address-cells = <1>;
113			#size-cells = <0>;
114			reg = <4>;
115		};
116
117		mdio_slot2: mdio@5 {
118			#address-cells = <1>;
119			#size-cells = <0>;
120			reg = <5>;
121		};
122
123		mdio_slot3: mdio@6 {
124			#address-cells = <1>;
125			#size-cells = <0>;
126			reg = <6>;
127		};
128
129		mdio_slot4: mdio@7 {
130			#address-cells = <1>;
131			#size-cells = <0>;
132			reg = <7>;
133		};
134	};
135};
136
137&can0 {
138	status = "okay";
139};
140
141&can1 {
142	status = "okay";
143};
144
145&dspi0 {
146	bus-num = <0>;
147	status = "okay";
148
149	flash@0 {
150		#address-cells = <1>;
151		#size-cells = <1>;
152		compatible = "jedec,spi-nor";
153		spi-cpol;
154		spi-cpha;
155		reg = <0>;
156		spi-max-frequency = <10000000>;
157	};
158
159	flash@1 {
160		#address-cells = <1>;
161		#size-cells = <1>;
162		compatible = "jedec,spi-nor";
163		spi-cpol;
164		spi-cpha;
165		reg = <1>;
166		spi-max-frequency = <10000000>;
167	};
168
169	flash@2 {
170		#address-cells = <1>;
171		#size-cells = <1>;
172		compatible = "jedec,spi-nor";
173		spi-cpol;
174		spi-cpha;
175		reg = <2>;
176		spi-max-frequency = <10000000>;
177	};
178};
179
180&dspi1 {
181	bus-num = <1>;
182	status = "okay";
183
184	flash@0 {
185		#address-cells = <1>;
186		#size-cells = <1>;
187		compatible = "jedec,spi-nor";
188		spi-cpol;
189		spi-cpha;
190		reg = <0>;
191		spi-max-frequency = <10000000>;
192	};
193
194	flash@1 {
195		#address-cells = <1>;
196		#size-cells = <1>;
197		compatible = "jedec,spi-nor";
198		spi-cpol;
199		spi-cpha;
200		reg = <1>;
201		spi-max-frequency = <10000000>;
202	};
203
204	flash@2 {
205		#address-cells = <1>;
206		#size-cells = <1>;
207		compatible = "jedec,spi-nor";
208		spi-cpol;
209		spi-cpha;
210		reg = <2>;
211		spi-max-frequency = <10000000>;
212	};
213};
214
215&dspi2 {
216	bus-num = <2>;
217	status = "okay";
218
219	flash@0 {
220		#address-cells = <1>;
221		#size-cells = <1>;
222		compatible = "jedec,spi-nor";
223		spi-cpol;
224		spi-cpha;
225		reg = <0>;
226		spi-max-frequency = <10000000>;
227	};
228};
229
230&duart0 {
231	status = "okay";
232};
233
234&duart1 {
235	status = "okay";
236};
237
238&enetc_port1 {
239	phy-handle = <&qds_phy1>;
240	phy-mode = "rgmii-id";
241	status = "okay";
242};
243
244&enetc_port2 {
245	status = "okay";
246};
247
248&esdhc {
249	status = "okay";
250};
251
252&esdhc1 {
253	status = "okay";
254};
255
256&fspi {
257	status = "okay";
258
259	mt35xu02g0: flash@0 {
260		compatible = "jedec,spi-nor";
261		#address-cells = <1>;
262		#size-cells = <1>;
263		spi-max-frequency = <50000000>;
264		/* The following setting enables 1-1-8 (CMD-ADDR-DATA) mode */
265		spi-rx-bus-width = <8>; /* 8 SPI Rx lines */
266		spi-tx-bus-width = <1>; /* 1 SPI Tx line */
267		reg = <0>;
268	};
269};
270
271&ftm_alarm1 {
272	status = "okay";
273};
274
275&i2c0 {
276	status = "okay";
277
278	i2c-mux@77 {
279		compatible = "nxp,pca9547";
280		reg = <0x77>;
281		#address-cells = <1>;
282		#size-cells = <0>;
283
284		i2c@2 {
285			#address-cells = <1>;
286			#size-cells = <0>;
287			reg = <0x2>;
288
289			current-monitor@40 {
290				compatible = "ti,ina220";
291				reg = <0x40>;
292				shunt-resistor = <1000>;
293			};
294
295			current-monitor@41 {
296				compatible = "ti,ina220";
297				reg = <0x41>;
298				shunt-resistor = <1000>;
299			};
300		};
301
302		i2c@3 {
303			#address-cells = <1>;
304			#size-cells = <0>;
305			reg = <0x3>;
306
307			temperature-sensor@4c {
308				compatible = "nxp,sa56004";
309				reg = <0x4c>;
310				vcc-supply = <&sb_3v3>;
311			};
312
313			eeprom@56 {
314				compatible = "atmel,24c512";
315				reg = <0x56>;
316			};
317
318			eeprom@57 {
319				compatible = "atmel,24c512";
320				reg = <0x57>;
321			};
322		};
323
324		i2c@5 {
325			#address-cells = <1>;
326			#size-cells = <0>;
327			reg = <0x5>;
328
329			sgtl5000: audio-codec@a {
330				#sound-dai-cells = <0>;
331				compatible = "fsl,sgtl5000";
332				reg = <0xa>;
333				VDDA-supply = <&reg_1p8v>;
334				VDDIO-supply = <&reg_1p8v>;
335				clocks = <&sys_mclk>;
336			};
337		};
338	};
339
340	fpga@66 {
341		compatible = "fsl,ls1028aqds-fpga", "fsl,fpga-qixis-i2c",
342			     "simple-mfd";
343		reg = <0x66>;
344
345		mux: mux-controller {
346			compatible = "reg-mux";
347			#mux-control-cells = <1>;
348			mux-reg-masks = <0x54 0xf0>; /* 0: reg 0x54, bits 7:4 */
349		};
350	};
351
352};
353
354&i2c1 {
355	status = "okay";
356
357	rtc@51 {
358		compatible = "nxp,pcf2129";
359		reg = <0x51>;
360	};
361};
362
363&lpuart0 {
364	status = "okay";
365};
366
367&lpuart1 {
368	status = "okay";
369};
370
371&mscc_felix_port4 {
372	ethernet = <&enetc_port2>;
373	status = "okay";
374};
375
376&sai1 {
377	status = "okay";
378};
379
380&sata {
381	status = "okay";
382};
383
384&usb0 {
385	dr_mode = "host";
386	status = "okay";
387};
388
389&usb1 {
390	dr_mode = "host";
391	status = "okay";
392};
393