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