1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * base MPC5200b Device Tree Source 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2010 SecretLab 6*4882a593Smuzhiyun * Grant Likely <grant@secretlab.ca> 7*4882a593Smuzhiyun * John Bonesio <bones@secretlab.ca> 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/dts-v1/; 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun/ { 13*4882a593Smuzhiyun model = "fsl,mpc5200b"; 14*4882a593Smuzhiyun compatible = "fsl,mpc5200b"; 15*4882a593Smuzhiyun #address-cells = <1>; 16*4882a593Smuzhiyun #size-cells = <1>; 17*4882a593Smuzhiyun interrupt-parent = <&mpc5200_pic>; 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun cpus { 20*4882a593Smuzhiyun #address-cells = <1>; 21*4882a593Smuzhiyun #size-cells = <0>; 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun powerpc: PowerPC,5200@0 { 24*4882a593Smuzhiyun device_type = "cpu"; 25*4882a593Smuzhiyun reg = <0>; 26*4882a593Smuzhiyun d-cache-line-size = <32>; 27*4882a593Smuzhiyun i-cache-line-size = <32>; 28*4882a593Smuzhiyun d-cache-size = <0x4000>; // L1, 16K 29*4882a593Smuzhiyun i-cache-size = <0x4000>; // L1, 16K 30*4882a593Smuzhiyun timebase-frequency = <0>; // from bootloader 31*4882a593Smuzhiyun bus-frequency = <0>; // from bootloader 32*4882a593Smuzhiyun clock-frequency = <0>; // from bootloader 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun memory: memory@0 { 37*4882a593Smuzhiyun device_type = "memory"; 38*4882a593Smuzhiyun reg = <0x00000000 0x04000000>; // 64MB 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun soc: soc5200@f0000000 { 42*4882a593Smuzhiyun #address-cells = <1>; 43*4882a593Smuzhiyun #size-cells = <1>; 44*4882a593Smuzhiyun compatible = "fsl,mpc5200b-immr"; 45*4882a593Smuzhiyun ranges = <0 0xf0000000 0x0000c000>; 46*4882a593Smuzhiyun reg = <0xf0000000 0x00000100>; 47*4882a593Smuzhiyun bus-frequency = <0>; // from bootloader 48*4882a593Smuzhiyun system-frequency = <0>; // from bootloader 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun cdm@200 { 51*4882a593Smuzhiyun compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; 52*4882a593Smuzhiyun reg = <0x200 0x38>; 53*4882a593Smuzhiyun }; 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun mpc5200_pic: interrupt-controller@500 { 56*4882a593Smuzhiyun // 5200 interrupts are encoded into two levels; 57*4882a593Smuzhiyun interrupt-controller; 58*4882a593Smuzhiyun #interrupt-cells = <3>; 59*4882a593Smuzhiyun compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; 60*4882a593Smuzhiyun reg = <0x500 0x80>; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun gpt0: timer@600 { // General Purpose Timer 64*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 65*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 66*4882a593Smuzhiyun reg = <0x600 0x10>; 67*4882a593Smuzhiyun interrupts = <1 9 0>; 68*4882a593Smuzhiyun // add 'fsl,has-wdt' to enable watchdog 69*4882a593Smuzhiyun }; 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun gpt1: timer@610 { // General Purpose Timer 72*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 73*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 74*4882a593Smuzhiyun reg = <0x610 0x10>; 75*4882a593Smuzhiyun interrupts = <1 10 0>; 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun gpt2: timer@620 { // General Purpose Timer 79*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 80*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 81*4882a593Smuzhiyun reg = <0x620 0x10>; 82*4882a593Smuzhiyun interrupts = <1 11 0>; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun gpt3: timer@630 { // General Purpose Timer 86*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 87*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 88*4882a593Smuzhiyun reg = <0x630 0x10>; 89*4882a593Smuzhiyun interrupts = <1 12 0>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun gpt4: timer@640 { // General Purpose Timer 93*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 94*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 95*4882a593Smuzhiyun reg = <0x640 0x10>; 96*4882a593Smuzhiyun interrupts = <1 13 0>; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun gpt5: timer@650 { // General Purpose Timer 100*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 101*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 102*4882a593Smuzhiyun reg = <0x650 0x10>; 103*4882a593Smuzhiyun interrupts = <1 14 0>; 104*4882a593Smuzhiyun }; 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun gpt6: timer@660 { // General Purpose Timer 107*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 108*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 109*4882a593Smuzhiyun reg = <0x660 0x10>; 110*4882a593Smuzhiyun interrupts = <1 15 0>; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun gpt7: timer@670 { // General Purpose Timer 114*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 115*4882a593Smuzhiyun #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 116*4882a593Smuzhiyun reg = <0x670 0x10>; 117*4882a593Smuzhiyun interrupts = <1 16 0>; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun rtc@800 { // Real time clock 121*4882a593Smuzhiyun compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc"; 122*4882a593Smuzhiyun reg = <0x800 0x100>; 123*4882a593Smuzhiyun interrupts = <1 5 0 1 6 0>; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun can@900 { 127*4882a593Smuzhiyun compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; 128*4882a593Smuzhiyun interrupts = <2 17 0>; 129*4882a593Smuzhiyun reg = <0x900 0x80>; 130*4882a593Smuzhiyun }; 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun can@980 { 133*4882a593Smuzhiyun compatible = "fsl,mpc5200b-mscan","fsl,mpc5200-mscan"; 134*4882a593Smuzhiyun interrupts = <2 18 0>; 135*4882a593Smuzhiyun reg = <0x980 0x80>; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun gpio_simple: gpio@b00 { 139*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; 140*4882a593Smuzhiyun reg = <0xb00 0x40>; 141*4882a593Smuzhiyun interrupts = <1 7 0>; 142*4882a593Smuzhiyun gpio-controller; 143*4882a593Smuzhiyun #gpio-cells = <2>; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun gpio_wkup: gpio@c00 { 147*4882a593Smuzhiyun compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; 148*4882a593Smuzhiyun reg = <0xc00 0x40>; 149*4882a593Smuzhiyun interrupts = <1 8 0 0 3 0>; 150*4882a593Smuzhiyun gpio-controller; 151*4882a593Smuzhiyun #gpio-cells = <2>; 152*4882a593Smuzhiyun }; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun spi@f00 { 155*4882a593Smuzhiyun #address-cells = <1>; 156*4882a593Smuzhiyun #size-cells = <0>; 157*4882a593Smuzhiyun compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi"; 158*4882a593Smuzhiyun reg = <0xf00 0x20>; 159*4882a593Smuzhiyun interrupts = <2 13 0 2 14 0>; 160*4882a593Smuzhiyun }; 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun usb: usb@1000 { 163*4882a593Smuzhiyun compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be"; 164*4882a593Smuzhiyun reg = <0x1000 0xff>; 165*4882a593Smuzhiyun interrupts = <2 6 0>; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun dma-controller@1200 { 169*4882a593Smuzhiyun compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; 170*4882a593Smuzhiyun reg = <0x1200 0x80>; 171*4882a593Smuzhiyun interrupts = <3 0 0 3 1 0 3 2 0 3 3 0 172*4882a593Smuzhiyun 3 4 0 3 5 0 3 6 0 3 7 0 173*4882a593Smuzhiyun 3 8 0 3 9 0 3 10 0 3 11 0 174*4882a593Smuzhiyun 3 12 0 3 13 0 3 14 0 3 15 0>; 175*4882a593Smuzhiyun }; 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun xlb@1f00 { 178*4882a593Smuzhiyun compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; 179*4882a593Smuzhiyun reg = <0x1f00 0x100>; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun psc1: psc@2000 { // PSC1 183*4882a593Smuzhiyun compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; 184*4882a593Smuzhiyun reg = <0x2000 0x100>; 185*4882a593Smuzhiyun interrupts = <2 1 0>; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun psc2: psc@2200 { // PSC2 189*4882a593Smuzhiyun compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; 190*4882a593Smuzhiyun reg = <0x2200 0x100>; 191*4882a593Smuzhiyun interrupts = <2 2 0>; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun psc3: psc@2400 { // PSC3 195*4882a593Smuzhiyun compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; 196*4882a593Smuzhiyun reg = <0x2400 0x100>; 197*4882a593Smuzhiyun interrupts = <2 3 0>; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun psc4: psc@2600 { // PSC4 201*4882a593Smuzhiyun compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; 202*4882a593Smuzhiyun reg = <0x2600 0x100>; 203*4882a593Smuzhiyun interrupts = <2 11 0>; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun psc5: psc@2800 { // PSC5 207*4882a593Smuzhiyun compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; 208*4882a593Smuzhiyun reg = <0x2800 0x100>; 209*4882a593Smuzhiyun interrupts = <2 12 0>; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun psc6: psc@2c00 { // PSC6 213*4882a593Smuzhiyun compatible = "fsl,mpc5200b-psc","fsl,mpc5200-psc"; 214*4882a593Smuzhiyun reg = <0x2c00 0x100>; 215*4882a593Smuzhiyun interrupts = <2 4 0>; 216*4882a593Smuzhiyun }; 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun eth0: ethernet@3000 { 219*4882a593Smuzhiyun compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; 220*4882a593Smuzhiyun reg = <0x3000 0x400>; 221*4882a593Smuzhiyun local-mac-address = [ 00 00 00 00 00 00 ]; 222*4882a593Smuzhiyun interrupts = <2 5 0>; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun mdio@3000 { 226*4882a593Smuzhiyun #address-cells = <1>; 227*4882a593Smuzhiyun #size-cells = <0>; 228*4882a593Smuzhiyun compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; 229*4882a593Smuzhiyun reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts 230*4882a593Smuzhiyun interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co. 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun ata@3a00 { 234*4882a593Smuzhiyun compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; 235*4882a593Smuzhiyun reg = <0x3a00 0x100>; 236*4882a593Smuzhiyun interrupts = <2 7 0>; 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun sclpc@3c00 { 240*4882a593Smuzhiyun compatible = "fsl,mpc5200-lpbfifo"; 241*4882a593Smuzhiyun reg = <0x3c00 0x60>; 242*4882a593Smuzhiyun interrupts = <2 23 0>; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun i2c@3d00 { 246*4882a593Smuzhiyun #address-cells = <1>; 247*4882a593Smuzhiyun #size-cells = <0>; 248*4882a593Smuzhiyun compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 249*4882a593Smuzhiyun reg = <0x3d00 0x40>; 250*4882a593Smuzhiyun interrupts = <2 15 0>; 251*4882a593Smuzhiyun }; 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun i2c@3d40 { 254*4882a593Smuzhiyun #address-cells = <1>; 255*4882a593Smuzhiyun #size-cells = <0>; 256*4882a593Smuzhiyun compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 257*4882a593Smuzhiyun reg = <0x3d40 0x40>; 258*4882a593Smuzhiyun interrupts = <2 16 0>; 259*4882a593Smuzhiyun }; 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun sram@8000 { 262*4882a593Smuzhiyun compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; 263*4882a593Smuzhiyun reg = <0x8000 0x4000>; 264*4882a593Smuzhiyun }; 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun pci: pci@f0000d00 { 268*4882a593Smuzhiyun #interrupt-cells = <1>; 269*4882a593Smuzhiyun #size-cells = <2>; 270*4882a593Smuzhiyun #address-cells = <3>; 271*4882a593Smuzhiyun device_type = "pci"; 272*4882a593Smuzhiyun compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; 273*4882a593Smuzhiyun reg = <0xf0000d00 0x100>; 274*4882a593Smuzhiyun // interrupt-map-mask = need to add 275*4882a593Smuzhiyun // interrupt-map = need to add 276*4882a593Smuzhiyun clock-frequency = <0>; // From boot loader 277*4882a593Smuzhiyun interrupts = <2 8 0 2 9 0 2 10 0>; 278*4882a593Smuzhiyun bus-range = <0 0>; 279*4882a593Smuzhiyun // ranges = need to add 280*4882a593Smuzhiyun }; 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun localbus: localbus { 283*4882a593Smuzhiyun compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus"; 284*4882a593Smuzhiyun #address-cells = <2>; 285*4882a593Smuzhiyun #size-cells = <1>; 286*4882a593Smuzhiyun ranges = <0 0 0xfc000000 0x2000000>; 287*4882a593Smuzhiyun }; 288*4882a593Smuzhiyun}; 289