1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright 2016 Freescale Semiconductor, Inc.
4 * Copyright 2017-2018 NXP.
5 *
6 */
7
8#include <dt-bindings/clock/imx6sll-clock.h>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include "imx6sll-pinfunc.h"
12
13/ {
14	#address-cells = <1>;
15	#size-cells = <1>;
16
17	aliases {
18		gpio0 = &gpio1;
19		gpio1 = &gpio2;
20		gpio2 = &gpio3;
21		gpio3 = &gpio4;
22		gpio4 = &gpio5;
23		gpio5 = &gpio6;
24		i2c0 = &i2c1;
25		i2c1 = &i2c2;
26		i2c2 = &i2c3;
27		mmc0 = &usdhc1;
28		mmc1 = &usdhc2;
29		mmc2 = &usdhc3;
30		serial0 = &uart1;
31		serial1 = &uart2;
32		serial2 = &uart3;
33		serial3 = &uart4;
34		serial4 = &uart5;
35		spi0 = &ecspi1;
36		spi1 = &ecspi2;
37		spi3 = &ecspi3;
38		spi4 = &ecspi4;
39		usb0 = &usbotg1;
40		usb1 = &usbotg2;
41		usbphy0 = &usbphy1;
42		usbphy1 = &usbphy2;
43	};
44
45	cpus {
46		#address-cells = <1>;
47		#size-cells = <0>;
48
49		cpu0: cpu@0 {
50			compatible = "arm,cortex-a9";
51			device_type = "cpu";
52			reg = <0>;
53			next-level-cache = <&L2>;
54			operating-points =
55				/* kHz    uV */
56				<996000  1275000>,
57				<792000  1175000>,
58				<396000  1075000>,
59				<198000	  975000>;
60			fsl,soc-operating-points =
61				/* ARM kHz      SOC-PU uV */
62				<996000         1175000>,
63				<792000         1175000>,
64				<396000         1175000>,
65				<198000		1175000>;
66			clock-latency = <61036>; /* two CLK32 periods */
67			#cooling-cells = <2>;
68			clocks = <&clks IMX6SLL_CLK_ARM>,
69				 <&clks IMX6SLL_CLK_PLL2_PFD2>,
70				 <&clks IMX6SLL_CLK_STEP>,
71				 <&clks IMX6SLL_CLK_PLL1_SW>,
72				 <&clks IMX6SLL_CLK_PLL1_SYS>;
73			clock-names = "arm", "pll2_pfd2_396m", "step",
74				      "pll1_sw", "pll1_sys";
75			nvmem-cells = <&cpu_speed_grade>;
76			nvmem-cell-names = "speed_grade";
77		};
78	};
79
80	ckil: clock-ckil {
81		compatible = "fixed-clock";
82		#clock-cells = <0>;
83		clock-frequency = <32768>;
84		clock-output-names = "ckil";
85	};
86
87	osc: clock-osc-24m {
88		compatible = "fixed-clock";
89		#clock-cells = <0>;
90		clock-frequency = <24000000>;
91		clock-output-names = "osc";
92	};
93
94	ipp_di0: clock-ipp-di0 {
95		compatible = "fixed-clock";
96		#clock-cells = <0>;
97		clock-frequency = <0>;
98		clock-output-names = "ipp_di0";
99	};
100
101	ipp_di1: clock-ipp-di1 {
102		compatible = "fixed-clock";
103		#clock-cells = <0>;
104		clock-frequency = <0>;
105		clock-output-names = "ipp_di1";
106	};
107
108	soc {
109		#address-cells = <1>;
110		#size-cells = <1>;
111		compatible = "simple-bus";
112		interrupt-parent = <&gpc>;
113		ranges;
114
115		ocram: sram@900000 {
116			compatible = "mmio-sram";
117			reg = <0x00900000 0x20000>;
118		};
119
120		intc: interrupt-controller@a01000 {
121			compatible = "arm,cortex-a9-gic";
122			#interrupt-cells = <3>;
123			interrupt-controller;
124			reg = <0x00a01000 0x1000>,
125			      <0x00a00100 0x100>;
126			interrupt-parent = <&intc>;
127		};
128
129		L2: cache-controller@a02000 {
130			compatible = "arm,pl310-cache";
131			reg = <0x00a02000 0x1000>;
132			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
133			cache-unified;
134			cache-level = <2>;
135			arm,tag-latency = <4 2 3>;
136			arm,data-latency = <4 2 3>;
137		};
138
139		aips1: bus@2000000 {
140			compatible = "fsl,aips-bus", "simple-bus";
141			#address-cells = <1>;
142			#size-cells = <1>;
143			reg = <0x02000000 0x100000>;
144			ranges;
145
146			spba: spba-bus@2000000 {
147				compatible = "fsl,spba-bus", "simple-bus";
148				#address-cells = <1>;
149				#size-cells = <1>;
150				reg = <0x02000000 0x40000>;
151				ranges;
152
153				spdif: spdif@2004000 {
154					compatible = "fsl,imx6sl-spdif", "fsl,imx35-spdif";
155					reg = <0x02004000 0x4000>;
156					interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
157					dmas = <&sdma 14 18 0>, <&sdma 15 18 0>;
158					dma-names = "rx", "tx";
159					clocks = <&clks IMX6SLL_CLK_SPDIF_GCLK>,
160						 <&clks IMX6SLL_CLK_OSC>,
161						 <&clks IMX6SLL_CLK_SPDIF>,
162						 <&clks IMX6SLL_CLK_DUMMY>,
163						 <&clks IMX6SLL_CLK_DUMMY>,
164						 <&clks IMX6SLL_CLK_DUMMY>,
165						 <&clks IMX6SLL_CLK_IPG>,
166						 <&clks IMX6SLL_CLK_DUMMY>,
167						 <&clks IMX6SLL_CLK_DUMMY>,
168						 <&clks IMX6SLL_CLK_SPBA>;
169					clock-names = "core", "rxtx0",
170						      "rxtx1", "rxtx2",
171						      "rxtx3", "rxtx4",
172						      "rxtx5", "rxtx6",
173						      "rxtx7", "dma";
174					status = "disabled";
175				};
176
177				ecspi1: spi@2008000 {
178					compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
179					reg = <0x02008000 0x4000>;
180					interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
181					dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
182					dma-names = "rx", "tx";
183					clocks = <&clks IMX6SLL_CLK_ECSPI1>,
184						 <&clks IMX6SLL_CLK_ECSPI1>;
185					clock-names = "ipg", "per";
186					status = "disabled";
187				};
188
189				ecspi2: spi@200c000 {
190					compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
191					reg = <0x0200c000 0x4000>;
192					interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
193					dmas = <&sdma 5 7 1>, <&sdma 6 7 2>;
194					dma-names = "rx", "tx";
195					clocks = <&clks IMX6SLL_CLK_ECSPI2>,
196						 <&clks IMX6SLL_CLK_ECSPI2>;
197					clock-names = "ipg", "per";
198					status = "disabled";
199				};
200
201				ecspi3: spi@2010000 {
202					compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
203					reg = <0x02010000 0x4000>;
204					interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
205					dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
206					dma-names = "rx", "tx";
207					clocks = <&clks IMX6SLL_CLK_ECSPI3>,
208						 <&clks IMX6SLL_CLK_ECSPI3>;
209					clock-names = "ipg", "per";
210					status = "disabled";
211				};
212
213				ecspi4: spi@2014000 {
214					compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
215					reg = <0x02014000 0x4000>;
216					interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
217					dmas = <&sdma 9 7 1>, <&sdma 10 7 2>;
218					dma-names = "rx", "tx";
219					clocks = <&clks IMX6SLL_CLK_ECSPI4>,
220						 <&clks IMX6SLL_CLK_ECSPI4>;
221					clock-names = "ipg", "per";
222					status = "disabled";
223				};
224
225				uart4: serial@2018000 {
226					compatible = "fsl,imx6sl-uart", "fsl,imx6q-uart",
227						     "fsl,imx21-uart";
228					reg = <0x02018000 0x4000>;
229					interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
230					dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
231					dma-names = "rx", "tx";
232					clocks = <&clks IMX6SLL_CLK_UART4_IPG>,
233						 <&clks IMX6SLL_CLK_UART4_SERIAL>;
234					clock-names = "ipg", "per";
235					status = "disabled";
236				};
237
238				uart1: serial@2020000 {
239					compatible = "fsl,imx6sl-uart", "fsl,imx6q-uart",
240						     "fsl,imx21-uart";
241					reg = <0x02020000 0x4000>;
242					interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
243					dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
244					dma-names = "rx", "tx";
245					clocks = <&clks IMX6SLL_CLK_UART1_IPG>,
246						 <&clks IMX6SLL_CLK_UART1_SERIAL>;
247					clock-names = "ipg", "per";
248					status = "disabled";
249				};
250
251				uart2: serial@2024000 {
252					compatible = "fsl,imx6sl-uart", "fsl,imx6q-uart",
253						     "fsl,imx21-uart";
254					reg = <0x02024000 0x4000>;
255					interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
256					dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
257					dma-names = "rx", "tx";
258					clocks = <&clks IMX6SLL_CLK_UART2_IPG>,
259						 <&clks IMX6SLL_CLK_UART2_SERIAL>;
260					clock-names = "ipg", "per";
261					status = "disabled";
262				};
263
264				ssi1: ssi@2028000 {
265					compatible = "fsl,imx6sl-ssi", "fsl,imx51-ssi";
266					reg = <0x02028000 0x4000>;
267					interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
268					dmas = <&sdma 37 22 0>, <&sdma 38 22 0>;
269					dma-names = "rx", "tx";
270					fsl,fifo-depth = <15>;
271					clocks = <&clks IMX6SLL_CLK_SSI1_IPG>,
272						 <&clks IMX6SLL_CLK_SSI1>;
273					clock-names = "ipg", "baud";
274					status = "disabled";
275				};
276
277				ssi2: ssi@202c000 {
278					compatible = "fsl,imx6sl-ssi", "fsl,imx51-ssi";
279					reg = <0x0202c000 0x4000>;
280					interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
281					dmas = <&sdma 41 22 0>, <&sdma 42 22 0>;
282					dma-names = "rx", "tx";
283					fsl,fifo-depth = <15>;
284					clocks = <&clks IMX6SLL_CLK_SSI2_IPG>,
285						 <&clks IMX6SLL_CLK_SSI2>;
286					clock-names = "ipg", "baud";
287					status = "disabled";
288				};
289
290				ssi3: ssi@2030000 {
291					compatible = "fsl,imx6sl-ssi", "fsl,imx51-ssi";
292					reg = <0x02030000 0x4000>;
293					interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
294					dmas = <&sdma 45 22 0>, <&sdma 46 22 0>;
295					dma-names = "rx", "tx";
296					fsl,fifo-depth = <15>;
297					clocks = <&clks IMX6SLL_CLK_SSI3_IPG>,
298						 <&clks IMX6SLL_CLK_SSI3>;
299					clock-names = "ipg", "baud";
300					status = "disabled";
301				};
302
303				uart3: serial@2034000 {
304					compatible = "fsl,imx6sl-uart", "fsl,imx6q-uart",
305						     "fsl,imx21-uart";
306					reg = <0x02034000 0x4000>;
307					interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
308					dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
309					dma-name = "rx", "tx";
310					clocks = <&clks IMX6SLL_CLK_UART3_IPG>,
311						 <&clks IMX6SLL_CLK_UART3_SERIAL>;
312					clock-names = "ipg", "per";
313					status = "disabled";
314				};
315			};
316
317			pwm1: pwm@2080000 {
318				compatible = "fsl,imx6sll-pwm", "fsl,imx27-pwm";
319				reg = <0x02080000 0x4000>;
320				interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
321				clocks = <&clks IMX6SLL_CLK_PWM1>,
322					 <&clks IMX6SLL_CLK_PWM1>;
323				clock-names = "ipg", "per";
324				#pwm-cells = <3>;
325			};
326
327			pwm2: pwm@2084000 {
328				compatible = "fsl,imx6sll-pwm", "fsl,imx27-pwm";
329				reg = <0x02084000 0x4000>;
330				interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
331				clocks = <&clks IMX6SLL_CLK_PWM2>,
332					 <&clks IMX6SLL_CLK_PWM2>;
333				clock-names = "ipg", "per";
334				#pwm-cells = <3>;
335			};
336
337			pwm3: pwm@2088000 {
338				compatible = "fsl,imx6sll-pwm", "fsl,imx27-pwm";
339				reg = <0x02088000 0x4000>;
340				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
341				clocks = <&clks IMX6SLL_CLK_PWM3>,
342					 <&clks IMX6SLL_CLK_PWM3>;
343				clock-names = "ipg", "per";
344				#pwm-cells = <3>;
345			};
346
347			pwm4: pwm@208c000 {
348				compatible = "fsl,imx6sll-pwm", "fsl,imx27-pwm";
349				reg = <0x0208c000 0x4000>;
350				interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
351				clocks = <&clks IMX6SLL_CLK_PWM4>,
352					 <&clks IMX6SLL_CLK_PWM4>;
353				clock-names = "ipg", "per";
354				#pwm-cells = <3>;
355			};
356
357			gpt1: timer@2098000 {
358				compatible = "fsl,imx6sl-gpt";
359				reg = <0x02098000 0x4000>;
360				interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
361				clocks = <&clks IMX6SLL_CLK_GPT_BUS>,
362					 <&clks IMX6SLL_CLK_GPT_SERIAL>;
363				clock-names = "ipg", "per";
364			};
365
366			gpio1: gpio@209c000 {
367				compatible = "fsl,imx6sll-gpio", "fsl,imx35-gpio";
368				reg = <0x0209c000 0x4000>;
369				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
370					     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
371				clocks = <&clks IMX6SLL_CLK_GPIO1>;
372				gpio-controller;
373				#gpio-cells = <2>;
374				interrupt-controller;
375				#interrupt-cells = <2>;
376				gpio-ranges = <&iomuxc 0 94 7>, <&iomuxc 7 25 25>;
377			};
378
379			gpio2: gpio@20a0000 {
380				compatible = "fsl,imx6sll-gpio", "fsl,imx35-gpio";
381				reg = <0x020a0000 0x4000>;
382				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
383					     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
384				clocks = <&clks IMX6SLL_CLK_GPIO2>;
385				gpio-controller;
386				#gpio-cells = <2>;
387				interrupt-controller;
388				#interrupt-cells = <2>;
389				gpio-ranges = <&iomuxc 0 50 32>;
390			};
391
392			gpio3: gpio@20a4000 {
393				compatible = "fsl,imx6sll-gpio", "fsl,imx35-gpio";
394				reg = <0x020a4000 0x4000>;
395				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
396					     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
397				clocks = <&clks IMX6SLL_CLK_GPIO3>;
398				gpio-controller;
399				#gpio-cells = <2>;
400				interrupt-controller;
401				#interrupt-cells = <2>;
402				gpio-ranges = <&iomuxc 0 82 12>, <&iomuxc 12 103 4>,
403					      <&iomuxc 16 101 2>, <&iomuxc 18 5 1>,
404					      <&iomuxc 21 6 11>;
405			};
406
407			gpio4: gpio@20a8000 {
408				compatible = "fsl,imx6sll-gpio", "fsl,imx35-gpio";
409				reg = <0x020a8000 0x4000>;
410				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
411					     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
412				clocks = <&clks IMX6SLL_CLK_GPIO4>;
413				gpio-controller;
414				#gpio-cells = <2>;
415				interrupt-controller;
416				#interrupt-cells = <2>;
417				gpio-ranges = <&iomuxc 0 17 8>, <&iomuxc 8 107 8>,
418					      <&iomuxc 16 151 1>, <&iomuxc 17 149 1>,
419					      <&iomuxc 18 146 1>, <&iomuxc 19 144 1>,
420					      <&iomuxc 20 142 1>, <&iomuxc 21 143 1>,
421					      <&iomuxc 22 150 1>, <&iomuxc 23 148 1>,
422					      <&iomuxc 24 147 1>, <&iomuxc 25 145 1>,
423					      <&iomuxc 26 152 1>, <&iomuxc 27 125 1>,
424					      <&iomuxc 28 131 1>, <&iomuxc 29 134 1>,
425					      <&iomuxc 30 129 1>, <&iomuxc 31 133 1>;
426			};
427
428			gpio5: gpio@20ac000 {
429				compatible = "fsl,imx6sll-gpio", "fsl,imx35-gpio";
430				reg = <0x020ac000 0x4000>;
431				interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
432					     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
433				clocks = <&clks IMX6SLL_CLK_GPIO5>;
434				gpio-controller;
435				#gpio-cells = <2>;
436				interrupt-controller;
437				#interrupt-cells = <2>;
438				gpio-ranges = <&iomuxc 0 135 1>, <&iomuxc 1 128 1>,
439					      <&iomuxc 2 132 1>, <&iomuxc 3 130 1>,
440					      <&iomuxc 4 127 1>, <&iomuxc 5 126 1>,
441					      <&iomuxc 6 120 1>, <&iomuxc 7 123 1>,
442					      <&iomuxc 8 118 1>, <&iomuxc 9 122 1>,
443					      <&iomuxc 10 124 1>, <&iomuxc 11 117 1>,
444					      <&iomuxc 12 121 1>, <&iomuxc 13 119 1>,
445					      <&iomuxc 14 116 1>, <&iomuxc 15 115 1>,
446					      <&iomuxc 16 140 2>, <&iomuxc 18 136 1>,
447					      <&iomuxc 19 138 1>, <&iomuxc 20 139 1>,
448					      <&iomuxc 21 137 1>;
449			};
450
451			gpio6: gpio@20b0000 {
452				compatible = "fsl,imx6sll-gpio", "fsl,imx35-gpio";
453				reg = <0x020b0000 0x4000>;
454				interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
455					     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
456				clocks = <&clks IMX6SLL_CLK_GPIO6>;
457				gpio-controller;
458				#gpio-cells = <2>;
459				interrupt-controller;
460				#interrupt-cells = <2>;
461			};
462
463			kpp: keypad@20b8000 {
464				compatible = "fsl,imx6sll-kpp", "fsl,imx21-kpp";
465				reg = <0x020b8000 0x4000>;
466				interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
467				clocks = <&clks IMX6SLL_CLK_KPP>;
468				status = "disabled";
469			};
470
471			wdog1: watchdog@20bc000 {
472				compatible = "fsl,imx6sll-wdt", "fsl,imx21-wdt";
473				reg = <0x020bc000 0x4000>;
474				interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
475				clocks = <&clks IMX6SLL_CLK_WDOG1>;
476			};
477
478			wdog2: watchdog@20c0000 {
479				compatible = "fsl,imx6sll-wdt", "fsl,imx21-wdt";
480				reg = <0x020c0000 0x4000>;
481				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
482				clocks = <&clks IMX6SLL_CLK_WDOG2>;
483				status = "disabled";
484			};
485
486			clks: clock-controller@20c4000 {
487				compatible = "fsl,imx6sll-ccm";
488				reg = <0x020c4000 0x4000>;
489				interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
490					     <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
491				#clock-cells = <1>;
492				clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>;
493				clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
494
495				assigned-clocks = <&clks IMX6SLL_CLK_PERCLK_SEL>;
496				assigned-clock-parents = <&clks IMX6SLL_CLK_OSC>;
497			};
498
499			anatop: anatop@20c8000 {
500				compatible = "fsl,imx6sll-anatop",
501					     "fsl,imx6q-anatop",
502					     "syscon", "simple-mfd";
503				reg = <0x020c8000 0x4000>;
504				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
505					     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
506					     <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
507				#address-cells = <1>;
508				#size-cells = <0>;
509
510				reg_3p0: regulator-3p0@20c8120 {
511					compatible = "fsl,anatop-regulator";
512					reg = <0x20c8120>;
513					regulator-name = "vdd3p0";
514					regulator-min-microvolt = <2625000>;
515					regulator-max-microvolt = <3400000>;
516					anatop-reg-offset = <0x120>;
517					anatop-vol-bit-shift = <8>;
518					anatop-vol-bit-width = <5>;
519					anatop-min-bit-val = <0>;
520					anatop-min-voltage = <2625000>;
521					anatop-max-voltage = <3400000>;
522					anatop-enable-bit = <0>;
523				};
524
525				tempmon: temperature-sensor {
526					compatible = "fsl,imx6sll-tempmon", "fsl,imx6sx-tempmon";
527					interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
528					interrupt-parent = <&gpc>;
529					fsl,tempmon = <&anatop>;
530					nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
531					nvmem-cell-names = "calib", "temp_grade";
532					clocks = <&clks IMX6SLL_CLK_PLL3_USB_OTG>;
533				};
534			};
535
536			usbphy1: usb-phy@20c9000 {
537				compatible = "fsl,imx6sll-usbphy", "fsl,imx6ul-usbphy",
538						"fsl,imx23-usbphy";
539				reg = <0x020c9000 0x1000>;
540				interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
541				clocks = <&clks IMX6SLL_CLK_USBPHY1>;
542				phy-3p0-supply = <&reg_3p0>;
543				fsl,anatop = <&anatop>;
544			};
545
546			usbphy2: usb-phy@20ca000 {
547				compatible = "fsl,imx6sll-usbphy", "fsl,imx6ul-usbphy",
548						"fsl,imx23-usbphy";
549				reg = <0x020ca000 0x1000>;
550				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
551				clocks = <&clks IMX6SLL_CLK_USBPHY2>;
552				phy-reg_3p0-supply = <&reg_3p0>;
553				fsl,anatop = <&anatop>;
554			};
555
556			snvs: snvs@20cc000 {
557				compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
558				reg = <0x020cc000 0x4000>;
559
560				snvs_rtc: snvs-rtc-lp {
561					compatible = "fsl,sec-v4.0-mon-rtc-lp";
562					regmap = <&snvs>;
563					offset = <0x34>;
564					interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
565						     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
566				};
567
568				snvs_poweroff: snvs-poweroff {
569					compatible = "syscon-poweroff";
570					regmap = <&snvs>;
571					offset = <0x38>;
572					mask = <0x61>;
573					status = "disabled";
574				};
575
576				snvs_pwrkey: snvs-powerkey {
577					compatible = "fsl,sec-v4.0-pwrkey";
578					regmap = <&snvs>;
579					interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
580					linux,keycode = <KEY_POWER>;
581					wakeup-source;
582					status = "disabled";
583				};
584			};
585
586			src: reset-controller@20d8000 {
587				compatible = "fsl,imx6sll-src", "fsl,imx51-src";
588				reg = <0x020d8000 0x4000>;
589				interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
590					     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
591				#reset-cells = <1>;
592			};
593
594			gpc: interrupt-controller@20dc000 {
595				compatible = "fsl,imx6sll-gpc", "fsl,imx6q-gpc";
596				reg = <0x020dc000 0x4000>;
597				interrupt-controller;
598				#interrupt-cells = <3>;
599				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
600				interrupt-parent = <&intc>;
601			};
602
603			iomuxc: pinctrl@20e0000 {
604				compatible = "fsl,imx6sll-iomuxc";
605				reg = <0x020e0000 0x4000>;
606			};
607
608			gpr: iomuxc-gpr@20e4000 {
609				compatible = "fsl,imx6sll-iomuxc-gpr",
610					     "fsl,imx6q-iomuxc-gpr", "syscon";
611				reg = <0x020e4000 0x4000>;
612			};
613
614			csi: csi@20e8000 {
615				compatible = "fsl,imx6sll-csi", "fsl,imx6s-csi";
616				reg = <0x020e8000 0x4000>;
617				interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
618				clocks = <&clks IMX6SLL_CLK_DUMMY>,
619					 <&clks IMX6SLL_CLK_CSI>,
620					 <&clks IMX6SLL_CLK_DUMMY>;
621				clock-names = "disp-axi", "csi_mclk", "disp_dcic";
622				status = "disabled";
623			};
624
625			sdma: dma-controller@20ec000 {
626				compatible = "fsl,imx6sll-sdma", "fsl,imx6ul-sdma";
627				reg = <0x020ec000 0x4000>;
628				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
629				clocks = <&clks IMX6SLL_CLK_IPG>,
630					 <&clks IMX6SLL_CLK_SDMA>;
631				clock-names = "ipg", "ahb";
632				#dma-cells = <3>;
633				iram = <&ocram>;
634				fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
635			};
636
637			pxp: pxp@20f0000 {
638				compatible = "fsl,imx6sll-pxp", "fsl,imx6ull-pxp";
639				reg = <0x20f0000 0x4000>;
640				interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
641					<GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
642				clocks = <&clks IMX6SLL_CLK_PXP>;
643				clock-names = "axi";
644			};
645
646			lcdif: lcd-controller@20f8000 {
647				compatible = "fsl,imx6sll-lcdif", "fsl,imx28-lcdif";
648				reg = <0x020f8000 0x4000>;
649				interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
650				clocks = <&clks IMX6SLL_CLK_LCDIF_PIX>,
651					 <&clks IMX6SLL_CLK_LCDIF_APB>,
652					 <&clks IMX6SLL_CLK_DUMMY>;
653				clock-names = "pix", "axi", "disp_axi";
654				status = "disabled";
655			};
656
657			dcp: crypto@20fc000 {
658				compatible = "fsl,imx28-dcp";
659				reg = <0x020fc000 0x4000>;
660				interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
661					     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
662					     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
663				clocks = <&clks IMX6SLL_CLK_DCP>;
664				clock-names = "dcp";
665			};
666		};
667
668		aips2: bus@2100000 {
669			compatible = "fsl,aips-bus", "simple-bus";
670			#address-cells = <1>;
671			#size-cells = <1>;
672			reg = <0x02100000 0x100000>;
673			ranges;
674
675			usbotg1: usb@2184000 {
676				compatible = "fsl,imx6sll-usb", "fsl,imx6ul-usb",
677						"fsl,imx27-usb";
678				reg = <0x02184000 0x200>;
679				interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
680				clocks = <&clks IMX6SLL_CLK_USBOH3>;
681				fsl,usbphy = <&usbphy1>;
682				fsl,usbmisc = <&usbmisc 0>;
683				fsl,anatop = <&anatop>;
684				ahb-burst-config = <0x0>;
685				tx-burst-size-dword = <0x10>;
686				rx-burst-size-dword = <0x10>;
687				status = "disabled";
688			};
689
690			usbotg2: usb@2184200 {
691				compatible = "fsl,imx6sll-usb", "fsl,imx6ul-usb",
692						"fsl,imx27-usb";
693				reg = <0x02184200 0x200>;
694				interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
695				clocks = <&clks IMX6SLL_CLK_USBOH3>;
696				fsl,usbphy = <&usbphy2>;
697				fsl,usbmisc = <&usbmisc 1>;
698				ahb-burst-config = <0x0>;
699				tx-burst-size-dword = <0x10>;
700				rx-burst-size-dword = <0x10>;
701				status = "disabled";
702			};
703
704			usbmisc: usbmisc@2184800 {
705				#index-cells = <1>;
706				compatible = "fsl,imx6sll-usbmisc", "fsl,imx6ul-usbmisc",
707						"fsl,imx6q-usbmisc";
708				reg = <0x02184800 0x200>;
709			};
710
711			usdhc1: mmc@2190000 {
712				compatible = "fsl,imx6sll-usdhc", "fsl,imx6sx-usdhc";
713				reg = <0x02190000 0x4000>;
714				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
715				clocks = <&clks IMX6SLL_CLK_USDHC1>,
716					 <&clks IMX6SLL_CLK_USDHC1>,
717					 <&clks IMX6SLL_CLK_USDHC1>;
718				clock-names = "ipg", "ahb", "per";
719				bus-width = <4>;
720				fsl,tuning-step = <2>;
721				fsl,tuning-start-tap = <20>;
722				status = "disabled";
723			};
724
725			usdhc2: mmc@2194000 {
726				compatible = "fsl,imx6sll-usdhc", "fsl,imx6sx-usdhc";
727				reg = <0x02194000 0x4000>;
728				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
729				clocks = <&clks IMX6SLL_CLK_USDHC2>,
730					 <&clks IMX6SLL_CLK_USDHC2>,
731					 <&clks IMX6SLL_CLK_USDHC2>;
732				clock-names = "ipg", "ahb", "per";
733				bus-width = <4>;
734				fsl,tuning-step = <2>;
735				fsl,tuning-start-tap = <20>;
736				status = "disabled";
737			};
738
739			usdhc3: mmc@2198000 {
740				compatible = "fsl,imx6sll-usdhc", "fsl,imx6sx-usdhc";
741				reg = <0x02198000 0x4000>;
742				interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
743				clocks = <&clks IMX6SLL_CLK_USDHC3>,
744					 <&clks IMX6SLL_CLK_USDHC3>,
745					 <&clks IMX6SLL_CLK_USDHC3>;
746				clock-names = "ipg", "ahb", "per";
747				bus-width = <4>;
748				fsl,tuning-step = <2>;
749				fsl,tuning-start-tap = <20>;
750				status = "disabled";
751			};
752
753			i2c1: i2c@21a0000 {
754				#address-cells = <1>;
755				#size-cells = <0>;
756				compatible = "fsl,imx6sll-i2c", "fsl,imx21-i2c";
757				reg = <0x021a0000 0x4000>;
758				interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
759				clocks = <&clks IMX6SLL_CLK_I2C1>;
760				status = "disabled";
761			};
762
763			i2c2: i2c@21a4000 {
764				#address-cells = <1>;
765				#size-cells = <0>;
766				compatible = "fsl,imx6sll-i2c", "fsl,imx21-i2c";
767				reg = <0x021a4000 0x4000>;
768				interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
769				clocks = <&clks IMX6SLL_CLK_I2C2>;
770				status = "disabled";
771			};
772
773			i2c3: i2c@21a8000 {
774				#address-cells = <1>;
775				#size-cells = <0>;
776				compatible = "fsl,imx6sll-i2c", "fsl,imx21-i2c";
777				reg = <0x021a8000 0x4000>;
778				interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
779				clocks = <&clks IMX6SLL_CLK_I2C3>;
780				status = "disabled";
781			};
782
783			mmdc: memory-controller@21b0000 {
784				compatible = "fsl,imx6sll-mmdc", "fsl,imx6q-mmdc";
785				reg = <0x021b0000 0x4000>;
786				clocks = <&clks IMX6SLL_CLK_MMDC_P0_IPG>;
787			};
788
789			rngb: rng@21b4000 {
790				compatible = "fsl,imx6sll-rngb", "fsl,imx25-rngb";
791				reg = <0x021b4000 0x4000>;
792				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
793				clocks = <&clks IMX6SLL_CLK_DUMMY>;
794			};
795
796			ocotp: efuse@21bc000 {
797				#address-cells = <1>;
798				#size-cells = <1>;
799				compatible = "fsl,imx6sll-ocotp", "syscon";
800				reg = <0x021bc000 0x4000>;
801				clocks = <&clks IMX6SLL_CLK_OCOTP>;
802
803				cpu_speed_grade: speed-grade@10 {
804					reg = <0x10 4>;
805				};
806
807				tempmon_calib: calib@38 {
808					reg = <0x38 4>;
809				};
810
811				tempmon_temp_grade: temp-grade@20 {
812					reg = <0x20 4>;
813				};
814			};
815
816			audmux: audmux@21d8000 {
817				compatible = "fsl,imx6sll-audmux", "fsl,imx31-audmux";
818				reg = <0x021d8000 0x4000>;
819				status = "disabled";
820			};
821
822			uart5: serial@21f4000 {
823				compatible = "fsl,imx6sll-uart", "fsl,imx6q-uart",
824					     "fsl,imx21-uart";
825				reg = <0x021f4000 0x4000>;
826				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
827				dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
828				dma-names = "rx", "tx";
829				clocks = <&clks IMX6SLL_CLK_UART5_IPG>,
830					 <&clks IMX6SLL_CLK_UART5_SERIAL>;
831				clock-names = "ipg", "per";
832				status = "disabled";
833			};
834		};
835	};
836};
837