1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * This file is licensed under the terms of the GNU General Public 5*4882a593Smuzhiyun * License version 2. This program is licensed "as is" without any 6*4882a593Smuzhiyun * warranty of any kind, whether express or implied. 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun/ { 12*4882a593Smuzhiyun #address-cells = <1>; 13*4882a593Smuzhiyun #size-cells = <1>; 14*4882a593Smuzhiyun model = "Marvell Orion5x SoC"; 15*4882a593Smuzhiyun compatible = "marvell,orion5x"; 16*4882a593Smuzhiyun interrupt-parent = <&intc>; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun aliases { 19*4882a593Smuzhiyun gpio0 = &gpio0; 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun soc { 23*4882a593Smuzhiyun #address-cells = <2>; 24*4882a593Smuzhiyun #size-cells = <1>; 25*4882a593Smuzhiyun controller = <&mbusc>; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun devbus_bootcs: devbus-bootcs { 28*4882a593Smuzhiyun compatible = "marvell,orion-devbus"; 29*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x1046C 0x4>; 30*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x0f) 0 0xffffffff>; 31*4882a593Smuzhiyun #address-cells = <1>; 32*4882a593Smuzhiyun #size-cells = <1>; 33*4882a593Smuzhiyun clocks = <&core_clk 0>; 34*4882a593Smuzhiyun status = "disabled"; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun devbus_cs0: devbus-cs0 { 38*4882a593Smuzhiyun compatible = "marvell,orion-devbus"; 39*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x1045C 0x4>; 40*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x1e) 0 0xffffffff>; 41*4882a593Smuzhiyun #address-cells = <1>; 42*4882a593Smuzhiyun #size-cells = <1>; 43*4882a593Smuzhiyun clocks = <&core_clk 0>; 44*4882a593Smuzhiyun status = "disabled"; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun devbus_cs1: devbus-cs1 { 48*4882a593Smuzhiyun compatible = "marvell,orion-devbus"; 49*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x10460 0x4>; 50*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x1d) 0 0xffffffff>; 51*4882a593Smuzhiyun #address-cells = <1>; 52*4882a593Smuzhiyun #size-cells = <1>; 53*4882a593Smuzhiyun clocks = <&core_clk 0>; 54*4882a593Smuzhiyun status = "disabled"; 55*4882a593Smuzhiyun }; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun devbus_cs2: devbus-cs2 { 58*4882a593Smuzhiyun compatible = "marvell,orion-devbus"; 59*4882a593Smuzhiyun reg = <MBUS_ID(0xf0, 0x01) 0x10464 0x4>; 60*4882a593Smuzhiyun ranges = <0 MBUS_ID(0x01, 0x1b) 0 0xffffffff>; 61*4882a593Smuzhiyun #address-cells = <1>; 62*4882a593Smuzhiyun #size-cells = <1>; 63*4882a593Smuzhiyun clocks = <&core_clk 0>; 64*4882a593Smuzhiyun status = "disabled"; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun internal-regs { 68*4882a593Smuzhiyun compatible = "simple-bus"; 69*4882a593Smuzhiyun #address-cells = <1>; 70*4882a593Smuzhiyun #size-cells = <1>; 71*4882a593Smuzhiyun ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun gpio0: gpio@10100 { 74*4882a593Smuzhiyun compatible = "marvell,orion-gpio"; 75*4882a593Smuzhiyun #gpio-cells = <2>; 76*4882a593Smuzhiyun gpio-controller; 77*4882a593Smuzhiyun reg = <0x10100 0x40>; 78*4882a593Smuzhiyun ngpios = <32>; 79*4882a593Smuzhiyun interrupt-controller; 80*4882a593Smuzhiyun #interrupt-cells = <2>; 81*4882a593Smuzhiyun interrupts = <6>, <7>, <8>, <9>; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun spi: spi@10600 { 85*4882a593Smuzhiyun compatible = "marvell,orion-spi"; 86*4882a593Smuzhiyun #address-cells = <1>; 87*4882a593Smuzhiyun #size-cells = <0>; 88*4882a593Smuzhiyun cell-index = <0>; 89*4882a593Smuzhiyun reg = <0x10600 0x28>; 90*4882a593Smuzhiyun status = "disabled"; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun i2c: i2c@11000 { 94*4882a593Smuzhiyun compatible = "marvell,mv64xxx-i2c"; 95*4882a593Smuzhiyun reg = <0x11000 0x20>; 96*4882a593Smuzhiyun #address-cells = <1>; 97*4882a593Smuzhiyun #size-cells = <0>; 98*4882a593Smuzhiyun interrupts = <5>; 99*4882a593Smuzhiyun clocks = <&core_clk 0>; 100*4882a593Smuzhiyun status = "disabled"; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun uart0: serial@12000 { 104*4882a593Smuzhiyun compatible = "ns16550a"; 105*4882a593Smuzhiyun reg = <0x12000 0x100>; 106*4882a593Smuzhiyun reg-shift = <2>; 107*4882a593Smuzhiyun interrupts = <3>; 108*4882a593Smuzhiyun clocks = <&core_clk 0>; 109*4882a593Smuzhiyun status = "disabled"; 110*4882a593Smuzhiyun }; 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun uart1: serial@12100 { 113*4882a593Smuzhiyun compatible = "ns16550a"; 114*4882a593Smuzhiyun reg = <0x12100 0x100>; 115*4882a593Smuzhiyun reg-shift = <2>; 116*4882a593Smuzhiyun interrupts = <4>; 117*4882a593Smuzhiyun clocks = <&core_clk 0>; 118*4882a593Smuzhiyun status = "disabled"; 119*4882a593Smuzhiyun }; 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun bridge_intc: bridge-interrupt-ctrl@20110 { 122*4882a593Smuzhiyun compatible = "marvell,orion-bridge-intc"; 123*4882a593Smuzhiyun interrupt-controller; 124*4882a593Smuzhiyun #interrupt-cells = <1>; 125*4882a593Smuzhiyun reg = <0x20110 0x8>; 126*4882a593Smuzhiyun interrupts = <0>; 127*4882a593Smuzhiyun marvell,#interrupts = <4>; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun intc: interrupt-controller@20200 { 131*4882a593Smuzhiyun compatible = "marvell,orion-intc"; 132*4882a593Smuzhiyun interrupt-controller; 133*4882a593Smuzhiyun #interrupt-cells = <1>; 134*4882a593Smuzhiyun reg = <0x20200 0x08>; 135*4882a593Smuzhiyun }; 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun timer: timer@20300 { 138*4882a593Smuzhiyun compatible = "marvell,orion-timer"; 139*4882a593Smuzhiyun reg = <0x20300 0x20>; 140*4882a593Smuzhiyun interrupt-parent = <&bridge_intc>; 141*4882a593Smuzhiyun interrupts = <1>, <2>; 142*4882a593Smuzhiyun clocks = <&core_clk 0>; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun wdt: wdt@20300 { 146*4882a593Smuzhiyun compatible = "marvell,orion-wdt"; 147*4882a593Smuzhiyun reg = <0x20300 0x28>, <0x20108 0x4>; 148*4882a593Smuzhiyun interrupt-parent = <&bridge_intc>; 149*4882a593Smuzhiyun interrupts = <3>; 150*4882a593Smuzhiyun clocks = <&core_clk 0>; 151*4882a593Smuzhiyun status = "okay"; 152*4882a593Smuzhiyun }; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun ehci0: ehci@50000 { 155*4882a593Smuzhiyun compatible = "marvell,orion-ehci"; 156*4882a593Smuzhiyun reg = <0x50000 0x1000>; 157*4882a593Smuzhiyun interrupts = <17>; 158*4882a593Smuzhiyun status = "disabled"; 159*4882a593Smuzhiyun }; 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun xor: dma-controller@60900 { 162*4882a593Smuzhiyun compatible = "marvell,orion-xor"; 163*4882a593Smuzhiyun reg = <0x60900 0x100 164*4882a593Smuzhiyun 0x60b00 0x100>; 165*4882a593Smuzhiyun status = "okay"; 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun xor00 { 168*4882a593Smuzhiyun interrupts = <30>; 169*4882a593Smuzhiyun dmacap,memcpy; 170*4882a593Smuzhiyun dmacap,xor; 171*4882a593Smuzhiyun }; 172*4882a593Smuzhiyun xor01 { 173*4882a593Smuzhiyun interrupts = <31>; 174*4882a593Smuzhiyun dmacap,memcpy; 175*4882a593Smuzhiyun dmacap,xor; 176*4882a593Smuzhiyun dmacap,memset; 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun }; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun eth: ethernet-controller@72000 { 181*4882a593Smuzhiyun compatible = "marvell,orion-eth"; 182*4882a593Smuzhiyun #address-cells = <1>; 183*4882a593Smuzhiyun #size-cells = <0>; 184*4882a593Smuzhiyun reg = <0x72000 0x4000>; 185*4882a593Smuzhiyun marvell,tx-checksum-limit = <1600>; 186*4882a593Smuzhiyun status = "disabled"; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun ethport: ethernet-port@0 { 189*4882a593Smuzhiyun compatible = "marvell,orion-eth-port"; 190*4882a593Smuzhiyun reg = <0>; 191*4882a593Smuzhiyun interrupts = <21>; 192*4882a593Smuzhiyun /* overwrite MAC address in bootloader */ 193*4882a593Smuzhiyun local-mac-address = [00 00 00 00 00 00]; 194*4882a593Smuzhiyun /* set phy-handle property in board file */ 195*4882a593Smuzhiyun }; 196*4882a593Smuzhiyun }; 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun mdio: mdio-bus@72004 { 199*4882a593Smuzhiyun compatible = "marvell,orion-mdio"; 200*4882a593Smuzhiyun #address-cells = <1>; 201*4882a593Smuzhiyun #size-cells = <0>; 202*4882a593Smuzhiyun reg = <0x72004 0x84>; 203*4882a593Smuzhiyun interrupts = <22>; 204*4882a593Smuzhiyun status = "disabled"; 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun /* add phy nodes in board file */ 207*4882a593Smuzhiyun }; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun sata: sata@80000 { 210*4882a593Smuzhiyun compatible = "marvell,orion-sata"; 211*4882a593Smuzhiyun reg = <0x80000 0x5000>; 212*4882a593Smuzhiyun interrupts = <29>; 213*4882a593Smuzhiyun status = "disabled"; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun cesa: crypto@90000 { 217*4882a593Smuzhiyun compatible = "marvell,orion-crypto"; 218*4882a593Smuzhiyun reg = <0x90000 0x10000>; 219*4882a593Smuzhiyun reg-names = "regs"; 220*4882a593Smuzhiyun interrupts = <28>; 221*4882a593Smuzhiyun marvell,crypto-srams = <&crypto_sram>; 222*4882a593Smuzhiyun marvell,crypto-sram-size = <0x800>; 223*4882a593Smuzhiyun status = "okay"; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun ehci1: ehci@a0000 { 227*4882a593Smuzhiyun compatible = "marvell,orion-ehci"; 228*4882a593Smuzhiyun reg = <0xa0000 0x1000>; 229*4882a593Smuzhiyun interrupts = <12>; 230*4882a593Smuzhiyun status = "disabled"; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun crypto_sram: sa-sram { 235*4882a593Smuzhiyun compatible = "mmio-sram"; 236*4882a593Smuzhiyun reg = <MBUS_ID(0x09, 0x00) 0x0 0x800>; 237*4882a593Smuzhiyun #address-cells = <1>; 238*4882a593Smuzhiyun #size-cells = <1>; 239*4882a593Smuzhiyun }; 240*4882a593Smuzhiyun }; 241*4882a593Smuzhiyun}; 242