1 // SPDX-License-Identifier: GPL-2.0+
3 // Copyright 2012 Sascha Hauer, Pengutronix
5 #include "imx27-pinfunc.h"
7 #include <dt-bindings/clock/imx27-clock.h>
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
16 * The decompressor and also some bootloaders rely on a
17 * pre-existing /chosen node to be available to insert the
18 * command line and merge other ATAGS info.
43 aitc: aitc-interrupt-controller@10040000 {
44 compatible = "fsl,imx27-aitc", "fsl,avic";
46 #interrupt-cells = <1>;
47 reg = <0x10040000 0x1000>;
52 compatible = "fsl,imx-osc26m", "fixed-clock";
54 clock-frequency = <26000000>;
65 compatible = "arm,arm926ej-s";
71 clock-latency = <62500>;
72 clocks = <&clks IMX27_CLK_CPU_DIV>;
73 voltage-tolerance = <5>;
80 compatible = "simple-bus";
81 interrupt-parent = <&aitc>;
84 aipi@10000000 { /* AIPI1 */
85 compatible = "fsl,aipi-bus", "simple-bus";
88 reg = <0x10000000 0x20000>;
92 compatible = "fsl,imx27-dma";
93 reg = <0x10001000 0x1000>;
95 clocks = <&clks IMX27_CLK_DMA_IPG_GATE>,
96 <&clks IMX27_CLK_DMA_AHB_GATE>;
97 clock-names = "ipg", "ahb";
102 wdog: wdog@10002000 {
103 compatible = "fsl,imx27-wdt", "fsl,imx21-wdt";
104 reg = <0x10002000 0x1000>;
106 clocks = <&clks IMX27_CLK_WDOG_IPG_GATE>;
109 gpt1: timer@10003000 {
110 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
111 reg = <0x10003000 0x1000>;
113 clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>,
114 <&clks IMX27_CLK_PER1_GATE>;
115 clock-names = "ipg", "per";
118 gpt2: timer@10004000 {
119 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
120 reg = <0x10004000 0x1000>;
122 clocks = <&clks IMX27_CLK_GPT2_IPG_GATE>,
123 <&clks IMX27_CLK_PER1_GATE>;
124 clock-names = "ipg", "per";
127 gpt3: timer@10005000 {
128 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
129 reg = <0x10005000 0x1000>;
131 clocks = <&clks IMX27_CLK_GPT3_IPG_GATE>,
132 <&clks IMX27_CLK_PER1_GATE>;
133 clock-names = "ipg", "per";
138 compatible = "fsl,imx27-pwm";
139 reg = <0x10006000 0x1000>;
141 clocks = <&clks IMX27_CLK_PWM_IPG_GATE>,
142 <&clks IMX27_CLK_PER1_GATE>;
143 clock-names = "ipg", "per";
147 compatible = "fsl,imx21-rtc";
148 reg = <0x10007000 0x1000>;
150 clocks = <&clks IMX27_CLK_CKIL>,
151 <&clks IMX27_CLK_RTC_IPG_GATE>;
152 clock-names = "ref", "ipg";
156 compatible = "fsl,imx27-kpp", "fsl,imx21-kpp";
157 reg = <0x10008000 0x1000>;
159 clocks = <&clks IMX27_CLK_KPP_IPG_GATE>;
163 owire: owire@10009000 {
164 compatible = "fsl,imx27-owire", "fsl,imx21-owire";
165 reg = <0x10009000 0x1000>;
166 clocks = <&clks IMX27_CLK_OWIRE_IPG_GATE>;
170 uart1: serial@1000a000 {
171 compatible = "fsl,imx27-uart", "fsl,imx21-uart";
172 reg = <0x1000a000 0x1000>;
174 clocks = <&clks IMX27_CLK_UART1_IPG_GATE>,
175 <&clks IMX27_CLK_PER1_GATE>;
176 clock-names = "ipg", "per";
180 uart2: serial@1000b000 {
181 compatible = "fsl,imx27-uart", "fsl,imx21-uart";
182 reg = <0x1000b000 0x1000>;
184 clocks = <&clks IMX27_CLK_UART2_IPG_GATE>,
185 <&clks IMX27_CLK_PER1_GATE>;
186 clock-names = "ipg", "per";
190 uart3: serial@1000c000 {
191 compatible = "fsl,imx27-uart", "fsl,imx21-uart";
192 reg = <0x1000c000 0x1000>;
194 clocks = <&clks IMX27_CLK_UART3_IPG_GATE>,
195 <&clks IMX27_CLK_PER1_GATE>;
196 clock-names = "ipg", "per";
200 uart4: serial@1000d000 {
201 compatible = "fsl,imx27-uart", "fsl,imx21-uart";
202 reg = <0x1000d000 0x1000>;
204 clocks = <&clks IMX27_CLK_UART4_IPG_GATE>,
205 <&clks IMX27_CLK_PER1_GATE>;
206 clock-names = "ipg", "per";
210 cspi1: spi@1000e000 {
211 #address-cells = <1>;
213 compatible = "fsl,imx27-cspi";
214 reg = <0x1000e000 0x1000>;
216 clocks = <&clks IMX27_CLK_CSPI1_IPG_GATE>,
217 <&clks IMX27_CLK_PER2_GATE>;
218 clock-names = "ipg", "per";
222 cspi2: spi@1000f000 {
223 #address-cells = <1>;
225 compatible = "fsl,imx27-cspi";
226 reg = <0x1000f000 0x1000>;
228 clocks = <&clks IMX27_CLK_CSPI2_IPG_GATE>,
229 <&clks IMX27_CLK_PER2_GATE>;
230 clock-names = "ipg", "per";
235 #sound-dai-cells = <0>;
236 compatible = "fsl,imx27-ssi", "fsl,imx21-ssi";
237 reg = <0x10010000 0x1000>;
239 clocks = <&clks IMX27_CLK_SSI1_IPG_GATE>;
240 dmas = <&dma 12>, <&dma 13>, <&dma 14>, <&dma 15>;
241 dma-names = "rx0", "tx0", "rx1", "tx1";
242 fsl,fifo-depth = <8>;
247 #sound-dai-cells = <0>;
248 compatible = "fsl,imx27-ssi", "fsl,imx21-ssi";
249 reg = <0x10011000 0x1000>;
251 clocks = <&clks IMX27_CLK_SSI2_IPG_GATE>;
252 dmas = <&dma 8>, <&dma 9>, <&dma 10>, <&dma 11>;
253 dma-names = "rx0", "tx0", "rx1", "tx1";
254 fsl,fifo-depth = <8>;
259 #address-cells = <1>;
261 compatible = "fsl,imx27-i2c", "fsl,imx21-i2c";
262 reg = <0x10012000 0x1000>;
264 clocks = <&clks IMX27_CLK_I2C1_IPG_GATE>;
268 sdhci1: sdhci@10013000 {
269 compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
270 reg = <0x10013000 0x1000>;
272 clocks = <&clks IMX27_CLK_SDHC1_IPG_GATE>,
273 <&clks IMX27_CLK_PER2_GATE>;
274 clock-names = "ipg", "per";
280 sdhci2: sdhci@10014000 {
281 compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
282 reg = <0x10014000 0x1000>;
284 clocks = <&clks IMX27_CLK_SDHC2_IPG_GATE>,
285 <&clks IMX27_CLK_PER2_GATE>;
286 clock-names = "ipg", "per";
292 iomuxc: iomuxc@10015000 {
293 compatible = "fsl,imx27-iomuxc";
294 reg = <0x10015000 0x600>;
295 #address-cells = <1>;
299 gpio1: gpio@10015000 {
300 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
301 reg = <0x10015000 0x100>;
302 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
306 interrupt-controller;
307 #interrupt-cells = <2>;
310 gpio2: gpio@10015100 {
311 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
312 reg = <0x10015100 0x100>;
313 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
317 interrupt-controller;
318 #interrupt-cells = <2>;
321 gpio3: gpio@10015200 {
322 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
323 reg = <0x10015200 0x100>;
324 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
328 interrupt-controller;
329 #interrupt-cells = <2>;
332 gpio4: gpio@10015300 {
333 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
334 reg = <0x10015300 0x100>;
335 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
339 interrupt-controller;
340 #interrupt-cells = <2>;
343 gpio5: gpio@10015400 {
344 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
345 reg = <0x10015400 0x100>;
346 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
350 interrupt-controller;
351 #interrupt-cells = <2>;
354 gpio6: gpio@10015500 {
355 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio";
356 reg = <0x10015500 0x100>;
357 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>;
361 interrupt-controller;
362 #interrupt-cells = <2>;
366 audmux: audmux@10016000 {
367 compatible = "fsl,imx27-audmux", "fsl,imx21-audmux";
368 reg = <0x10016000 0x1000>;
369 clocks = <&clks IMX27_CLK_DUMMY>;
370 clock-names = "audmux";
374 cspi3: spi@10017000 {
375 #address-cells = <1>;
377 compatible = "fsl,imx27-cspi";
378 reg = <0x10017000 0x1000>;
380 clocks = <&clks IMX27_CLK_CSPI3_IPG_GATE>,
381 <&clks IMX27_CLK_PER2_GATE>;
382 clock-names = "ipg", "per";
386 gpt4: timer@10019000 {
387 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
388 reg = <0x10019000 0x1000>;
390 clocks = <&clks IMX27_CLK_GPT4_IPG_GATE>,
391 <&clks IMX27_CLK_PER1_GATE>;
392 clock-names = "ipg", "per";
395 gpt5: timer@1001a000 {
396 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
397 reg = <0x1001a000 0x1000>;
399 clocks = <&clks IMX27_CLK_GPT5_IPG_GATE>,
400 <&clks IMX27_CLK_PER1_GATE>;
401 clock-names = "ipg", "per";
404 uart5: serial@1001b000 {
405 compatible = "fsl,imx27-uart", "fsl,imx21-uart";
406 reg = <0x1001b000 0x1000>;
408 clocks = <&clks IMX27_CLK_UART5_IPG_GATE>,
409 <&clks IMX27_CLK_PER1_GATE>;
410 clock-names = "ipg", "per";
414 uart6: serial@1001c000 {
415 compatible = "fsl,imx27-uart", "fsl,imx21-uart";
416 reg = <0x1001c000 0x1000>;
418 clocks = <&clks IMX27_CLK_UART6_IPG_GATE>,
419 <&clks IMX27_CLK_PER1_GATE>;
420 clock-names = "ipg", "per";
425 #address-cells = <1>;
427 compatible = "fsl,imx27-i2c", "fsl,imx21-i2c";
428 reg = <0x1001d000 0x1000>;
430 clocks = <&clks IMX27_CLK_I2C2_IPG_GATE>;
434 sdhci3: sdhci@1001e000 {
435 compatible = "fsl,imx27-mmc", "fsl,imx21-mmc";
436 reg = <0x1001e000 0x1000>;
438 clocks = <&clks IMX27_CLK_SDHC3_IPG_GATE>,
439 <&clks IMX27_CLK_PER2_GATE>;
440 clock-names = "ipg", "per";
446 gpt6: timer@1001f000 {
447 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt";
448 reg = <0x1001f000 0x1000>;
450 clocks = <&clks IMX27_CLK_GPT6_IPG_GATE>,
451 <&clks IMX27_CLK_PER1_GATE>;
452 clock-names = "ipg", "per";
456 aipi@10020000 { /* AIPI2 */
457 compatible = "fsl,aipi-bus", "simple-bus";
458 #address-cells = <1>;
460 reg = <0x10020000 0x20000>;
464 compatible = "fsl,imx27-fb", "fsl,imx21-fb";
466 reg = <0x10021000 0x1000>;
467 clocks = <&clks IMX27_CLK_LCDC_IPG_GATE>,
468 <&clks IMX27_CLK_LCDC_AHB_GATE>,
469 <&clks IMX27_CLK_PER3_GATE>;
470 clock-names = "ipg", "ahb", "per";
474 coda: coda@10023000 {
475 compatible = "fsl,imx27-vpu", "cnm,codadx6";
476 reg = <0x10023000 0x0200>;
478 clocks = <&clks IMX27_CLK_VPU_BAUD_GATE>,
479 <&clks IMX27_CLK_VPU_AHB_GATE>;
480 clock-names = "per", "ahb";
484 usbotg: usb@10024000 {
485 compatible = "fsl,imx27-usb";
486 reg = <0x10024000 0x200>;
488 clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
489 <&clks IMX27_CLK_USB_AHB_GATE>,
490 <&clks IMX27_CLK_USB_DIV>;
491 clock-names = "ipg", "ahb", "per";
492 fsl,usbmisc = <&usbmisc 0>;
496 usbh1: usb@10024200 {
497 compatible = "fsl,imx27-usb";
498 reg = <0x10024200 0x200>;
500 clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
501 <&clks IMX27_CLK_USB_AHB_GATE>,
502 <&clks IMX27_CLK_USB_DIV>;
503 clock-names = "ipg", "ahb", "per";
504 fsl,usbmisc = <&usbmisc 1>;
509 usbh2: usb@10024400 {
510 compatible = "fsl,imx27-usb";
511 reg = <0x10024400 0x200>;
513 clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
514 <&clks IMX27_CLK_USB_AHB_GATE>,
515 <&clks IMX27_CLK_USB_DIV>;
516 clock-names = "ipg", "ahb", "per";
517 fsl,usbmisc = <&usbmisc 2>;
522 usbmisc: usbmisc@10024600 {
524 compatible = "fsl,imx27-usbmisc";
525 reg = <0x10024600 0x200>;
528 sahara2: sahara@10025000 {
529 compatible = "fsl,imx27-sahara";
530 reg = <0x10025000 0x1000>;
532 clocks = <&clks IMX27_CLK_SAHARA_IPG_GATE>,
533 <&clks IMX27_CLK_SAHARA_AHB_GATE>;
534 clock-names = "ipg", "ahb";
538 compatible = "fsl,imx27-ccm";
539 reg = <0x10027000 0x1000>;
544 compatible = "fsl,imx27-iim";
545 reg = <0x10028000 0x1000>;
547 clocks = <&clks IMX27_CLK_IIM_IPG_GATE>;
550 fec: ethernet@1002b000 {
551 compatible = "fsl,imx27-fec";
552 reg = <0x1002b000 0x1000>;
554 clocks = <&clks IMX27_CLK_FEC_IPG_GATE>,
555 <&clks IMX27_CLK_FEC_AHB_GATE>;
556 clock-names = "ipg", "ahb";
562 #address-cells = <1>;
564 compatible = "fsl,imx27-nand";
565 reg = <0xd8000000 0x1000>;
567 clocks = <&clks IMX27_CLK_NFC_BAUD_GATE>;
571 weim: weim@d8002000 {
572 #address-cells = <2>;
574 compatible = "fsl,imx27-weim";
575 reg = <0xd8002000 0x1000>;
576 clocks = <&clks IMX27_CLK_EMI_AHB_GATE>;
578 0 0 0xc0000000 0x08000000
579 1 0 0xc8000000 0x08000000
580 2 0 0xd0000000 0x02000000
581 3 0 0xd2000000 0x02000000
582 4 0 0xd4000000 0x02000000
583 5 0 0xd6000000 0x02000000
588 iram: iram@ffff4c00 {
589 compatible = "mmio-sram";
590 reg = <0xffff4c00 0xb400>;