Loading...
1// SPDX-License-Identifier: GPL-2.0
2//
3// Copyright 2013 Freescale Semiconductor, Inc.
4
5#include <dt-bindings/interrupt-controller/irq.h>
6#include "imx6sl-pinfunc.h"
7#include <dt-bindings/clock/imx6sl-clock.h>
8
9/ {
10 #address-cells = <1>;
11 #size-cells = <1>;
12 /*
13 * The decompressor and also some bootloaders rely on a
14 * pre-existing /chosen node to be available to insert the
15 * command line and merge other ATAGS info.
16 */
17 chosen {};
18
19 aliases {
20 ethernet0 = &fec;
21 gpio0 = &gpio1;
22 gpio1 = &gpio2;
23 gpio2 = &gpio3;
24 gpio3 = &gpio4;
25 gpio4 = &gpio5;
26 i2c0 = &i2c1;
27 i2c1 = &i2c2;
28 i2c2 = &i2c3;
29 mmc0 = &usdhc1;
30 mmc1 = &usdhc2;
31 mmc2 = &usdhc3;
32 mmc3 = &usdhc4;
33 serial0 = &uart1;
34 serial1 = &uart2;
35 serial2 = &uart3;
36 serial3 = &uart4;
37 serial4 = &uart5;
38 spi0 = &ecspi1;
39 spi1 = &ecspi2;
40 spi2 = &ecspi3;
41 spi3 = &ecspi4;
42 usbphy0 = &usbphy1;
43 usbphy1 = &usbphy2;
44 };
45
46 cpus {
47 #address-cells = <1>;
48 #size-cells = <0>;
49
50 cpu@0 {
51 compatible = "arm,cortex-a9";
52 device_type = "cpu";
53 reg = <0x0>;
54 next-level-cache = <&L2>;
55 operating-points = <
56 /* kHz uV */
57 996000 1275000
58 792000 1175000
59 396000 975000
60 >;
61 fsl,soc-operating-points = <
62 /* ARM kHz SOC-PU uV */
63 996000 1225000
64 792000 1175000
65 396000 1175000
66 >;
67 clock-latency = <61036>; /* two CLK32 periods */
68 #cooling-cells = <2>;
69 clocks = <&clks IMX6SL_CLK_ARM>, <&clks IMX6SL_CLK_PLL2_PFD2>,
70 <&clks IMX6SL_CLK_STEP>, <&clks IMX6SL_CLK_PLL1_SW>,
71 <&clks IMX6SL_CLK_PLL1_SYS>;
72 clock-names = "arm", "pll2_pfd2_396m", "step",
73 "pll1_sw", "pll1_sys";
74 arm-supply = <®_arm>;
75 pu-supply = <®_pu>;
76 soc-supply = <®_soc>;
77 };
78 };
79
80 clocks {
81 ckil {
82 compatible = "fixed-clock";
83 #clock-cells = <0>;
84 clock-frequency = <32768>;
85 };
86
87 osc {
88 compatible = "fixed-clock";
89 #clock-cells = <0>;
90 clock-frequency = <24000000>;
91 };
92 };
93
94 tempmon: tempmon {
95 compatible = "fsl,imx6q-tempmon";
96 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
97 interrupt-parent = <&gpc>;
98 fsl,tempmon = <&anatop>;
99 fsl,tempmon-data = <&ocotp>;
100 clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
101 };
102
103 pmu {
104 compatible = "arm,cortex-a9-pmu";
105 interrupt-parent = <&gpc>;
106 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
107 };
108
109 usbphynop1: usbphynop1 {
110 compatible = "usb-nop-xceiv";
111 #phy-cells = <0>;
112 };
113
114 soc {
115 #address-cells = <1>;
116 #size-cells = <1>;
117 compatible = "simple-bus";
118 interrupt-parent = <&gpc>;
119 ranges;
120
121 ocram: sram@900000 {
122 compatible = "mmio-sram";
123 reg = <0x00900000 0x20000>;
124 clocks = <&clks IMX6SL_CLK_OCRAM>;
125 };
126
127 intc: interrupt-controller@a01000 {
128 compatible = "arm,cortex-a9-gic";
129 #interrupt-cells = <3>;
130 interrupt-controller;
131 reg = <0x00a01000 0x1000>,
132 <0x00a00100 0x100>;
133 interrupt-parent = <&intc>;
134 };
135
136 L2: l2-cache@a02000 {
137 compatible = "arm,pl310-cache";
138 reg = <0x00a02000 0x1000>;
139 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
140 cache-unified;
141 cache-level = <2>;
142 arm,tag-latency = <4 2 3>;
143 arm,data-latency = <4 2 3>;
144 };
145
146 aips1: aips-bus@2000000 {
147 compatible = "fsl,aips-bus", "simple-bus";
148 #address-cells = <1>;
149 #size-cells = <1>;
150 reg = <0x02000000 0x100000>;
151 ranges;
152
153 spba: spba-bus@2000000 {
154 compatible = "fsl,spba-bus", "simple-bus";
155 #address-cells = <1>;
156 #size-cells = <1>;
157 reg = <0x02000000 0x40000>;
158 ranges;
159
160 spdif: spdif@2004000 {
161 compatible = "fsl,imx6sl-spdif",
162 "fsl,imx35-spdif";
163 reg = <0x02004000 0x4000>;
164 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
165 dmas = <&sdma 14 18 0>,
166 <&sdma 15 18 0>;
167 dma-names = "rx", "tx";
168 clocks = <&clks IMX6SL_CLK_SPDIF_GCLK>, <&clks IMX6SL_CLK_OSC>,
169 <&clks IMX6SL_CLK_SPDIF>, <&clks IMX6SL_CLK_DUMMY>,
170 <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_DUMMY>,
171 <&clks IMX6SL_CLK_IPG>, <&clks IMX6SL_CLK_DUMMY>,
172 <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_SPBA>;
173 clock-names = "core", "rxtx0",
174 "rxtx1", "rxtx2",
175 "rxtx3", "rxtx4",
176 "rxtx5", "rxtx6",
177 "rxtx7", "spba";
178 status = "disabled";
179 };
180
181 ecspi1: spi@2008000 {
182 #address-cells = <1>;
183 #size-cells = <0>;
184 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
185 reg = <0x02008000 0x4000>;
186 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
187 clocks = <&clks IMX6SL_CLK_ECSPI1>,
188 <&clks IMX6SL_CLK_ECSPI1>;
189 clock-names = "ipg", "per";
190 status = "disabled";
191 };
192
193 ecspi2: spi@200c000 {
194 #address-cells = <1>;
195 #size-cells = <0>;
196 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
197 reg = <0x0200c000 0x4000>;
198 interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
199 clocks = <&clks IMX6SL_CLK_ECSPI2>,
200 <&clks IMX6SL_CLK_ECSPI2>;
201 clock-names = "ipg", "per";
202 status = "disabled";
203 };
204
205 ecspi3: spi@2010000 {
206 #address-cells = <1>;
207 #size-cells = <0>;
208 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
209 reg = <0x02010000 0x4000>;
210 interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
211 clocks = <&clks IMX6SL_CLK_ECSPI3>,
212 <&clks IMX6SL_CLK_ECSPI3>;
213 clock-names = "ipg", "per";
214 status = "disabled";
215 };
216
217 ecspi4: spi@2014000 {
218 #address-cells = <1>;
219 #size-cells = <0>;
220 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
221 reg = <0x02014000 0x4000>;
222 interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
223 clocks = <&clks IMX6SL_CLK_ECSPI4>,
224 <&clks IMX6SL_CLK_ECSPI4>;
225 clock-names = "ipg", "per";
226 status = "disabled";
227 };
228
229 uart5: serial@2018000 {
230 compatible = "fsl,imx6sl-uart",
231 "fsl,imx6q-uart", "fsl,imx21-uart";
232 reg = <0x02018000 0x4000>;
233 interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
234 clocks = <&clks IMX6SL_CLK_UART>,
235 <&clks IMX6SL_CLK_UART_SERIAL>;
236 clock-names = "ipg", "per";
237 dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
238 dma-names = "rx", "tx";
239 status = "disabled";
240 };
241
242 uart1: serial@2020000 {
243 compatible = "fsl,imx6sl-uart",
244 "fsl,imx6q-uart", "fsl,imx21-uart";
245 reg = <0x02020000 0x4000>;
246 interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
247 clocks = <&clks IMX6SL_CLK_UART>,
248 <&clks IMX6SL_CLK_UART_SERIAL>;
249 clock-names = "ipg", "per";
250 dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
251 dma-names = "rx", "tx";
252 status = "disabled";
253 };
254
255 uart2: serial@2024000 {
256 compatible = "fsl,imx6sl-uart",
257 "fsl,imx6q-uart", "fsl,imx21-uart";
258 reg = <0x02024000 0x4000>;
259 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
260 clocks = <&clks IMX6SL_CLK_UART>,
261 <&clks IMX6SL_CLK_UART_SERIAL>;
262 clock-names = "ipg", "per";
263 dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
264 dma-names = "rx", "tx";
265 status = "disabled";
266 };
267
268 ssi1: ssi@2028000 {
269 #sound-dai-cells = <0>;
270 compatible = "fsl,imx6sl-ssi",
271 "fsl,imx51-ssi";
272 reg = <0x02028000 0x4000>;
273 interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
274 clocks = <&clks IMX6SL_CLK_SSI1_IPG>,
275 <&clks IMX6SL_CLK_SSI1>;
276 clock-names = "ipg", "baud";
277 dmas = <&sdma 37 1 0>,
278 <&sdma 38 1 0>;
279 dma-names = "rx", "tx";
280 fsl,fifo-depth = <15>;
281 status = "disabled";
282 };
283
284 ssi2: ssi@202c000 {
285 #sound-dai-cells = <0>;
286 compatible = "fsl,imx6sl-ssi",
287 "fsl,imx51-ssi";
288 reg = <0x0202c000 0x4000>;
289 interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
290 clocks = <&clks IMX6SL_CLK_SSI2_IPG>,
291 <&clks IMX6SL_CLK_SSI2>;
292 clock-names = "ipg", "baud";
293 dmas = <&sdma 41 1 0>,
294 <&sdma 42 1 0>;
295 dma-names = "rx", "tx";
296 fsl,fifo-depth = <15>;
297 status = "disabled";
298 };
299
300 ssi3: ssi@2030000 {
301 #sound-dai-cells = <0>;
302 compatible = "fsl,imx6sl-ssi",
303 "fsl,imx51-ssi";
304 reg = <0x02030000 0x4000>;
305 interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
306 clocks = <&clks IMX6SL_CLK_SSI3_IPG>,
307 <&clks IMX6SL_CLK_SSI3>;
308 clock-names = "ipg", "baud";
309 dmas = <&sdma 45 1 0>,
310 <&sdma 46 1 0>;
311 dma-names = "rx", "tx";
312 fsl,fifo-depth = <15>;
313 status = "disabled";
314 };
315
316 uart3: serial@2034000 {
317 compatible = "fsl,imx6sl-uart",
318 "fsl,imx6q-uart", "fsl,imx21-uart";
319 reg = <0x02034000 0x4000>;
320 interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
321 clocks = <&clks IMX6SL_CLK_UART>,
322 <&clks IMX6SL_CLK_UART_SERIAL>;
323 clock-names = "ipg", "per";
324 dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
325 dma-names = "rx", "tx";
326 status = "disabled";
327 };
328
329 uart4: serial@2038000 {
330 compatible = "fsl,imx6sl-uart",
331 "fsl,imx6q-uart", "fsl,imx21-uart";
332 reg = <0x02038000 0x4000>;
333 interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
334 clocks = <&clks IMX6SL_CLK_UART>,
335 <&clks IMX6SL_CLK_UART_SERIAL>;
336 clock-names = "ipg", "per";
337 dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
338 dma-names = "rx", "tx";
339 status = "disabled";
340 };
341 };
342
343 pwm1: pwm@2080000 {
344 #pwm-cells = <2>;
345 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
346 reg = <0x02080000 0x4000>;
347 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
348 clocks = <&clks IMX6SL_CLK_PERCLK>,
349 <&clks IMX6SL_CLK_PWM1>;
350 clock-names = "ipg", "per";
351 };
352
353 pwm2: pwm@2084000 {
354 #pwm-cells = <2>;
355 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
356 reg = <0x02084000 0x4000>;
357 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
358 clocks = <&clks IMX6SL_CLK_PERCLK>,
359 <&clks IMX6SL_CLK_PWM2>;
360 clock-names = "ipg", "per";
361 };
362
363 pwm3: pwm@2088000 {
364 #pwm-cells = <2>;
365 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
366 reg = <0x02088000 0x4000>;
367 interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
368 clocks = <&clks IMX6SL_CLK_PERCLK>,
369 <&clks IMX6SL_CLK_PWM3>;
370 clock-names = "ipg", "per";
371 };
372
373 pwm4: pwm@208c000 {
374 #pwm-cells = <2>;
375 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
376 reg = <0x0208c000 0x4000>;
377 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
378 clocks = <&clks IMX6SL_CLK_PERCLK>,
379 <&clks IMX6SL_CLK_PWM4>;
380 clock-names = "ipg", "per";
381 };
382
383 gpt: gpt@2098000 {
384 compatible = "fsl,imx6sl-gpt";
385 reg = <0x02098000 0x4000>;
386 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
387 clocks = <&clks IMX6SL_CLK_GPT>,
388 <&clks IMX6SL_CLK_GPT_SERIAL>;
389 clock-names = "ipg", "per";
390 };
391
392 gpio1: gpio@209c000 {
393 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
394 reg = <0x0209c000 0x4000>;
395 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
396 <0 67 IRQ_TYPE_LEVEL_HIGH>;
397 gpio-controller;
398 #gpio-cells = <2>;
399 interrupt-controller;
400 #interrupt-cells = <2>;
401 gpio-ranges = <&iomuxc 0 22 1>, <&iomuxc 1 20 2>,
402 <&iomuxc 3 23 1>, <&iomuxc 4 25 1>,
403 <&iomuxc 5 24 1>, <&iomuxc 6 19 1>,
404 <&iomuxc 7 36 2>, <&iomuxc 9 44 8>,
405 <&iomuxc 17 38 6>, <&iomuxc 23 68 4>,
406 <&iomuxc 27 64 4>, <&iomuxc 31 52 1>;
407 };
408
409 gpio2: gpio@20a0000 {
410 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
411 reg = <0x020a0000 0x4000>;
412 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
413 <0 69 IRQ_TYPE_LEVEL_HIGH>;
414 gpio-controller;
415 #gpio-cells = <2>;
416 interrupt-controller;
417 #interrupt-cells = <2>;
418 gpio-ranges = <&iomuxc 0 53 3>, <&iomuxc 3 72 2>,
419 <&iomuxc 5 34 2>, <&iomuxc 7 57 4>,
420 <&iomuxc 11 56 1>, <&iomuxc 12 61 3>,
421 <&iomuxc 15 107 1>, <&iomuxc 16 132 2>,
422 <&iomuxc 18 135 1>, <&iomuxc 19 134 1>,
423 <&iomuxc 20 108 2>, <&iomuxc 22 120 1>,
424 <&iomuxc 23 125 7>, <&iomuxc 30 110 2>;
425 };
426
427 gpio3: gpio@20a4000 {
428 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
429 reg = <0x020a4000 0x4000>;
430 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
431 <0 71 IRQ_TYPE_LEVEL_HIGH>;
432 gpio-controller;
433 #gpio-cells = <2>;
434 interrupt-controller;
435 #interrupt-cells = <2>;
436 gpio-ranges = <&iomuxc 0 112 8>, <&iomuxc 8 121 4>,
437 <&iomuxc 12 97 4>, <&iomuxc 16 166 3>,
438 <&iomuxc 19 85 2>, <&iomuxc 21 137 2>,
439 <&iomuxc 23 136 1>, <&iomuxc 24 91 1>,
440 <&iomuxc 25 99 1>, <&iomuxc 26 92 1>,
441 <&iomuxc 27 100 1>, <&iomuxc 28 93 1>,
442 <&iomuxc 29 101 1>, <&iomuxc 30 94 1>,
443 <&iomuxc 31 102 1>;
444 };
445
446 gpio4: gpio@20a8000 {
447 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
448 reg = <0x020a8000 0x4000>;
449 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
450 <0 73 IRQ_TYPE_LEVEL_HIGH>;
451 gpio-controller;
452 #gpio-cells = <2>;
453 interrupt-controller;
454 #interrupt-cells = <2>;
455 gpio-ranges = <&iomuxc 0 95 1>, <&iomuxc 1 103 1>,
456 <&iomuxc 2 96 1>, <&iomuxc 3 104 1>,
457 <&iomuxc 4 97 1>, <&iomuxc 5 105 1>,
458 <&iomuxc 6 98 1>, <&iomuxc 7 106 1>,
459 <&iomuxc 8 28 1>, <&iomuxc 9 27 1>,
460 <&iomuxc 10 26 1>, <&iomuxc 11 29 1>,
461 <&iomuxc 12 32 1>, <&iomuxc 13 31 1>,
462 <&iomuxc 14 30 1>, <&iomuxc 15 33 1>,
463 <&iomuxc 16 84 1>, <&iomuxc 17 79 2>,
464 <&iomuxc 19 78 1>, <&iomuxc 20 76 1>,
465 <&iomuxc 21 81 2>, <&iomuxc 23 75 1>,
466 <&iomuxc 24 83 1>, <&iomuxc 25 74 1>,
467 <&iomuxc 26 77 1>, <&iomuxc 27 159 1>,
468 <&iomuxc 28 154 1>, <&iomuxc 29 157 1>,
469 <&iomuxc 30 152 1>, <&iomuxc 31 156 1>;
470 };
471
472 gpio5: gpio@20ac000 {
473 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
474 reg = <0x020ac000 0x4000>;
475 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
476 <0 75 IRQ_TYPE_LEVEL_HIGH>;
477 gpio-controller;
478 #gpio-cells = <2>;
479 interrupt-controller;
480 #interrupt-cells = <2>;
481 gpio-ranges = <&iomuxc 0 158 1>, <&iomuxc 1 151 1>,
482 <&iomuxc 2 155 1>, <&iomuxc 3 153 1>,
483 <&iomuxc 4 150 1>, <&iomuxc 5 149 1>,
484 <&iomuxc 6 144 1>, <&iomuxc 7 147 1>,
485 <&iomuxc 8 142 1>, <&iomuxc 9 146 1>,
486 <&iomuxc 10 148 1>, <&iomuxc 11 141 1>,
487 <&iomuxc 12 145 1>, <&iomuxc 13 143 1>,
488 <&iomuxc 14 140 1>, <&iomuxc 15 139 1>,
489 <&iomuxc 16 164 2>, <&iomuxc 18 160 1>,
490 <&iomuxc 19 162 1>, <&iomuxc 20 163 1>,
491 <&iomuxc 21 161 1>;
492 };
493
494 kpp: kpp@20b8000 {
495 compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
496 reg = <0x020b8000 0x4000>;
497 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
498 clocks = <&clks IMX6SL_CLK_IPG>;
499 status = "disabled";
500 };
501
502 wdog1: wdog@20bc000 {
503 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
504 reg = <0x020bc000 0x4000>;
505 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
506 clocks = <&clks IMX6SL_CLK_IPG>;
507 };
508
509 wdog2: wdog@20c0000 {
510 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
511 reg = <0x020c0000 0x4000>;
512 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
513 clocks = <&clks IMX6SL_CLK_IPG>;
514 status = "disabled";
515 };
516
517 clks: ccm@20c4000 {
518 compatible = "fsl,imx6sl-ccm";
519 reg = <0x020c4000 0x4000>;
520 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
521 <0 88 IRQ_TYPE_LEVEL_HIGH>;
522 #clock-cells = <1>;
523 };
524
525 anatop: anatop@20c8000 {
526 compatible = "fsl,imx6sl-anatop",
527 "fsl,imx6q-anatop",
528 "syscon", "simple-bus";
529 reg = <0x020c8000 0x1000>;
530 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
531 <0 54 IRQ_TYPE_LEVEL_HIGH>,
532 <0 127 IRQ_TYPE_LEVEL_HIGH>;
533
534 reg_vdd1p1: regulator-1p1 {
535 compatible = "fsl,anatop-regulator";
536 regulator-name = "vdd1p1";
537 regulator-min-microvolt = <1000000>;
538 regulator-max-microvolt = <1200000>;
539 regulator-always-on;
540 anatop-reg-offset = <0x110>;
541 anatop-vol-bit-shift = <8>;
542 anatop-vol-bit-width = <5>;
543 anatop-min-bit-val = <4>;
544 anatop-min-voltage = <800000>;
545 anatop-max-voltage = <1375000>;
546 anatop-enable-bit = <0>;
547 };
548
549 reg_vdd3p0: regulator-3p0 {
550 compatible = "fsl,anatop-regulator";
551 regulator-name = "vdd3p0";
552 regulator-min-microvolt = <2800000>;
553 regulator-max-microvolt = <3150000>;
554 regulator-always-on;
555 anatop-reg-offset = <0x120>;
556 anatop-vol-bit-shift = <8>;
557 anatop-vol-bit-width = <5>;
558 anatop-min-bit-val = <0>;
559 anatop-min-voltage = <2625000>;
560 anatop-max-voltage = <3400000>;
561 anatop-enable-bit = <0>;
562 };
563
564 reg_vdd2p5: regulator-2p5 {
565 compatible = "fsl,anatop-regulator";
566 regulator-name = "vdd2p5";
567 regulator-min-microvolt = <2250000>;
568 regulator-max-microvolt = <2750000>;
569 regulator-always-on;
570 anatop-reg-offset = <0x130>;
571 anatop-vol-bit-shift = <8>;
572 anatop-vol-bit-width = <5>;
573 anatop-min-bit-val = <0>;
574 anatop-min-voltage = <2100000>;
575 anatop-max-voltage = <2850000>;
576 anatop-enable-bit = <0>;
577 };
578
579 reg_arm: regulator-vddcore {
580 compatible = "fsl,anatop-regulator";
581 regulator-name = "vddarm";
582 regulator-min-microvolt = <725000>;
583 regulator-max-microvolt = <1450000>;
584 regulator-always-on;
585 anatop-reg-offset = <0x140>;
586 anatop-vol-bit-shift = <0>;
587 anatop-vol-bit-width = <5>;
588 anatop-delay-reg-offset = <0x170>;
589 anatop-delay-bit-shift = <24>;
590 anatop-delay-bit-width = <2>;
591 anatop-min-bit-val = <1>;
592 anatop-min-voltage = <725000>;
593 anatop-max-voltage = <1450000>;
594 };
595
596 reg_pu: regulator-vddpu {
597 compatible = "fsl,anatop-regulator";
598 regulator-name = "vddpu";
599 regulator-min-microvolt = <725000>;
600 regulator-max-microvolt = <1450000>;
601 anatop-reg-offset = <0x140>;
602 anatop-vol-bit-shift = <9>;
603 anatop-vol-bit-width = <5>;
604 anatop-delay-reg-offset = <0x170>;
605 anatop-delay-bit-shift = <26>;
606 anatop-delay-bit-width = <2>;
607 anatop-min-bit-val = <1>;
608 anatop-min-voltage = <725000>;
609 anatop-max-voltage = <1450000>;
610 };
611
612 reg_soc: regulator-vddsoc {
613 compatible = "fsl,anatop-regulator";
614 regulator-name = "vddsoc";
615 regulator-min-microvolt = <725000>;
616 regulator-max-microvolt = <1450000>;
617 regulator-always-on;
618 anatop-reg-offset = <0x140>;
619 anatop-vol-bit-shift = <18>;
620 anatop-vol-bit-width = <5>;
621 anatop-delay-reg-offset = <0x170>;
622 anatop-delay-bit-shift = <28>;
623 anatop-delay-bit-width = <2>;
624 anatop-min-bit-val = <1>;
625 anatop-min-voltage = <725000>;
626 anatop-max-voltage = <1450000>;
627 };
628 };
629
630 usbphy1: usbphy@20c9000 {
631 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
632 reg = <0x020c9000 0x1000>;
633 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
634 clocks = <&clks IMX6SL_CLK_USBPHY1>;
635 fsl,anatop = <&anatop>;
636 };
637
638 usbphy2: usbphy@20ca000 {
639 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
640 reg = <0x020ca000 0x1000>;
641 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
642 clocks = <&clks IMX6SL_CLK_USBPHY2>;
643 fsl,anatop = <&anatop>;
644 };
645
646 snvs: snvs@20cc000 {
647 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
648 reg = <0x020cc000 0x4000>;
649
650 snvs_rtc: snvs-rtc-lp {
651 compatible = "fsl,sec-v4.0-mon-rtc-lp";
652 regmap = <&snvs>;
653 offset = <0x34>;
654 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
655 <0 20 IRQ_TYPE_LEVEL_HIGH>;
656 };
657
658 snvs_poweroff: snvs-poweroff {
659 compatible = "syscon-poweroff";
660 regmap = <&snvs>;
661 offset = <0x38>;
662 value = <0x60>;
663 mask = <0x60>;
664 status = "disabled";
665 };
666 };
667
668 epit1: epit@20d0000 {
669 reg = <0x020d0000 0x4000>;
670 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
671 };
672
673 epit2: epit@20d4000 {
674 reg = <0x020d4000 0x4000>;
675 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
676 };
677
678 src: src@20d8000 {
679 compatible = "fsl,imx6sl-src", "fsl,imx51-src";
680 reg = <0x020d8000 0x4000>;
681 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
682 <0 96 IRQ_TYPE_LEVEL_HIGH>;
683 #reset-cells = <1>;
684 };
685
686 gpc: gpc@20dc000 {
687 compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
688 reg = <0x020dc000 0x4000>;
689 interrupt-controller;
690 #interrupt-cells = <3>;
691 interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
692 interrupt-parent = <&intc>;
693 clocks = <&clks IMX6SL_CLK_IPG>;
694 clock-names = "ipg";
695
696 pgc {
697 #address-cells = <1>;
698 #size-cells = <0>;
699
700 power-domain@0 {
701 reg = <0>;
702 #power-domain-cells = <0>;
703 };
704
705 pd_pu: power-domain@1 {
706 reg = <1>;
707 #power-domain-cells = <0>;
708 power-supply = <®_pu>;
709 clocks = <&clks IMX6SL_CLK_GPU2D_OVG>,
710 <&clks IMX6SL_CLK_GPU2D_PODF>;
711 };
712
713 pd_disp: power-domain@2 {
714 reg = <2>;
715 #power-domain-cells = <0>;
716 clocks = <&clks IMX6SL_CLK_LCDIF_AXI>,
717 <&clks IMX6SL_CLK_LCDIF_PIX>,
718 <&clks IMX6SL_CLK_EPDC_AXI>,
719 <&clks IMX6SL_CLK_EPDC_PIX>,
720 <&clks IMX6SL_CLK_PXP_AXI>;
721 };
722 };
723 };
724
725 gpr: iomuxc-gpr@20e0000 {
726 compatible = "fsl,imx6sl-iomuxc-gpr",
727 "fsl,imx6q-iomuxc-gpr", "syscon";
728 reg = <0x020e0000 0x38>;
729 };
730
731 iomuxc: iomuxc@20e0000 {
732 compatible = "fsl,imx6sl-iomuxc";
733 reg = <0x020e0000 0x4000>;
734 };
735
736 csi: csi@20e4000 {
737 reg = <0x020e4000 0x4000>;
738 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
739 };
740
741 spdc: spdc@20e8000 {
742 reg = <0x020e8000 0x4000>;
743 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
744 };
745
746 sdma: sdma@20ec000 {
747 compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma";
748 reg = <0x020ec000 0x4000>;
749 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
750 clocks = <&clks IMX6SL_CLK_SDMA>,
751 <&clks IMX6SL_CLK_AHB>;
752 clock-names = "ipg", "ahb";
753 #dma-cells = <3>;
754 /* imx6sl reuses imx6q sdma firmware */
755 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
756 };
757
758 pxp: pxp@20f0000 {
759 reg = <0x020f0000 0x4000>;
760 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
761 };
762
763 epdc: epdc@20f4000 {
764 reg = <0x020f4000 0x4000>;
765 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
766 };
767
768 lcdif: lcdif@20f8000 {
769 compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
770 reg = <0x020f8000 0x4000>;
771 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
772 clocks = <&clks IMX6SL_CLK_LCDIF_PIX>,
773 <&clks IMX6SL_CLK_LCDIF_AXI>,
774 <&clks IMX6SL_CLK_DUMMY>;
775 clock-names = "pix", "axi", "disp_axi";
776 status = "disabled";
777 power-domains = <&pd_disp>;
778 };
779
780 dcp: dcp@20fc000 {
781 compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
782 reg = <0x020fc000 0x4000>;
783 interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
784 <0 100 IRQ_TYPE_LEVEL_HIGH>,
785 <0 101 IRQ_TYPE_LEVEL_HIGH>;
786 };
787 };
788
789 aips2: aips-bus@2100000 {
790 compatible = "fsl,aips-bus", "simple-bus";
791 #address-cells = <1>;
792 #size-cells = <1>;
793 reg = <0x02100000 0x100000>;
794 ranges;
795
796 usbotg1: usb@2184000 {
797 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
798 reg = <0x02184000 0x200>;
799 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
800 clocks = <&clks IMX6SL_CLK_USBOH3>;
801 fsl,usbphy = <&usbphy1>;
802 fsl,usbmisc = <&usbmisc 0>;
803 ahb-burst-config = <0x0>;
804 tx-burst-size-dword = <0x10>;
805 rx-burst-size-dword = <0x10>;
806 status = "disabled";
807 };
808
809 usbotg2: usb@2184200 {
810 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
811 reg = <0x02184200 0x200>;
812 interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
813 clocks = <&clks IMX6SL_CLK_USBOH3>;
814 fsl,usbphy = <&usbphy2>;
815 fsl,usbmisc = <&usbmisc 1>;
816 ahb-burst-config = <0x0>;
817 tx-burst-size-dword = <0x10>;
818 rx-burst-size-dword = <0x10>;
819 status = "disabled";
820 };
821
822 usbh: usb@2184400 {
823 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
824 reg = <0x02184400 0x200>;
825 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
826 clocks = <&clks IMX6SL_CLK_USBOH3>;
827 fsl,usbphy = <&usbphynop1>;
828 phy_type = "hsic";
829 fsl,usbmisc = <&usbmisc 2>;
830 dr_mode = "host";
831 ahb-burst-config = <0x0>;
832 tx-burst-size-dword = <0x10>;
833 rx-burst-size-dword = <0x10>;
834 status = "disabled";
835 };
836
837 usbmisc: usbmisc@2184800 {
838 #index-cells = <1>;
839 compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
840 reg = <0x02184800 0x200>;
841 clocks = <&clks IMX6SL_CLK_USBOH3>;
842 };
843
844 fec: ethernet@2188000 {
845 compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
846 reg = <0x02188000 0x4000>;
847 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
848 clocks = <&clks IMX6SL_CLK_ENET>,
849 <&clks IMX6SL_CLK_ENET_REF>;
850 clock-names = "ipg", "ahb";
851 status = "disabled";
852 };
853
854 usdhc1: usdhc@2190000 {
855 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
856 reg = <0x02190000 0x4000>;
857 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
858 clocks = <&clks IMX6SL_CLK_USDHC1>,
859 <&clks IMX6SL_CLK_USDHC1>,
860 <&clks IMX6SL_CLK_USDHC1>;
861 clock-names = "ipg", "ahb", "per";
862 bus-width = <4>;
863 status = "disabled";
864 };
865
866 usdhc2: usdhc@2194000 {
867 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
868 reg = <0x02194000 0x4000>;
869 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
870 clocks = <&clks IMX6SL_CLK_USDHC2>,
871 <&clks IMX6SL_CLK_USDHC2>,
872 <&clks IMX6SL_CLK_USDHC2>;
873 clock-names = "ipg", "ahb", "per";
874 bus-width = <4>;
875 status = "disabled";
876 };
877
878 usdhc3: usdhc@2198000 {
879 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
880 reg = <0x02198000 0x4000>;
881 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
882 clocks = <&clks IMX6SL_CLK_USDHC3>,
883 <&clks IMX6SL_CLK_USDHC3>,
884 <&clks IMX6SL_CLK_USDHC3>;
885 clock-names = "ipg", "ahb", "per";
886 bus-width = <4>;
887 status = "disabled";
888 };
889
890 usdhc4: usdhc@219c000 {
891 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
892 reg = <0x0219c000 0x4000>;
893 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
894 clocks = <&clks IMX6SL_CLK_USDHC4>,
895 <&clks IMX6SL_CLK_USDHC4>,
896 <&clks IMX6SL_CLK_USDHC4>;
897 clock-names = "ipg", "ahb", "per";
898 bus-width = <4>;
899 status = "disabled";
900 };
901
902 i2c1: i2c@21a0000 {
903 #address-cells = <1>;
904 #size-cells = <0>;
905 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
906 reg = <0x021a0000 0x4000>;
907 interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
908 clocks = <&clks IMX6SL_CLK_I2C1>;
909 status = "disabled";
910 };
911
912 i2c2: i2c@21a4000 {
913 #address-cells = <1>;
914 #size-cells = <0>;
915 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
916 reg = <0x021a4000 0x4000>;
917 interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
918 clocks = <&clks IMX6SL_CLK_I2C2>;
919 status = "disabled";
920 };
921
922 i2c3: i2c@21a8000 {
923 #address-cells = <1>;
924 #size-cells = <0>;
925 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
926 reg = <0x021a8000 0x4000>;
927 interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
928 clocks = <&clks IMX6SL_CLK_I2C3>;
929 status = "disabled";
930 };
931
932 memory-controller@21b0000 {
933 compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
934 reg = <0x021b0000 0x4000>;
935 clocks = <&clks IMX6SL_CLK_MMDC_P0_IPG>;
936 };
937
938 rngb: rngb@21b4000 {
939 reg = <0x021b4000 0x4000>;
940 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
941 };
942
943 weim: weim@21b8000 {
944 #address-cells = <2>;
945 #size-cells = <1>;
946 reg = <0x021b8000 0x4000>;
947 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
948 fsl,weim-cs-gpr = <&gpr>;
949 status = "disabled";
950 };
951
952 ocotp: ocotp@21bc000 {
953 compatible = "fsl,imx6sl-ocotp", "syscon";
954 reg = <0x021bc000 0x4000>;
955 clocks = <&clks IMX6SL_CLK_OCOTP>;
956 };
957
958 audmux: audmux@21d8000 {
959 compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
960 reg = <0x021d8000 0x4000>;
961 status = "disabled";
962 };
963 };
964
965 gpu_2d: gpu@2200000 {
966 compatible = "vivante,gc";
967 reg = <0x02200000 0x4000>;
968 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
969 clocks = <&clks IMX6SL_CLK_MMDC_ROOT>,
970 <&clks IMX6SL_CLK_GPU2D_OVG>;
971 clock-names = "bus", "core";
972 power-domains = <&pd_pu>;
973 };
974
975 gpu_vg: gpu@2204000 {
976 compatible = "vivante,gc";
977 reg = <0x02204000 0x4000>;
978 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
979 clocks = <&clks IMX6SL_CLK_MMDC_ROOT>,
980 <&clks IMX6SL_CLK_GPU2D_OVG>;
981 clock-names = "bus", "core";
982 power-domains = <&pd_pu>;
983 };
984 };
985};
1// SPDX-License-Identifier: GPL-2.0
2//
3// Copyright 2013 Freescale Semiconductor, Inc.
4
5#include <dt-bindings/interrupt-controller/irq.h>
6#include "imx6sl-pinfunc.h"
7#include <dt-bindings/clock/imx6sl-clock.h>
8
9/ {
10 #address-cells = <1>;
11 #size-cells = <1>;
12 /*
13 * The decompressor and also some bootloaders rely on a
14 * pre-existing /chosen node to be available to insert the
15 * command line and merge other ATAGS info.
16 */
17 chosen {};
18
19 aliases {
20 ethernet0 = &fec;
21 gpio0 = &gpio1;
22 gpio1 = &gpio2;
23 gpio2 = &gpio3;
24 gpio3 = &gpio4;
25 gpio4 = &gpio5;
26 i2c0 = &i2c1;
27 i2c1 = &i2c2;
28 i2c2 = &i2c3;
29 mmc0 = &usdhc1;
30 mmc1 = &usdhc2;
31 mmc2 = &usdhc3;
32 mmc3 = &usdhc4;
33 serial0 = &uart1;
34 serial1 = &uart2;
35 serial2 = &uart3;
36 serial3 = &uart4;
37 serial4 = &uart5;
38 spi0 = &ecspi1;
39 spi1 = &ecspi2;
40 spi2 = &ecspi3;
41 spi3 = &ecspi4;
42 usb0 = &usbotg1;
43 usb1 = &usbotg2;
44 usb2 = &usbh;
45 usbphy0 = &usbphy1;
46 usbphy1 = &usbphy2;
47 };
48
49 cpus {
50 #address-cells = <1>;
51 #size-cells = <0>;
52
53 cpu0: cpu@0 {
54 compatible = "arm,cortex-a9";
55 device_type = "cpu";
56 reg = <0x0>;
57 next-level-cache = <&L2>;
58 operating-points =
59 /* kHz uV */
60 <996000 1275000>,
61 <792000 1175000>,
62 <396000 975000>;
63 fsl,soc-operating-points =
64 /* ARM kHz SOC-PU uV */
65 <996000 1225000>,
66 <792000 1175000>,
67 <396000 1175000>;
68 clock-latency = <61036>; /* two CLK32 periods */
69 #cooling-cells = <2>;
70 clocks = <&clks IMX6SL_CLK_ARM>, <&clks IMX6SL_CLK_PLL2_PFD2>,
71 <&clks IMX6SL_CLK_STEP>, <&clks IMX6SL_CLK_PLL1_SW>,
72 <&clks IMX6SL_CLK_PLL1_SYS>;
73 clock-names = "arm", "pll2_pfd2_396m", "step",
74 "pll1_sw", "pll1_sys";
75 arm-supply = <®_arm>;
76 pu-supply = <®_pu>;
77 soc-supply = <®_soc>;
78 nvmem-cells = <&cpu_speed_grade>;
79 nvmem-cell-names = "speed_grade";
80 };
81 };
82
83 clocks {
84 ckil {
85 compatible = "fixed-clock";
86 #clock-cells = <0>;
87 clock-frequency = <32768>;
88 };
89
90 osc {
91 compatible = "fixed-clock";
92 #clock-cells = <0>;
93 clock-frequency = <24000000>;
94 };
95 };
96
97 pmu {
98 compatible = "arm,cortex-a9-pmu";
99 interrupt-parent = <&gpc>;
100 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
101 };
102
103 usbphynop1: usbphynop1 {
104 compatible = "usb-nop-xceiv";
105 #phy-cells = <0>;
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 ranges = <0 0x00900000 0x20000>;
119 #address-cells = <1>;
120 #size-cells = <1>;
121 clocks = <&clks IMX6SL_CLK_OCRAM>;
122 };
123
124 intc: interrupt-controller@a01000 {
125 compatible = "arm,cortex-a9-gic";
126 #interrupt-cells = <3>;
127 interrupt-controller;
128 reg = <0x00a01000 0x1000>,
129 <0x00a00100 0x100>;
130 interrupt-parent = <&intc>;
131 };
132
133 L2: cache-controller@a02000 {
134 compatible = "arm,pl310-cache";
135 reg = <0x00a02000 0x1000>;
136 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
137 cache-unified;
138 cache-level = <2>;
139 arm,tag-latency = <4 2 3>;
140 arm,data-latency = <4 2 3>;
141 };
142
143 aips1: bus@2000000 {
144 compatible = "fsl,aips-bus", "simple-bus";
145 #address-cells = <1>;
146 #size-cells = <1>;
147 reg = <0x02000000 0x100000>;
148 ranges;
149
150 spba: spba-bus@2000000 {
151 compatible = "fsl,spba-bus", "simple-bus";
152 #address-cells = <1>;
153 #size-cells = <1>;
154 reg = <0x02000000 0x40000>;
155 ranges;
156
157 spdif: spdif@2004000 {
158 compatible = "fsl,imx6sl-spdif",
159 "fsl,imx35-spdif";
160 reg = <0x02004000 0x4000>;
161 interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
162 dmas = <&sdma 14 18 0>,
163 <&sdma 15 18 0>;
164 dma-names = "rx", "tx";
165 clocks = <&clks IMX6SL_CLK_SPDIF_GCLK>, <&clks IMX6SL_CLK_OSC>,
166 <&clks IMX6SL_CLK_SPDIF>, <&clks IMX6SL_CLK_DUMMY>,
167 <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_DUMMY>,
168 <&clks IMX6SL_CLK_IPG>, <&clks IMX6SL_CLK_DUMMY>,
169 <&clks IMX6SL_CLK_DUMMY>, <&clks IMX6SL_CLK_SPBA>;
170 clock-names = "core", "rxtx0",
171 "rxtx1", "rxtx2",
172 "rxtx3", "rxtx4",
173 "rxtx5", "rxtx6",
174 "rxtx7", "spba";
175 status = "disabled";
176 };
177
178 ecspi1: spi@2008000 {
179 #address-cells = <1>;
180 #size-cells = <0>;
181 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
182 reg = <0x02008000 0x4000>;
183 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
184 clocks = <&clks IMX6SL_CLK_ECSPI1>,
185 <&clks IMX6SL_CLK_ECSPI1>;
186 clock-names = "ipg", "per";
187 status = "disabled";
188 };
189
190 ecspi2: spi@200c000 {
191 #address-cells = <1>;
192 #size-cells = <0>;
193 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
194 reg = <0x0200c000 0x4000>;
195 interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
196 clocks = <&clks IMX6SL_CLK_ECSPI2>,
197 <&clks IMX6SL_CLK_ECSPI2>;
198 clock-names = "ipg", "per";
199 status = "disabled";
200 };
201
202 ecspi3: spi@2010000 {
203 #address-cells = <1>;
204 #size-cells = <0>;
205 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
206 reg = <0x02010000 0x4000>;
207 interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
208 clocks = <&clks IMX6SL_CLK_ECSPI3>,
209 <&clks IMX6SL_CLK_ECSPI3>;
210 clock-names = "ipg", "per";
211 status = "disabled";
212 };
213
214 ecspi4: spi@2014000 {
215 #address-cells = <1>;
216 #size-cells = <0>;
217 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
218 reg = <0x02014000 0x4000>;
219 interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
220 clocks = <&clks IMX6SL_CLK_ECSPI4>,
221 <&clks IMX6SL_CLK_ECSPI4>;
222 clock-names = "ipg", "per";
223 status = "disabled";
224 };
225
226 uart5: serial@2018000 {
227 compatible = "fsl,imx6sl-uart",
228 "fsl,imx6q-uart", "fsl,imx21-uart";
229 reg = <0x02018000 0x4000>;
230 interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
231 clocks = <&clks IMX6SL_CLK_UART>,
232 <&clks IMX6SL_CLK_UART_SERIAL>;
233 clock-names = "ipg", "per";
234 dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
235 dma-names = "rx", "tx";
236 status = "disabled";
237 };
238
239 uart1: serial@2020000 {
240 compatible = "fsl,imx6sl-uart",
241 "fsl,imx6q-uart", "fsl,imx21-uart";
242 reg = <0x02020000 0x4000>;
243 interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
244 clocks = <&clks IMX6SL_CLK_UART>,
245 <&clks IMX6SL_CLK_UART_SERIAL>;
246 clock-names = "ipg", "per";
247 dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
248 dma-names = "rx", "tx";
249 status = "disabled";
250 };
251
252 uart2: serial@2024000 {
253 compatible = "fsl,imx6sl-uart",
254 "fsl,imx6q-uart", "fsl,imx21-uart";
255 reg = <0x02024000 0x4000>;
256 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
257 clocks = <&clks IMX6SL_CLK_UART>,
258 <&clks IMX6SL_CLK_UART_SERIAL>;
259 clock-names = "ipg", "per";
260 dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
261 dma-names = "rx", "tx";
262 status = "disabled";
263 };
264
265 ssi1: ssi@2028000 {
266 #sound-dai-cells = <0>;
267 compatible = "fsl,imx6sl-ssi",
268 "fsl,imx51-ssi";
269 reg = <0x02028000 0x4000>;
270 interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
271 clocks = <&clks IMX6SL_CLK_SSI1_IPG>,
272 <&clks IMX6SL_CLK_SSI1>;
273 clock-names = "ipg", "baud";
274 dmas = <&sdma 37 1 0>,
275 <&sdma 38 1 0>;
276 dma-names = "rx", "tx";
277 fsl,fifo-depth = <15>;
278 status = "disabled";
279 };
280
281 ssi2: ssi@202c000 {
282 #sound-dai-cells = <0>;
283 compatible = "fsl,imx6sl-ssi",
284 "fsl,imx51-ssi";
285 reg = <0x0202c000 0x4000>;
286 interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
287 clocks = <&clks IMX6SL_CLK_SSI2_IPG>,
288 <&clks IMX6SL_CLK_SSI2>;
289 clock-names = "ipg", "baud";
290 dmas = <&sdma 41 1 0>,
291 <&sdma 42 1 0>;
292 dma-names = "rx", "tx";
293 fsl,fifo-depth = <15>;
294 status = "disabled";
295 };
296
297 ssi3: ssi@2030000 {
298 #sound-dai-cells = <0>;
299 compatible = "fsl,imx6sl-ssi",
300 "fsl,imx51-ssi";
301 reg = <0x02030000 0x4000>;
302 interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
303 clocks = <&clks IMX6SL_CLK_SSI3_IPG>,
304 <&clks IMX6SL_CLK_SSI3>;
305 clock-names = "ipg", "baud";
306 dmas = <&sdma 45 1 0>,
307 <&sdma 46 1 0>;
308 dma-names = "rx", "tx";
309 fsl,fifo-depth = <15>;
310 status = "disabled";
311 };
312
313 uart3: serial@2034000 {
314 compatible = "fsl,imx6sl-uart",
315 "fsl,imx6q-uart", "fsl,imx21-uart";
316 reg = <0x02034000 0x4000>;
317 interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
318 clocks = <&clks IMX6SL_CLK_UART>,
319 <&clks IMX6SL_CLK_UART_SERIAL>;
320 clock-names = "ipg", "per";
321 dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
322 dma-names = "rx", "tx";
323 status = "disabled";
324 };
325
326 uart4: serial@2038000 {
327 compatible = "fsl,imx6sl-uart",
328 "fsl,imx6q-uart", "fsl,imx21-uart";
329 reg = <0x02038000 0x4000>;
330 interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
331 clocks = <&clks IMX6SL_CLK_UART>,
332 <&clks IMX6SL_CLK_UART_SERIAL>;
333 clock-names = "ipg", "per";
334 dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
335 dma-names = "rx", "tx";
336 status = "disabled";
337 };
338 };
339
340 pwm1: pwm@2080000 {
341 #pwm-cells = <3>;
342 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
343 reg = <0x02080000 0x4000>;
344 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
345 clocks = <&clks IMX6SL_CLK_PERCLK>,
346 <&clks IMX6SL_CLK_PWM1>;
347 clock-names = "ipg", "per";
348 };
349
350 pwm2: pwm@2084000 {
351 #pwm-cells = <3>;
352 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
353 reg = <0x02084000 0x4000>;
354 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
355 clocks = <&clks IMX6SL_CLK_PERCLK>,
356 <&clks IMX6SL_CLK_PWM2>;
357 clock-names = "ipg", "per";
358 };
359
360 pwm3: pwm@2088000 {
361 #pwm-cells = <3>;
362 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
363 reg = <0x02088000 0x4000>;
364 interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
365 clocks = <&clks IMX6SL_CLK_PERCLK>,
366 <&clks IMX6SL_CLK_PWM3>;
367 clock-names = "ipg", "per";
368 };
369
370 pwm4: pwm@208c000 {
371 #pwm-cells = <3>;
372 compatible = "fsl,imx6sl-pwm", "fsl,imx27-pwm";
373 reg = <0x0208c000 0x4000>;
374 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
375 clocks = <&clks IMX6SL_CLK_PERCLK>,
376 <&clks IMX6SL_CLK_PWM4>;
377 clock-names = "ipg", "per";
378 };
379
380 gpt: timer@2098000 {
381 compatible = "fsl,imx6sl-gpt";
382 reg = <0x02098000 0x4000>;
383 interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
384 clocks = <&clks IMX6SL_CLK_GPT>,
385 <&clks IMX6SL_CLK_GPT_SERIAL>;
386 clock-names = "ipg", "per";
387 };
388
389 gpio1: gpio@209c000 {
390 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
391 reg = <0x0209c000 0x4000>;
392 interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
393 <0 67 IRQ_TYPE_LEVEL_HIGH>;
394 gpio-controller;
395 #gpio-cells = <2>;
396 interrupt-controller;
397 #interrupt-cells = <2>;
398 gpio-ranges = <&iomuxc 0 22 1>, <&iomuxc 1 20 2>,
399 <&iomuxc 3 23 1>, <&iomuxc 4 25 1>,
400 <&iomuxc 5 24 1>, <&iomuxc 6 19 1>,
401 <&iomuxc 7 36 2>, <&iomuxc 9 44 8>,
402 <&iomuxc 17 38 6>, <&iomuxc 23 68 4>,
403 <&iomuxc 27 64 4>, <&iomuxc 31 52 1>;
404 };
405
406 gpio2: gpio@20a0000 {
407 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
408 reg = <0x020a0000 0x4000>;
409 interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
410 <0 69 IRQ_TYPE_LEVEL_HIGH>;
411 gpio-controller;
412 #gpio-cells = <2>;
413 interrupt-controller;
414 #interrupt-cells = <2>;
415 gpio-ranges = <&iomuxc 0 53 3>, <&iomuxc 3 72 2>,
416 <&iomuxc 5 34 2>, <&iomuxc 7 57 4>,
417 <&iomuxc 11 56 1>, <&iomuxc 12 61 3>,
418 <&iomuxc 15 107 1>, <&iomuxc 16 132 2>,
419 <&iomuxc 18 135 1>, <&iomuxc 19 134 1>,
420 <&iomuxc 20 108 2>, <&iomuxc 22 120 1>,
421 <&iomuxc 23 125 7>, <&iomuxc 30 110 2>;
422 };
423
424 gpio3: gpio@20a4000 {
425 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
426 reg = <0x020a4000 0x4000>;
427 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
428 <0 71 IRQ_TYPE_LEVEL_HIGH>;
429 gpio-controller;
430 #gpio-cells = <2>;
431 interrupt-controller;
432 #interrupt-cells = <2>;
433 gpio-ranges = <&iomuxc 0 112 8>, <&iomuxc 8 121 4>,
434 <&iomuxc 12 97 4>, <&iomuxc 16 166 3>,
435 <&iomuxc 19 85 2>, <&iomuxc 21 137 2>,
436 <&iomuxc 23 136 1>, <&iomuxc 24 91 1>,
437 <&iomuxc 25 99 1>, <&iomuxc 26 92 1>,
438 <&iomuxc 27 100 1>, <&iomuxc 28 93 1>,
439 <&iomuxc 29 101 1>, <&iomuxc 30 94 1>,
440 <&iomuxc 31 102 1>;
441 };
442
443 gpio4: gpio@20a8000 {
444 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
445 reg = <0x020a8000 0x4000>;
446 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
447 <0 73 IRQ_TYPE_LEVEL_HIGH>;
448 gpio-controller;
449 #gpio-cells = <2>;
450 interrupt-controller;
451 #interrupt-cells = <2>;
452 gpio-ranges = <&iomuxc 0 95 1>, <&iomuxc 1 103 1>,
453 <&iomuxc 2 96 1>, <&iomuxc 3 104 1>,
454 <&iomuxc 4 97 1>, <&iomuxc 5 105 1>,
455 <&iomuxc 6 98 1>, <&iomuxc 7 106 1>,
456 <&iomuxc 8 28 1>, <&iomuxc 9 27 1>,
457 <&iomuxc 10 26 1>, <&iomuxc 11 29 1>,
458 <&iomuxc 12 32 1>, <&iomuxc 13 31 1>,
459 <&iomuxc 14 30 1>, <&iomuxc 15 33 1>,
460 <&iomuxc 16 84 1>, <&iomuxc 17 79 2>,
461 <&iomuxc 19 78 1>, <&iomuxc 20 76 1>,
462 <&iomuxc 21 81 2>, <&iomuxc 23 75 1>,
463 <&iomuxc 24 83 1>, <&iomuxc 25 74 1>,
464 <&iomuxc 26 77 1>, <&iomuxc 27 159 1>,
465 <&iomuxc 28 154 1>, <&iomuxc 29 157 1>,
466 <&iomuxc 30 152 1>, <&iomuxc 31 156 1>;
467 };
468
469 gpio5: gpio@20ac000 {
470 compatible = "fsl,imx6sl-gpio", "fsl,imx35-gpio";
471 reg = <0x020ac000 0x4000>;
472 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
473 <0 75 IRQ_TYPE_LEVEL_HIGH>;
474 gpio-controller;
475 #gpio-cells = <2>;
476 interrupt-controller;
477 #interrupt-cells = <2>;
478 gpio-ranges = <&iomuxc 0 158 1>, <&iomuxc 1 151 1>,
479 <&iomuxc 2 155 1>, <&iomuxc 3 153 1>,
480 <&iomuxc 4 150 1>, <&iomuxc 5 149 1>,
481 <&iomuxc 6 144 1>, <&iomuxc 7 147 1>,
482 <&iomuxc 8 142 1>, <&iomuxc 9 146 1>,
483 <&iomuxc 10 148 1>, <&iomuxc 11 141 1>,
484 <&iomuxc 12 145 1>, <&iomuxc 13 143 1>,
485 <&iomuxc 14 140 1>, <&iomuxc 15 139 1>,
486 <&iomuxc 16 164 2>, <&iomuxc 18 160 1>,
487 <&iomuxc 19 162 1>, <&iomuxc 20 163 1>,
488 <&iomuxc 21 161 1>;
489 };
490
491 kpp: keypad@20b8000 {
492 compatible = "fsl,imx6sl-kpp", "fsl,imx21-kpp";
493 reg = <0x020b8000 0x4000>;
494 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
495 clocks = <&clks IMX6SL_CLK_IPG>;
496 status = "disabled";
497 };
498
499 wdog1: watchdog@20bc000 {
500 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
501 reg = <0x020bc000 0x4000>;
502 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
503 clocks = <&clks IMX6SL_CLK_IPG>;
504 };
505
506 wdog2: watchdog@20c0000 {
507 compatible = "fsl,imx6sl-wdt", "fsl,imx21-wdt";
508 reg = <0x020c0000 0x4000>;
509 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
510 clocks = <&clks IMX6SL_CLK_IPG>;
511 status = "disabled";
512 };
513
514 clks: clock-controller@20c4000 {
515 compatible = "fsl,imx6sl-ccm";
516 reg = <0x020c4000 0x4000>;
517 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
518 <0 88 IRQ_TYPE_LEVEL_HIGH>;
519 #clock-cells = <1>;
520 };
521
522 anatop: anatop@20c8000 {
523 compatible = "fsl,imx6sl-anatop",
524 "fsl,imx6q-anatop",
525 "syscon", "simple-mfd";
526 reg = <0x020c8000 0x1000>;
527 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
528 <0 54 IRQ_TYPE_LEVEL_HIGH>,
529 <0 127 IRQ_TYPE_LEVEL_HIGH>;
530
531 reg_vdd1p1: regulator-1p1 {
532 compatible = "fsl,anatop-regulator";
533 regulator-name = "vdd1p1";
534 regulator-min-microvolt = <1000000>;
535 regulator-max-microvolt = <1200000>;
536 regulator-always-on;
537 anatop-reg-offset = <0x110>;
538 anatop-vol-bit-shift = <8>;
539 anatop-vol-bit-width = <5>;
540 anatop-min-bit-val = <4>;
541 anatop-min-voltage = <800000>;
542 anatop-max-voltage = <1375000>;
543 anatop-enable-bit = <0>;
544 };
545
546 reg_vdd3p0: regulator-3p0 {
547 compatible = "fsl,anatop-regulator";
548 regulator-name = "vdd3p0";
549 regulator-min-microvolt = <2800000>;
550 regulator-max-microvolt = <3150000>;
551 regulator-always-on;
552 anatop-reg-offset = <0x120>;
553 anatop-vol-bit-shift = <8>;
554 anatop-vol-bit-width = <5>;
555 anatop-min-bit-val = <0>;
556 anatop-min-voltage = <2625000>;
557 anatop-max-voltage = <3400000>;
558 anatop-enable-bit = <0>;
559 };
560
561 reg_vdd2p5: regulator-2p5 {
562 compatible = "fsl,anatop-regulator";
563 regulator-name = "vdd2p5";
564 regulator-min-microvolt = <2250000>;
565 regulator-max-microvolt = <2750000>;
566 regulator-always-on;
567 anatop-reg-offset = <0x130>;
568 anatop-vol-bit-shift = <8>;
569 anatop-vol-bit-width = <5>;
570 anatop-min-bit-val = <0>;
571 anatop-min-voltage = <2100000>;
572 anatop-max-voltage = <2850000>;
573 anatop-enable-bit = <0>;
574 };
575
576 reg_arm: regulator-vddcore {
577 compatible = "fsl,anatop-regulator";
578 regulator-name = "vddarm";
579 regulator-min-microvolt = <725000>;
580 regulator-max-microvolt = <1450000>;
581 regulator-always-on;
582 anatop-reg-offset = <0x140>;
583 anatop-vol-bit-shift = <0>;
584 anatop-vol-bit-width = <5>;
585 anatop-delay-reg-offset = <0x170>;
586 anatop-delay-bit-shift = <24>;
587 anatop-delay-bit-width = <2>;
588 anatop-min-bit-val = <1>;
589 anatop-min-voltage = <725000>;
590 anatop-max-voltage = <1450000>;
591 };
592
593 reg_pu: regulator-vddpu {
594 compatible = "fsl,anatop-regulator";
595 regulator-name = "vddpu";
596 regulator-min-microvolt = <725000>;
597 regulator-max-microvolt = <1450000>;
598 anatop-reg-offset = <0x140>;
599 anatop-vol-bit-shift = <9>;
600 anatop-vol-bit-width = <5>;
601 anatop-delay-reg-offset = <0x170>;
602 anatop-delay-bit-shift = <26>;
603 anatop-delay-bit-width = <2>;
604 anatop-min-bit-val = <1>;
605 anatop-min-voltage = <725000>;
606 anatop-max-voltage = <1450000>;
607 };
608
609 reg_soc: regulator-vddsoc {
610 compatible = "fsl,anatop-regulator";
611 regulator-name = "vddsoc";
612 regulator-min-microvolt = <725000>;
613 regulator-max-microvolt = <1450000>;
614 regulator-always-on;
615 anatop-reg-offset = <0x140>;
616 anatop-vol-bit-shift = <18>;
617 anatop-vol-bit-width = <5>;
618 anatop-delay-reg-offset = <0x170>;
619 anatop-delay-bit-shift = <28>;
620 anatop-delay-bit-width = <2>;
621 anatop-min-bit-val = <1>;
622 anatop-min-voltage = <725000>;
623 anatop-max-voltage = <1450000>;
624 };
625
626 tempmon: tempmon {
627 compatible = "fsl,imx6q-tempmon";
628 interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
629 interrupt-parent = <&gpc>;
630 fsl,tempmon = <&anatop>;
631 nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
632 nvmem-cell-names = "calib", "temp_grade";
633 clocks = <&clks IMX6SL_CLK_PLL3_USB_OTG>;
634 };
635 };
636
637 usbphy1: usbphy@20c9000 {
638 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
639 reg = <0x020c9000 0x1000>;
640 interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
641 clocks = <&clks IMX6SL_CLK_USBPHY1>;
642 fsl,anatop = <&anatop>;
643 };
644
645 usbphy2: usbphy@20ca000 {
646 compatible = "fsl,imx6sl-usbphy", "fsl,imx23-usbphy";
647 reg = <0x020ca000 0x1000>;
648 interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
649 clocks = <&clks IMX6SL_CLK_USBPHY2>;
650 fsl,anatop = <&anatop>;
651 };
652
653 snvs: snvs@20cc000 {
654 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
655 reg = <0x020cc000 0x4000>;
656
657 snvs_rtc: snvs-rtc-lp {
658 compatible = "fsl,sec-v4.0-mon-rtc-lp";
659 regmap = <&snvs>;
660 offset = <0x34>;
661 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
662 <0 20 IRQ_TYPE_LEVEL_HIGH>;
663 };
664
665 snvs_poweroff: snvs-poweroff {
666 compatible = "syscon-poweroff";
667 regmap = <&snvs>;
668 offset = <0x38>;
669 value = <0x60>;
670 mask = <0x60>;
671 status = "disabled";
672 };
673 };
674
675 epit1: epit@20d0000 {
676 reg = <0x020d0000 0x4000>;
677 interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
678 };
679
680 epit2: epit@20d4000 {
681 reg = <0x020d4000 0x4000>;
682 interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
683 };
684
685 src: reset-controller@20d8000 {
686 compatible = "fsl,imx6sl-src", "fsl,imx51-src";
687 reg = <0x020d8000 0x4000>;
688 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
689 <0 96 IRQ_TYPE_LEVEL_HIGH>;
690 #reset-cells = <1>;
691 };
692
693 gpc: gpc@20dc000 {
694 compatible = "fsl,imx6sl-gpc", "fsl,imx6q-gpc";
695 reg = <0x020dc000 0x4000>;
696 interrupt-controller;
697 #interrupt-cells = <3>;
698 interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
699 interrupt-parent = <&intc>;
700 clocks = <&clks IMX6SL_CLK_IPG>;
701 clock-names = "ipg";
702
703 pgc {
704 #address-cells = <1>;
705 #size-cells = <0>;
706
707 power-domain@0 {
708 reg = <0>;
709 #power-domain-cells = <0>;
710 };
711
712 pd_pu: power-domain@1 {
713 reg = <1>;
714 #power-domain-cells = <0>;
715 power-supply = <®_pu>;
716 clocks = <&clks IMX6SL_CLK_GPU2D_OVG>,
717 <&clks IMX6SL_CLK_GPU2D_PODF>;
718 };
719
720 pd_disp: power-domain@2 {
721 reg = <2>;
722 #power-domain-cells = <0>;
723 clocks = <&clks IMX6SL_CLK_LCDIF_AXI>,
724 <&clks IMX6SL_CLK_LCDIF_PIX>,
725 <&clks IMX6SL_CLK_EPDC_AXI>,
726 <&clks IMX6SL_CLK_EPDC_PIX>,
727 <&clks IMX6SL_CLK_PXP_AXI>;
728 };
729 };
730 };
731
732 gpr: iomuxc-gpr@20e0000 {
733 compatible = "fsl,imx6sl-iomuxc-gpr",
734 "fsl,imx6q-iomuxc-gpr", "syscon";
735 reg = <0x020e0000 0x38>;
736 };
737
738 iomuxc: pinctrl@20e0000 {
739 compatible = "fsl,imx6sl-iomuxc";
740 reg = <0x020e0000 0x4000>;
741 };
742
743 csi: csi@20e4000 {
744 reg = <0x020e4000 0x4000>;
745 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
746 };
747
748 spdc: spdc@20e8000 {
749 reg = <0x020e8000 0x4000>;
750 interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
751 };
752
753 sdma: dma-controller@20ec000 {
754 compatible = "fsl,imx6sl-sdma", "fsl,imx6q-sdma";
755 reg = <0x020ec000 0x4000>;
756 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
757 clocks = <&clks IMX6SL_CLK_SDMA>,
758 <&clks IMX6SL_CLK_AHB>;
759 clock-names = "ipg", "ahb";
760 #dma-cells = <3>;
761 /* imx6sl reuses imx6q sdma firmware */
762 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
763 };
764
765 pxp: pxp@20f0000 {
766 reg = <0x020f0000 0x4000>;
767 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
768 };
769
770 epdc: epdc@20f4000 {
771 reg = <0x020f4000 0x4000>;
772 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
773 };
774
775 lcdif: lcdif@20f8000 {
776 compatible = "fsl,imx6sl-lcdif", "fsl,imx28-lcdif";
777 reg = <0x020f8000 0x4000>;
778 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
779 clocks = <&clks IMX6SL_CLK_LCDIF_PIX>,
780 <&clks IMX6SL_CLK_LCDIF_AXI>,
781 <&clks IMX6SL_CLK_DUMMY>;
782 clock-names = "pix", "axi", "disp_axi";
783 status = "disabled";
784 power-domains = <&pd_disp>;
785 };
786
787 dcp: crypto@20fc000 {
788 compatible = "fsl,imx6sl-dcp", "fsl,imx28-dcp";
789 reg = <0x020fc000 0x4000>;
790 interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>,
791 <0 100 IRQ_TYPE_LEVEL_HIGH>,
792 <0 101 IRQ_TYPE_LEVEL_HIGH>;
793 };
794 };
795
796 aips2: bus@2100000 {
797 compatible = "fsl,aips-bus", "simple-bus";
798 #address-cells = <1>;
799 #size-cells = <1>;
800 reg = <0x02100000 0x100000>;
801 ranges;
802
803 usbotg1: usb@2184000 {
804 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
805 reg = <0x02184000 0x200>;
806 interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
807 clocks = <&clks IMX6SL_CLK_USBOH3>;
808 fsl,usbphy = <&usbphy1>;
809 fsl,usbmisc = <&usbmisc 0>;
810 ahb-burst-config = <0x0>;
811 tx-burst-size-dword = <0x10>;
812 rx-burst-size-dword = <0x10>;
813 status = "disabled";
814 };
815
816 usbotg2: usb@2184200 {
817 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
818 reg = <0x02184200 0x200>;
819 interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
820 clocks = <&clks IMX6SL_CLK_USBOH3>;
821 fsl,usbphy = <&usbphy2>;
822 fsl,usbmisc = <&usbmisc 1>;
823 ahb-burst-config = <0x0>;
824 tx-burst-size-dword = <0x10>;
825 rx-burst-size-dword = <0x10>;
826 status = "disabled";
827 };
828
829 usbh: usb@2184400 {
830 compatible = "fsl,imx6sl-usb", "fsl,imx27-usb";
831 reg = <0x02184400 0x200>;
832 interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
833 clocks = <&clks IMX6SL_CLK_USBOH3>;
834 fsl,usbphy = <&usbphynop1>;
835 phy_type = "hsic";
836 fsl,usbmisc = <&usbmisc 2>;
837 dr_mode = "host";
838 ahb-burst-config = <0x0>;
839 tx-burst-size-dword = <0x10>;
840 rx-burst-size-dword = <0x10>;
841 status = "disabled";
842 };
843
844 usbmisc: usbmisc@2184800 {
845 #index-cells = <1>;
846 compatible = "fsl,imx6sl-usbmisc", "fsl,imx6q-usbmisc";
847 reg = <0x02184800 0x200>;
848 clocks = <&clks IMX6SL_CLK_USBOH3>;
849 };
850
851 fec: ethernet@2188000 {
852 compatible = "fsl,imx6sl-fec", "fsl,imx25-fec";
853 reg = <0x02188000 0x4000>;
854 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
855 clocks = <&clks IMX6SL_CLK_ENET>,
856 <&clks IMX6SL_CLK_ENET_REF>;
857 clock-names = "ipg", "ahb";
858 status = "disabled";
859 };
860
861 usdhc1: mmc@2190000 {
862 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
863 reg = <0x02190000 0x4000>;
864 interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
865 clocks = <&clks IMX6SL_CLK_USDHC1>,
866 <&clks IMX6SL_CLK_USDHC1>,
867 <&clks IMX6SL_CLK_USDHC1>;
868 clock-names = "ipg", "ahb", "per";
869 bus-width = <4>;
870 status = "disabled";
871 };
872
873 usdhc2: mmc@2194000 {
874 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
875 reg = <0x02194000 0x4000>;
876 interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
877 clocks = <&clks IMX6SL_CLK_USDHC2>,
878 <&clks IMX6SL_CLK_USDHC2>,
879 <&clks IMX6SL_CLK_USDHC2>;
880 clock-names = "ipg", "ahb", "per";
881 bus-width = <4>;
882 status = "disabled";
883 };
884
885 usdhc3: mmc@2198000 {
886 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
887 reg = <0x02198000 0x4000>;
888 interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
889 clocks = <&clks IMX6SL_CLK_USDHC3>,
890 <&clks IMX6SL_CLK_USDHC3>,
891 <&clks IMX6SL_CLK_USDHC3>;
892 clock-names = "ipg", "ahb", "per";
893 bus-width = <4>;
894 status = "disabled";
895 };
896
897 usdhc4: mmc@219c000 {
898 compatible = "fsl,imx6sl-usdhc", "fsl,imx6q-usdhc";
899 reg = <0x0219c000 0x4000>;
900 interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
901 clocks = <&clks IMX6SL_CLK_USDHC4>,
902 <&clks IMX6SL_CLK_USDHC4>,
903 <&clks IMX6SL_CLK_USDHC4>;
904 clock-names = "ipg", "ahb", "per";
905 bus-width = <4>;
906 status = "disabled";
907 };
908
909 i2c1: i2c@21a0000 {
910 #address-cells = <1>;
911 #size-cells = <0>;
912 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
913 reg = <0x021a0000 0x4000>;
914 interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
915 clocks = <&clks IMX6SL_CLK_I2C1>;
916 status = "disabled";
917 };
918
919 i2c2: i2c@21a4000 {
920 #address-cells = <1>;
921 #size-cells = <0>;
922 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
923 reg = <0x021a4000 0x4000>;
924 interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
925 clocks = <&clks IMX6SL_CLK_I2C2>;
926 status = "disabled";
927 };
928
929 i2c3: i2c@21a8000 {
930 #address-cells = <1>;
931 #size-cells = <0>;
932 compatible = "fsl,imx6sl-i2c", "fsl,imx21-i2c";
933 reg = <0x021a8000 0x4000>;
934 interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
935 clocks = <&clks IMX6SL_CLK_I2C3>;
936 status = "disabled";
937 };
938
939 memory-controller@21b0000 {
940 compatible = "fsl,imx6sl-mmdc", "fsl,imx6q-mmdc";
941 reg = <0x021b0000 0x4000>;
942 clocks = <&clks IMX6SL_CLK_MMDC_P0_IPG>;
943 };
944
945 rngb: rngb@21b4000 {
946 compatible = "fsl,imx6sl-rngb", "fsl,imx25-rngb";
947 reg = <0x021b4000 0x4000>;
948 interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>;
949 clocks = <&clks IMX6SL_CLK_DUMMY>;
950 };
951
952 weim: weim@21b8000 {
953 #address-cells = <2>;
954 #size-cells = <1>;
955 reg = <0x021b8000 0x4000>;
956 interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
957 fsl,weim-cs-gpr = <&gpr>;
958 status = "disabled";
959 };
960
961 ocotp: efuse@21bc000 {
962 compatible = "fsl,imx6sl-ocotp", "syscon";
963 reg = <0x021bc000 0x4000>;
964 clocks = <&clks IMX6SL_CLK_OCOTP>;
965 #address-cells = <1>;
966 #size-cells = <1>;
967
968 cpu_speed_grade: speed-grade@10 {
969 reg = <0x10 4>;
970 };
971
972 tempmon_calib: calib@38 {
973 reg = <0x38 4>;
974 };
975
976 tempmon_temp_grade: temp-grade@20 {
977 reg = <0x20 4>;
978 };
979 };
980
981 audmux: audmux@21d8000 {
982 compatible = "fsl,imx6sl-audmux", "fsl,imx31-audmux";
983 reg = <0x021d8000 0x4000>;
984 status = "disabled";
985 };
986 };
987
988 gpu_2d: gpu@2200000 {
989 compatible = "vivante,gc";
990 reg = <0x02200000 0x4000>;
991 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
992 clocks = <&clks IMX6SL_CLK_MMDC_ROOT>,
993 <&clks IMX6SL_CLK_GPU2D_OVG>;
994 clock-names = "bus", "core";
995 power-domains = <&pd_pu>;
996 };
997
998 gpu_vg: gpu@2204000 {
999 compatible = "vivante,gc";
1000 reg = <0x02204000 0x4000>;
1001 interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
1002 clocks = <&clks IMX6SL_CLK_MMDC_ROOT>,
1003 <&clks IMX6SL_CLK_GPU2D_OVG>;
1004 clock-names = "bus", "core";
1005 power-domains = <&pd_pu>;
1006 };
1007 };
1008};