1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0+ 2*4882a593Smuzhiyun// 3*4882a593Smuzhiyun// Copyright 2016-2018 Vladimir Zapolskiy <vz@mleia.com> 4*4882a593Smuzhiyun// Copyright 2012 Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun/ { 7*4882a593Smuzhiyun #address-cells = <1>; 8*4882a593Smuzhiyun #size-cells = <1>; 9*4882a593Smuzhiyun /* 10*4882a593Smuzhiyun * The decompressor and also some bootloaders rely on a 11*4882a593Smuzhiyun * pre-existing /chosen node to be available to insert the 12*4882a593Smuzhiyun * command line and merge other ATAGS info. 13*4882a593Smuzhiyun */ 14*4882a593Smuzhiyun chosen {}; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun aliases { 17*4882a593Smuzhiyun gpio0 = &gpio1; 18*4882a593Smuzhiyun gpio1 = &gpio2; 19*4882a593Smuzhiyun gpio2 = &gpio3; 20*4882a593Smuzhiyun i2c0 = &i2c1; 21*4882a593Smuzhiyun i2c1 = &i2c2; 22*4882a593Smuzhiyun i2c2 = &i2c3; 23*4882a593Smuzhiyun serial0 = &uart1; 24*4882a593Smuzhiyun serial1 = &uart2; 25*4882a593Smuzhiyun serial2 = &uart3; 26*4882a593Smuzhiyun serial3 = &uart4; 27*4882a593Smuzhiyun serial4 = &uart5; 28*4882a593Smuzhiyun spi0 = &spi1; 29*4882a593Smuzhiyun spi1 = &spi2; 30*4882a593Smuzhiyun spi2 = &spi3; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun cpus { 34*4882a593Smuzhiyun #address-cells = <1>; 35*4882a593Smuzhiyun #size-cells = <0>; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun cpu@0 { 38*4882a593Smuzhiyun compatible = "arm,arm1136jf-s"; 39*4882a593Smuzhiyun device_type = "cpu"; 40*4882a593Smuzhiyun reg = <0>; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun avic: interrupt-controller@68000000 { 45*4882a593Smuzhiyun compatible = "fsl,imx31-avic", "fsl,avic"; 46*4882a593Smuzhiyun interrupt-controller; 47*4882a593Smuzhiyun #interrupt-cells = <1>; 48*4882a593Smuzhiyun reg = <0x68000000 0x100000>; 49*4882a593Smuzhiyun }; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun soc { 52*4882a593Smuzhiyun #address-cells = <1>; 53*4882a593Smuzhiyun #size-cells = <1>; 54*4882a593Smuzhiyun compatible = "simple-bus"; 55*4882a593Smuzhiyun interrupt-parent = <&avic>; 56*4882a593Smuzhiyun ranges; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun iram: sram@1fffc000 { 59*4882a593Smuzhiyun compatible = "mmio-sram"; 60*4882a593Smuzhiyun reg = <0x1fffc000 0x4000>; 61*4882a593Smuzhiyun #address-cells = <1>; 62*4882a593Smuzhiyun #size-cells = <1>; 63*4882a593Smuzhiyun ranges = <0 0x1fffc000 0x4000>; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun bus@43f00000 { /* AIPS1 */ 67*4882a593Smuzhiyun compatible = "fsl,aips-bus", "simple-bus"; 68*4882a593Smuzhiyun #address-cells = <1>; 69*4882a593Smuzhiyun #size-cells = <1>; 70*4882a593Smuzhiyun reg = <0x43f00000 0x100000>; 71*4882a593Smuzhiyun ranges; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun i2c1: i2c@43f80000 { 74*4882a593Smuzhiyun compatible = "fsl,imx31-i2c", "fsl,imx21-i2c"; 75*4882a593Smuzhiyun reg = <0x43f80000 0x4000>; 76*4882a593Smuzhiyun interrupts = <10>; 77*4882a593Smuzhiyun clocks = <&clks 33>; 78*4882a593Smuzhiyun #address-cells = <1>; 79*4882a593Smuzhiyun #size-cells = <0>; 80*4882a593Smuzhiyun status = "disabled"; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun i2c3: i2c@43f84000 { 84*4882a593Smuzhiyun compatible = "fsl,imx31-i2c", "fsl,imx21-i2c"; 85*4882a593Smuzhiyun reg = <0x43f84000 0x4000>; 86*4882a593Smuzhiyun interrupts = <3>; 87*4882a593Smuzhiyun clocks = <&clks 35>; 88*4882a593Smuzhiyun #address-cells = <1>; 89*4882a593Smuzhiyun #size-cells = <0>; 90*4882a593Smuzhiyun status = "disabled"; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun ata: ata@43f8c000 { 94*4882a593Smuzhiyun compatible = "fsl,imx31-pata", "fsl,imx27-pata"; 95*4882a593Smuzhiyun reg = <0x43f8c000 0x4000>; 96*4882a593Smuzhiyun interrupts = <15>; 97*4882a593Smuzhiyun clocks = <&clks 26>; 98*4882a593Smuzhiyun status = "disabled"; 99*4882a593Smuzhiyun }; 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun uart1: serial@43f90000 { 102*4882a593Smuzhiyun compatible = "fsl,imx31-uart", "fsl,imx21-uart"; 103*4882a593Smuzhiyun reg = <0x43f90000 0x4000>; 104*4882a593Smuzhiyun interrupts = <45>; 105*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 30>; 106*4882a593Smuzhiyun clock-names = "ipg", "per"; 107*4882a593Smuzhiyun status = "disabled"; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun uart2: serial@43f94000 { 111*4882a593Smuzhiyun compatible = "fsl,imx31-uart", "fsl,imx21-uart"; 112*4882a593Smuzhiyun reg = <0x43f94000 0x4000>; 113*4882a593Smuzhiyun interrupts = <32>; 114*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 31>; 115*4882a593Smuzhiyun clock-names = "ipg", "per"; 116*4882a593Smuzhiyun status = "disabled"; 117*4882a593Smuzhiyun }; 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun i2c2: i2c@43f98000 { 120*4882a593Smuzhiyun compatible = "fsl,imx31-i2c", "fsl,imx21-i2c"; 121*4882a593Smuzhiyun reg = <0x43f98000 0x4000>; 122*4882a593Smuzhiyun interrupts = <4>; 123*4882a593Smuzhiyun clocks = <&clks 34>; 124*4882a593Smuzhiyun #address-cells = <1>; 125*4882a593Smuzhiyun #size-cells = <0>; 126*4882a593Smuzhiyun status = "disabled"; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun spi1: spi@43fa4000 { 130*4882a593Smuzhiyun compatible = "fsl,imx31-cspi"; 131*4882a593Smuzhiyun reg = <0x43fa4000 0x4000>; 132*4882a593Smuzhiyun interrupts = <14>; 133*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 53>; 134*4882a593Smuzhiyun clock-names = "ipg", "per"; 135*4882a593Smuzhiyun dmas = <&sdma 8 8 0>, <&sdma 9 8 0>; 136*4882a593Smuzhiyun dma-names = "rx", "tx"; 137*4882a593Smuzhiyun #address-cells = <1>; 138*4882a593Smuzhiyun #size-cells = <0>; 139*4882a593Smuzhiyun status = "disabled"; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun kpp: kpp@43fa8000 { 143*4882a593Smuzhiyun compatible = "fsl,imx31-kpp", "fsl,imx21-kpp"; 144*4882a593Smuzhiyun reg = <0x43fa8000 0x4000>; 145*4882a593Smuzhiyun interrupts = <24>; 146*4882a593Smuzhiyun clocks = <&clks 46>; 147*4882a593Smuzhiyun status = "disabled"; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun uart4: serial@43fb0000 { 151*4882a593Smuzhiyun compatible = "fsl,imx31-uart", "fsl,imx21-uart"; 152*4882a593Smuzhiyun reg = <0x43fb0000 0x4000>; 153*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 49>; 154*4882a593Smuzhiyun clock-names = "ipg", "per"; 155*4882a593Smuzhiyun interrupts = <46>; 156*4882a593Smuzhiyun status = "disabled"; 157*4882a593Smuzhiyun }; 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun uart5: serial@43fb4000 { 160*4882a593Smuzhiyun compatible = "fsl,imx31-uart", "fsl,imx21-uart"; 161*4882a593Smuzhiyun reg = <0x43fb4000 0x4000>; 162*4882a593Smuzhiyun interrupts = <47>; 163*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 50>; 164*4882a593Smuzhiyun clock-names = "ipg", "per"; 165*4882a593Smuzhiyun status = "disabled"; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun spba@50000000 { 170*4882a593Smuzhiyun compatible = "fsl,spba-bus", "simple-bus"; 171*4882a593Smuzhiyun #address-cells = <1>; 172*4882a593Smuzhiyun #size-cells = <1>; 173*4882a593Smuzhiyun reg = <0x50000000 0x100000>; 174*4882a593Smuzhiyun ranges; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun sdhci1: mmc@50004000 { 177*4882a593Smuzhiyun compatible = "fsl,imx31-mmc"; 178*4882a593Smuzhiyun reg = <0x50004000 0x4000>; 179*4882a593Smuzhiyun interrupts = <9>; 180*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 20>; 181*4882a593Smuzhiyun clock-names = "ipg", "per"; 182*4882a593Smuzhiyun dmas = <&sdma 20 3 0>; 183*4882a593Smuzhiyun dma-names = "rx-tx"; 184*4882a593Smuzhiyun status = "disabled"; 185*4882a593Smuzhiyun }; 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun sdhci2: mmc@50008000 { 188*4882a593Smuzhiyun compatible = "fsl,imx31-mmc"; 189*4882a593Smuzhiyun reg = <0x50008000 0x4000>; 190*4882a593Smuzhiyun interrupts = <8>; 191*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 21>; 192*4882a593Smuzhiyun clock-names = "ipg", "per"; 193*4882a593Smuzhiyun dmas = <&sdma 21 3 0>; 194*4882a593Smuzhiyun dma-names = "rx-tx"; 195*4882a593Smuzhiyun status = "disabled"; 196*4882a593Smuzhiyun }; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun uart3: serial@5000c000 { 199*4882a593Smuzhiyun compatible = "fsl,imx31-uart", "fsl,imx21-uart"; 200*4882a593Smuzhiyun reg = <0x5000c000 0x4000>; 201*4882a593Smuzhiyun interrupts = <18>; 202*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 48>; 203*4882a593Smuzhiyun clock-names = "ipg", "per"; 204*4882a593Smuzhiyun status = "disabled"; 205*4882a593Smuzhiyun }; 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun spi2: spi@50010000 { 208*4882a593Smuzhiyun compatible = "fsl,imx31-cspi"; 209*4882a593Smuzhiyun reg = <0x50010000 0x4000>; 210*4882a593Smuzhiyun interrupts = <13>; 211*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 54>; 212*4882a593Smuzhiyun clock-names = "ipg", "per"; 213*4882a593Smuzhiyun dmas = <&sdma 6 8 0>, <&sdma 7 8 0>; 214*4882a593Smuzhiyun dma-names = "rx", "tx"; 215*4882a593Smuzhiyun #address-cells = <1>; 216*4882a593Smuzhiyun #size-cells = <0>; 217*4882a593Smuzhiyun status = "disabled"; 218*4882a593Smuzhiyun }; 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun iim: efuse@5001c000 { 221*4882a593Smuzhiyun compatible = "fsl,imx31-iim", "fsl,imx27-iim"; 222*4882a593Smuzhiyun reg = <0x5001c000 0x1000>; 223*4882a593Smuzhiyun interrupts = <19>; 224*4882a593Smuzhiyun clocks = <&clks 25>; 225*4882a593Smuzhiyun }; 226*4882a593Smuzhiyun }; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun bus@53f00000 { /* AIPS2 */ 229*4882a593Smuzhiyun compatible = "fsl,aips-bus", "simple-bus"; 230*4882a593Smuzhiyun #address-cells = <1>; 231*4882a593Smuzhiyun #size-cells = <1>; 232*4882a593Smuzhiyun reg = <0x53f00000 0x100000>; 233*4882a593Smuzhiyun ranges; 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun clks: ccm@53f80000{ 236*4882a593Smuzhiyun compatible = "fsl,imx31-ccm"; 237*4882a593Smuzhiyun reg = <0x53f80000 0x4000>; 238*4882a593Smuzhiyun interrupts = <31>, <53>; 239*4882a593Smuzhiyun #clock-cells = <1>; 240*4882a593Smuzhiyun }; 241*4882a593Smuzhiyun 242*4882a593Smuzhiyun spi3: spi@53f84000 { 243*4882a593Smuzhiyun compatible = "fsl,imx31-cspi"; 244*4882a593Smuzhiyun reg = <0x53f84000 0x4000>; 245*4882a593Smuzhiyun interrupts = <17>; 246*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 28>; 247*4882a593Smuzhiyun clock-names = "ipg", "per"; 248*4882a593Smuzhiyun dmas = <&sdma 10 8 0>, <&sdma 11 8 0>; 249*4882a593Smuzhiyun dma-names = "rx", "tx"; 250*4882a593Smuzhiyun #address-cells = <1>; 251*4882a593Smuzhiyun #size-cells = <0>; 252*4882a593Smuzhiyun status = "disabled"; 253*4882a593Smuzhiyun }; 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun gpt: timer@53f90000 { 256*4882a593Smuzhiyun compatible = "fsl,imx31-gpt"; 257*4882a593Smuzhiyun reg = <0x53f90000 0x4000>; 258*4882a593Smuzhiyun interrupts = <29>; 259*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 22>; 260*4882a593Smuzhiyun clock-names = "ipg", "per"; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun gpio3: gpio@53fa4000 { 264*4882a593Smuzhiyun compatible = "fsl,imx31-gpio"; 265*4882a593Smuzhiyun reg = <0x53fa4000 0x4000>; 266*4882a593Smuzhiyun interrupts = <56>; 267*4882a593Smuzhiyun gpio-controller; 268*4882a593Smuzhiyun #gpio-cells = <2>; 269*4882a593Smuzhiyun interrupt-controller; 270*4882a593Smuzhiyun #interrupt-cells = <2>; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun rng@53fb0000 { 274*4882a593Smuzhiyun compatible = "fsl,imx31-rnga"; 275*4882a593Smuzhiyun reg = <0x53fb0000 0x4000>; 276*4882a593Smuzhiyun interrupts = <22>; 277*4882a593Smuzhiyun clocks = <&clks 29>; 278*4882a593Smuzhiyun }; 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun gpio1: gpio@53fcc000 { 281*4882a593Smuzhiyun compatible = "fsl,imx31-gpio"; 282*4882a593Smuzhiyun reg = <0x53fcc000 0x4000>; 283*4882a593Smuzhiyun interrupts = <52>; 284*4882a593Smuzhiyun gpio-controller; 285*4882a593Smuzhiyun #gpio-cells = <2>; 286*4882a593Smuzhiyun interrupt-controller; 287*4882a593Smuzhiyun #interrupt-cells = <2>; 288*4882a593Smuzhiyun }; 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun gpio2: gpio@53fd0000 { 291*4882a593Smuzhiyun compatible = "fsl,imx31-gpio"; 292*4882a593Smuzhiyun reg = <0x53fd0000 0x4000>; 293*4882a593Smuzhiyun interrupts = <51>; 294*4882a593Smuzhiyun gpio-controller; 295*4882a593Smuzhiyun #gpio-cells = <2>; 296*4882a593Smuzhiyun interrupt-controller; 297*4882a593Smuzhiyun #interrupt-cells = <2>; 298*4882a593Smuzhiyun }; 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun sdma: sdma@53fd4000 { 301*4882a593Smuzhiyun compatible = "fsl,imx31-sdma"; 302*4882a593Smuzhiyun reg = <0x53fd4000 0x4000>; 303*4882a593Smuzhiyun interrupts = <34>; 304*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 27>; 305*4882a593Smuzhiyun clock-names = "ipg", "ahb"; 306*4882a593Smuzhiyun #dma-cells = <3>; 307*4882a593Smuzhiyun fsl,sdma-ram-script-name = "imx/sdma/sdma-imx31.bin"; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun rtc: rtc@53fd8000 { 311*4882a593Smuzhiyun compatible = "fsl,imx31-rtc", "fsl,imx21-rtc"; 312*4882a593Smuzhiyun reg = <0x53fd8000 0x4000>; 313*4882a593Smuzhiyun interrupts = <25>; 314*4882a593Smuzhiyun clocks = <&clks 2>, <&clks 40>; 315*4882a593Smuzhiyun clock-names = "ref", "ipg"; 316*4882a593Smuzhiyun }; 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun wdog: wdog@53fdc000 { 319*4882a593Smuzhiyun compatible = "fsl,imx31-wdt", "fsl,imx21-wdt"; 320*4882a593Smuzhiyun reg = <0x53fdc000 0x4000>; 321*4882a593Smuzhiyun clocks = <&clks 41>; 322*4882a593Smuzhiyun }; 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun pwm: pwm@53fe0000 { 325*4882a593Smuzhiyun compatible = "fsl,imx31-pwm", "fsl,imx27-pwm"; 326*4882a593Smuzhiyun reg = <0x53fe0000 0x4000>; 327*4882a593Smuzhiyun interrupts = <26>; 328*4882a593Smuzhiyun clocks = <&clks 10>, <&clks 42>; 329*4882a593Smuzhiyun clock-names = "ipg", "per"; 330*4882a593Smuzhiyun #pwm-cells = <3>; 331*4882a593Smuzhiyun status = "disabled"; 332*4882a593Smuzhiyun }; 333*4882a593Smuzhiyun }; 334*4882a593Smuzhiyun 335*4882a593Smuzhiyun emi@b8000000 { /* External Memory Interface */ 336*4882a593Smuzhiyun compatible = "simple-bus"; 337*4882a593Smuzhiyun reg = <0xb8000000 0x5000>; 338*4882a593Smuzhiyun ranges; 339*4882a593Smuzhiyun #address-cells = <1>; 340*4882a593Smuzhiyun #size-cells = <1>; 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun nfc: nand@b8000000 { 343*4882a593Smuzhiyun compatible = "fsl,imx31-nand", "fsl,imx27-nand"; 344*4882a593Smuzhiyun reg = <0xb8000000 0x1000>; 345*4882a593Smuzhiyun interrupts = <33>; 346*4882a593Smuzhiyun clocks = <&clks 9>; 347*4882a593Smuzhiyun dmas = <&sdma 30 17 0>; 348*4882a593Smuzhiyun dma-names = "rx-tx"; 349*4882a593Smuzhiyun #address-cells = <1>; 350*4882a593Smuzhiyun #size-cells = <1>; 351*4882a593Smuzhiyun status = "disabled"; 352*4882a593Smuzhiyun }; 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun weim: weim@b8002000 { 355*4882a593Smuzhiyun compatible = "fsl,imx31-weim", "fsl,imx27-weim"; 356*4882a593Smuzhiyun reg = <0xb8002000 0x1000>; 357*4882a593Smuzhiyun clocks = <&clks 56>; 358*4882a593Smuzhiyun #address-cells = <2>; 359*4882a593Smuzhiyun #size-cells = <1>; 360*4882a593Smuzhiyun ranges = <0 0 0xa0000000 0x08000000 361*4882a593Smuzhiyun 1 0 0xa8000000 0x08000000 362*4882a593Smuzhiyun 2 0 0xb0000000 0x02000000 363*4882a593Smuzhiyun 3 0 0xb2000000 0x02000000 364*4882a593Smuzhiyun 4 0 0xb4000000 0x02000000 365*4882a593Smuzhiyun 5 0 0xb6000000 0x02000000>; 366*4882a593Smuzhiyun status = "disabled"; 367*4882a593Smuzhiyun }; 368*4882a593Smuzhiyun }; 369*4882a593Smuzhiyun }; 370*4882a593Smuzhiyun}; 371