1/* 2 * Copyright 2012 Sascha Hauer, Pengutronix 3 * 4 * The code contained herein is licensed under the GNU General Public 5 * License. You may obtain a copy of the GNU General Public License 6 * Version 2 or later at the following locations: 7 * 8 * http://www.opensource.org/licenses/gpl-license.html 9 * http://www.gnu.org/copyleft/gpl.html 10 */ 11 12#include "skeleton.dtsi" 13#include "imx27-pinfunc.h" 14 15#include <dt-bindings/clock/imx27-clock.h> 16#include <dt-bindings/gpio/gpio.h> 17#include <dt-bindings/input/input.h> 18#include <dt-bindings/interrupt-controller/irq.h> 19 20/ { 21 aliases { 22 ethernet0 = &fec; 23 gpio0 = &gpio1; 24 gpio1 = &gpio2; 25 gpio2 = &gpio3; 26 gpio3 = &gpio4; 27 gpio4 = &gpio5; 28 gpio5 = &gpio6; 29 i2c0 = &i2c1; 30 i2c1 = &i2c2; 31 serial0 = &uart1; 32 serial1 = &uart2; 33 serial2 = &uart3; 34 serial3 = &uart4; 35 serial4 = &uart5; 36 serial5 = &uart6; 37 spi0 = &cspi1; 38 spi1 = &cspi2; 39 spi2 = &cspi3; 40 }; 41 42 aitc: aitc-interrupt-controller@e0000000 { 43 compatible = "fsl,imx27-aitc", "fsl,avic"; 44 interrupt-controller; 45 #interrupt-cells = <1>; 46 reg = <0x10040000 0x1000>; 47 }; 48 49 clocks { 50 #address-cells = <1>; 51 #size-cells = <0>; 52 53 osc26m { 54 compatible = "fsl,imx-osc26m", "fixed-clock"; 55 #clock-cells = <0>; 56 clock-frequency = <26000000>; 57 }; 58 }; 59 60 cpus { 61 #size-cells = <0>; 62 #address-cells = <1>; 63 64 cpu: cpu@0 { 65 device_type = "cpu"; 66 compatible = "arm,arm926ej-s"; 67 operating-points = < 68 /* kHz uV */ 69 266000 1300000 70 399000 1450000 71 >; 72 clock-latency = <62500>; 73 clocks = <&clks IMX27_CLK_CPU_DIV>; 74 voltage-tolerance = <5>; 75 }; 76 }; 77 78 soc { 79 #address-cells = <1>; 80 #size-cells = <1>; 81 compatible = "simple-bus"; 82 interrupt-parent = <&aitc>; 83 ranges; 84 85 aipi@10000000 { /* AIPI1 */ 86 compatible = "fsl,aipi-bus", "simple-bus"; 87 #address-cells = <1>; 88 #size-cells = <1>; 89 reg = <0x10000000 0x20000>; 90 ranges; 91 92 dma: dma@10001000 { 93 compatible = "fsl,imx27-dma"; 94 reg = <0x10001000 0x1000>; 95 interrupts = <32>; 96 clocks = <&clks IMX27_CLK_DMA_IPG_GATE>, 97 <&clks IMX27_CLK_DMA_AHB_GATE>; 98 clock-names = "ipg", "ahb"; 99 #dma-cells = <1>; 100 #dma-channels = <16>; 101 }; 102 103 wdog: wdog@10002000 { 104 compatible = "fsl,imx27-wdt", "fsl,imx21-wdt"; 105 reg = <0x10002000 0x1000>; 106 interrupts = <27>; 107 clocks = <&clks IMX27_CLK_WDOG_IPG_GATE>; 108 }; 109 110 gpt1: timer@10003000 { 111 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 112 reg = <0x10003000 0x1000>; 113 interrupts = <26>; 114 clocks = <&clks IMX27_CLK_GPT1_IPG_GATE>, 115 <&clks IMX27_CLK_PER1_GATE>; 116 clock-names = "ipg", "per"; 117 }; 118 119 gpt2: timer@10004000 { 120 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 121 reg = <0x10004000 0x1000>; 122 interrupts = <25>; 123 clocks = <&clks IMX27_CLK_GPT2_IPG_GATE>, 124 <&clks IMX27_CLK_PER1_GATE>; 125 clock-names = "ipg", "per"; 126 }; 127 128 gpt3: timer@10005000 { 129 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 130 reg = <0x10005000 0x1000>; 131 interrupts = <24>; 132 clocks = <&clks IMX27_CLK_GPT3_IPG_GATE>, 133 <&clks IMX27_CLK_PER1_GATE>; 134 clock-names = "ipg", "per"; 135 }; 136 137 pwm: pwm@10006000 { 138 #pwm-cells = <2>; 139 compatible = "fsl,imx27-pwm"; 140 reg = <0x10006000 0x1000>; 141 interrupts = <23>; 142 clocks = <&clks IMX27_CLK_PWM_IPG_GATE>, 143 <&clks IMX27_CLK_PER1_GATE>; 144 clock-names = "ipg", "per"; 145 }; 146 147 rtc: rtc@10007000 { 148 compatible = "fsl,imx21-rtc"; 149 reg = <0x10007000 0x1000>; 150 interrupts = <22>; 151 clocks = <&clks IMX27_CLK_CKIL>, 152 <&clks IMX27_CLK_RTC_IPG_GATE>; 153 clock-names = "ref", "ipg"; 154 }; 155 156 kpp: kpp@10008000 { 157 compatible = "fsl,imx27-kpp", "fsl,imx21-kpp"; 158 reg = <0x10008000 0x1000>; 159 interrupts = <21>; 160 clocks = <&clks IMX27_CLK_KPP_IPG_GATE>; 161 status = "disabled"; 162 }; 163 164 owire: owire@10009000 { 165 compatible = "fsl,imx27-owire", "fsl,imx21-owire"; 166 reg = <0x10009000 0x1000>; 167 clocks = <&clks IMX27_CLK_OWIRE_IPG_GATE>; 168 status = "disabled"; 169 }; 170 171 uart1: serial@1000a000 { 172 compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 173 reg = <0x1000a000 0x1000>; 174 interrupts = <20>; 175 clocks = <&clks IMX27_CLK_UART1_IPG_GATE>, 176 <&clks IMX27_CLK_PER1_GATE>; 177 clock-names = "ipg", "per"; 178 status = "disabled"; 179 }; 180 181 uart2: serial@1000b000 { 182 compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 183 reg = <0x1000b000 0x1000>; 184 interrupts = <19>; 185 clocks = <&clks IMX27_CLK_UART2_IPG_GATE>, 186 <&clks IMX27_CLK_PER1_GATE>; 187 clock-names = "ipg", "per"; 188 status = "disabled"; 189 }; 190 191 uart3: serial@1000c000 { 192 compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 193 reg = <0x1000c000 0x1000>; 194 interrupts = <18>; 195 clocks = <&clks IMX27_CLK_UART3_IPG_GATE>, 196 <&clks IMX27_CLK_PER1_GATE>; 197 clock-names = "ipg", "per"; 198 status = "disabled"; 199 }; 200 201 uart4: serial@1000d000 { 202 compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 203 reg = <0x1000d000 0x1000>; 204 interrupts = <17>; 205 clocks = <&clks IMX27_CLK_UART4_IPG_GATE>, 206 <&clks IMX27_CLK_PER1_GATE>; 207 clock-names = "ipg", "per"; 208 status = "disabled"; 209 }; 210 211 cspi1: cspi@1000e000 { 212 #address-cells = <1>; 213 #size-cells = <0>; 214 compatible = "fsl,imx27-cspi"; 215 reg = <0x1000e000 0x1000>; 216 interrupts = <16>; 217 clocks = <&clks IMX27_CLK_CSPI1_IPG_GATE>, 218 <&clks IMX27_CLK_PER2_GATE>; 219 clock-names = "ipg", "per"; 220 status = "disabled"; 221 }; 222 223 cspi2: cspi@1000f000 { 224 #address-cells = <1>; 225 #size-cells = <0>; 226 compatible = "fsl,imx27-cspi"; 227 reg = <0x1000f000 0x1000>; 228 interrupts = <15>; 229 clocks = <&clks IMX27_CLK_CSPI2_IPG_GATE>, 230 <&clks IMX27_CLK_PER2_GATE>; 231 clock-names = "ipg", "per"; 232 status = "disabled"; 233 }; 234 235 ssi1: ssi@10010000 { 236 #sound-dai-cells = <0>; 237 compatible = "fsl,imx27-ssi", "fsl,imx21-ssi"; 238 reg = <0x10010000 0x1000>; 239 interrupts = <14>; 240 clocks = <&clks IMX27_CLK_SSI1_IPG_GATE>; 241 dmas = <&dma 12>, <&dma 13>, <&dma 14>, <&dma 15>; 242 dma-names = "rx0", "tx0", "rx1", "tx1"; 243 fsl,fifo-depth = <8>; 244 status = "disabled"; 245 }; 246 247 ssi2: ssi@10011000 { 248 #sound-dai-cells = <0>; 249 compatible = "fsl,imx27-ssi", "fsl,imx21-ssi"; 250 reg = <0x10011000 0x1000>; 251 interrupts = <13>; 252 clocks = <&clks IMX27_CLK_SSI2_IPG_GATE>; 253 dmas = <&dma 8>, <&dma 9>, <&dma 10>, <&dma 11>; 254 dma-names = "rx0", "tx0", "rx1", "tx1"; 255 fsl,fifo-depth = <8>; 256 status = "disabled"; 257 }; 258 259 i2c1: i2c@10012000 { 260 #address-cells = <1>; 261 #size-cells = <0>; 262 compatible = "fsl,imx27-i2c", "fsl,imx21-i2c"; 263 reg = <0x10012000 0x1000>; 264 interrupts = <12>; 265 clocks = <&clks IMX27_CLK_I2C1_IPG_GATE>; 266 status = "disabled"; 267 }; 268 269 sdhci1: sdhci@10013000 { 270 compatible = "fsl,imx27-mmc", "fsl,imx21-mmc"; 271 reg = <0x10013000 0x1000>; 272 interrupts = <11>; 273 clocks = <&clks IMX27_CLK_SDHC1_IPG_GATE>, 274 <&clks IMX27_CLK_PER2_GATE>; 275 clock-names = "ipg", "per"; 276 dmas = <&dma 7>; 277 dma-names = "rx-tx"; 278 status = "disabled"; 279 }; 280 281 sdhci2: sdhci@10014000 { 282 compatible = "fsl,imx27-mmc", "fsl,imx21-mmc"; 283 reg = <0x10014000 0x1000>; 284 interrupts = <10>; 285 clocks = <&clks IMX27_CLK_SDHC2_IPG_GATE>, 286 <&clks IMX27_CLK_PER2_GATE>; 287 clock-names = "ipg", "per"; 288 dmas = <&dma 6>; 289 dma-names = "rx-tx"; 290 status = "disabled"; 291 }; 292 293 iomuxc: iomuxc@10015000 { 294 compatible = "fsl,imx27-iomuxc"; 295 reg = <0x10015000 0x600>; 296 #address-cells = <1>; 297 #size-cells = <1>; 298 ranges; 299 300 gpio1: gpio@10015000 { 301 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; 302 reg = <0x10015000 0x100>; 303 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>; 304 interrupts = <8>; 305 gpio-controller; 306 #gpio-cells = <2>; 307 interrupt-controller; 308 #interrupt-cells = <2>; 309 }; 310 311 gpio2: gpio@10015100 { 312 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; 313 reg = <0x10015100 0x100>; 314 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>; 315 interrupts = <8>; 316 gpio-controller; 317 #gpio-cells = <2>; 318 interrupt-controller; 319 #interrupt-cells = <2>; 320 }; 321 322 gpio3: gpio@10015200 { 323 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; 324 reg = <0x10015200 0x100>; 325 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>; 326 interrupts = <8>; 327 gpio-controller; 328 #gpio-cells = <2>; 329 interrupt-controller; 330 #interrupt-cells = <2>; 331 }; 332 333 gpio4: gpio@10015300 { 334 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; 335 reg = <0x10015300 0x100>; 336 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>; 337 interrupts = <8>; 338 gpio-controller; 339 #gpio-cells = <2>; 340 interrupt-controller; 341 #interrupt-cells = <2>; 342 }; 343 344 gpio5: gpio@10015400 { 345 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; 346 reg = <0x10015400 0x100>; 347 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>; 348 interrupts = <8>; 349 gpio-controller; 350 #gpio-cells = <2>; 351 interrupt-controller; 352 #interrupt-cells = <2>; 353 }; 354 355 gpio6: gpio@10015500 { 356 compatible = "fsl,imx27-gpio", "fsl,imx21-gpio"; 357 reg = <0x10015500 0x100>; 358 clocks = <&clks IMX27_CLK_GPIO_IPG_GATE>; 359 interrupts = <8>; 360 gpio-controller; 361 #gpio-cells = <2>; 362 interrupt-controller; 363 #interrupt-cells = <2>; 364 }; 365 }; 366 367 audmux: audmux@10016000 { 368 compatible = "fsl,imx27-audmux", "fsl,imx21-audmux"; 369 reg = <0x10016000 0x1000>; 370 clocks = <&clks IMX27_CLK_DUMMY>; 371 clock-names = "audmux"; 372 status = "disabled"; 373 }; 374 375 cspi3: cspi@10017000 { 376 #address-cells = <1>; 377 #size-cells = <0>; 378 compatible = "fsl,imx27-cspi"; 379 reg = <0x10017000 0x1000>; 380 interrupts = <6>; 381 clocks = <&clks IMX27_CLK_CSPI3_IPG_GATE>, 382 <&clks IMX27_CLK_PER2_GATE>; 383 clock-names = "ipg", "per"; 384 status = "disabled"; 385 }; 386 387 gpt4: timer@10019000 { 388 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 389 reg = <0x10019000 0x1000>; 390 interrupts = <4>; 391 clocks = <&clks IMX27_CLK_GPT4_IPG_GATE>, 392 <&clks IMX27_CLK_PER1_GATE>; 393 clock-names = "ipg", "per"; 394 }; 395 396 gpt5: timer@1001a000 { 397 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 398 reg = <0x1001a000 0x1000>; 399 interrupts = <3>; 400 clocks = <&clks IMX27_CLK_GPT5_IPG_GATE>, 401 <&clks IMX27_CLK_PER1_GATE>; 402 clock-names = "ipg", "per"; 403 }; 404 405 uart5: serial@1001b000 { 406 compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 407 reg = <0x1001b000 0x1000>; 408 interrupts = <49>; 409 clocks = <&clks IMX27_CLK_UART5_IPG_GATE>, 410 <&clks IMX27_CLK_PER1_GATE>; 411 clock-names = "ipg", "per"; 412 status = "disabled"; 413 }; 414 415 uart6: serial@1001c000 { 416 compatible = "fsl,imx27-uart", "fsl,imx21-uart"; 417 reg = <0x1001c000 0x1000>; 418 interrupts = <48>; 419 clocks = <&clks IMX27_CLK_UART6_IPG_GATE>, 420 <&clks IMX27_CLK_PER1_GATE>; 421 clock-names = "ipg", "per"; 422 status = "disabled"; 423 }; 424 425 i2c2: i2c@1001d000 { 426 #address-cells = <1>; 427 #size-cells = <0>; 428 compatible = "fsl,imx27-i2c", "fsl,imx21-i2c"; 429 reg = <0x1001d000 0x1000>; 430 interrupts = <1>; 431 clocks = <&clks IMX27_CLK_I2C2_IPG_GATE>; 432 status = "disabled"; 433 }; 434 435 sdhci3: sdhci@1001e000 { 436 compatible = "fsl,imx27-mmc", "fsl,imx21-mmc"; 437 reg = <0x1001e000 0x1000>; 438 interrupts = <9>; 439 clocks = <&clks IMX27_CLK_SDHC3_IPG_GATE>, 440 <&clks IMX27_CLK_PER2_GATE>; 441 clock-names = "ipg", "per"; 442 dmas = <&dma 36>; 443 dma-names = "rx-tx"; 444 status = "disabled"; 445 }; 446 447 gpt6: timer@1001f000 { 448 compatible = "fsl,imx27-gpt", "fsl,imx21-gpt"; 449 reg = <0x1001f000 0x1000>; 450 interrupts = <2>; 451 clocks = <&clks IMX27_CLK_GPT6_IPG_GATE>, 452 <&clks IMX27_CLK_PER1_GATE>; 453 clock-names = "ipg", "per"; 454 }; 455 }; 456 457 aipi@10020000 { /* AIPI2 */ 458 compatible = "fsl,aipi-bus", "simple-bus"; 459 #address-cells = <1>; 460 #size-cells = <1>; 461 reg = <0x10020000 0x20000>; 462 ranges; 463 464 fb: fb@10021000 { 465 compatible = "fsl,imx27-fb", "fsl,imx21-fb"; 466 interrupts = <61>; 467 reg = <0x10021000 0x1000>; 468 clocks = <&clks IMX27_CLK_LCDC_IPG_GATE>, 469 <&clks IMX27_CLK_LCDC_AHB_GATE>, 470 <&clks IMX27_CLK_PER3_GATE>; 471 clock-names = "ipg", "ahb", "per"; 472 status = "disabled"; 473 }; 474 475 coda: coda@10023000 { 476 compatible = "fsl,imx27-vpu", "cnm,codadx6"; 477 reg = <0x10023000 0x0200>; 478 interrupts = <53>; 479 clocks = <&clks IMX27_CLK_VPU_BAUD_GATE>, 480 <&clks IMX27_CLK_VPU_AHB_GATE>; 481 clock-names = "per", "ahb"; 482 iram = <&iram>; 483 }; 484 485 usbotg: usb@10024000 { 486 compatible = "fsl,imx27-usb"; 487 reg = <0x10024000 0x200>; 488 interrupts = <56>; 489 clocks = <&clks IMX27_CLK_USB_IPG_GATE>, 490 <&clks IMX27_CLK_USB_AHB_GATE>, 491 <&clks IMX27_CLK_USB_DIV>; 492 clock-names = "ipg", "ahb", "per"; 493 fsl,usbmisc = <&usbmisc 0>; 494 status = "disabled"; 495 }; 496 497 usbh1: usb@10024200 { 498 compatible = "fsl,imx27-usb"; 499 reg = <0x10024200 0x200>; 500 interrupts = <54>; 501 clocks = <&clks IMX27_CLK_USB_IPG_GATE>, 502 <&clks IMX27_CLK_USB_AHB_GATE>, 503 <&clks IMX27_CLK_USB_DIV>; 504 clock-names = "ipg", "ahb", "per"; 505 fsl,usbmisc = <&usbmisc 1>; 506 dr_mode = "host"; 507 status = "disabled"; 508 }; 509 510 usbh2: usb@10024400 { 511 compatible = "fsl,imx27-usb"; 512 reg = <0x10024400 0x200>; 513 interrupts = <55>; 514 clocks = <&clks IMX27_CLK_USB_IPG_GATE>, 515 <&clks IMX27_CLK_USB_AHB_GATE>, 516 <&clks IMX27_CLK_USB_DIV>; 517 clock-names = "ipg", "ahb", "per"; 518 fsl,usbmisc = <&usbmisc 2>; 519 dr_mode = "host"; 520 status = "disabled"; 521 }; 522 523 usbmisc: usbmisc@10024600 { 524 #index-cells = <1>; 525 compatible = "fsl,imx27-usbmisc"; 526 reg = <0x10024600 0x200>; 527 }; 528 529 sahara2: sahara@10025000 { 530 compatible = "fsl,imx27-sahara"; 531 reg = <0x10025000 0x1000>; 532 interrupts = <59>; 533 clocks = <&clks IMX27_CLK_SAHARA_IPG_GATE>, 534 <&clks IMX27_CLK_SAHARA_AHB_GATE>; 535 clock-names = "ipg", "ahb"; 536 }; 537 538 clks: ccm@10027000{ 539 compatible = "fsl,imx27-ccm"; 540 reg = <0x10027000 0x1000>; 541 #clock-cells = <1>; 542 }; 543 544 iim: iim@10028000 { 545 compatible = "fsl,imx27-iim"; 546 reg = <0x10028000 0x1000>; 547 interrupts = <62>; 548 clocks = <&clks IMX27_CLK_IIM_IPG_GATE>; 549 }; 550 551 fec: ethernet@1002b000 { 552 compatible = "fsl,imx27-fec"; 553 reg = <0x1002b000 0x1000>; 554 interrupts = <50>; 555 clocks = <&clks IMX27_CLK_FEC_IPG_GATE>, 556 <&clks IMX27_CLK_FEC_AHB_GATE>; 557 clock-names = "ipg", "ahb"; 558 status = "disabled"; 559 }; 560 }; 561 562 nfc: nand@d8000000 { 563 #address-cells = <1>; 564 #size-cells = <1>; 565 compatible = "fsl,imx27-nand"; 566 reg = <0xd8000000 0x1000>; 567 interrupts = <29>; 568 clocks = <&clks IMX27_CLK_NFC_BAUD_GATE>; 569 status = "disabled"; 570 }; 571 572 weim: weim@d8002000 { 573 #address-cells = <2>; 574 #size-cells = <1>; 575 compatible = "fsl,imx27-weim"; 576 reg = <0xd8002000 0x1000>; 577 clocks = <&clks IMX27_CLK_EMI_AHB_GATE>; 578 ranges = < 579 0 0 0xc0000000 0x08000000 580 1 0 0xc8000000 0x08000000 581 2 0 0xd0000000 0x02000000 582 3 0 0xd2000000 0x02000000 583 4 0 0xd4000000 0x02000000 584 5 0 0xd6000000 0x02000000 585 >; 586 status = "disabled"; 587 }; 588 589 iram: iram@ffff4c00 { 590 compatible = "mmio-sram"; 591 reg = <0xffff4c00 0xb400>; 592 }; 593 }; 594}; 595