1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/dts-v1/; 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun/memreserve/ 0x00000000 0x00001000; // reserved 5*4882a593Smuzhiyun/memreserve/ 0x00001000 0x000ef000; // ROM data 6*4882a593Smuzhiyun/memreserve/ 0x000f0000 0x004cc000; // reserved 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/mips-gic.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/ { 11*4882a593Smuzhiyun #address-cells = <1>; 12*4882a593Smuzhiyun #size-cells = <1>; 13*4882a593Smuzhiyun compatible = "mti,sead-3"; 14*4882a593Smuzhiyun model = "MIPS SEAD-3"; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun chosen { 17*4882a593Smuzhiyun stdout-path = "serial1:115200"; 18*4882a593Smuzhiyun }; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun aliases { 21*4882a593Smuzhiyun serial0 = &uart0; 22*4882a593Smuzhiyun serial1 = &uart1; 23*4882a593Smuzhiyun }; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun cpus { 26*4882a593Smuzhiyun cpu@0 { 27*4882a593Smuzhiyun compatible = "mti,mips14KEc", "mti,mips14Kc"; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun memory { 32*4882a593Smuzhiyun device_type = "memory"; 33*4882a593Smuzhiyun reg = <0x0 0x08000000>; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun cpu_intc: interrupt-controller { 37*4882a593Smuzhiyun compatible = "mti,cpu-interrupt-controller"; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun interrupt-controller; 40*4882a593Smuzhiyun #interrupt-cells = <1>; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun gic: interrupt-controller@1b1c0000 { 44*4882a593Smuzhiyun compatible = "mti,gic"; 45*4882a593Smuzhiyun reg = <0x1b1c0000 0x20000>; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun interrupt-controller; 48*4882a593Smuzhiyun #interrupt-cells = <3>; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun /* 51*4882a593Smuzhiyun * Declare the interrupt-parent even though the mti,gic 52*4882a593Smuzhiyun * binding doesn't require it, such that the kernel can 53*4882a593Smuzhiyun * figure out that cpu_intc is the root interrupt 54*4882a593Smuzhiyun * controller & should be probed first. 55*4882a593Smuzhiyun */ 56*4882a593Smuzhiyun interrupt-parent = <&cpu_intc>; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun ehci@1b200000 { 60*4882a593Smuzhiyun compatible = "generic-ehci"; 61*4882a593Smuzhiyun reg = <0x1b200000 0x1000>; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun interrupt-parent = <&gic>; 64*4882a593Smuzhiyun interrupts = <GIC_SHARED 0 IRQ_TYPE_LEVEL_HIGH>; /* GIC 0 or CPU 6 */ 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun has-transaction-translator; 67*4882a593Smuzhiyun }; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun flash@1c000000 { 70*4882a593Smuzhiyun compatible = "intel,28f128j3", "cfi-flash"; 71*4882a593Smuzhiyun reg = <0x1c000000 0x2000000>; 72*4882a593Smuzhiyun #address-cells = <1>; 73*4882a593Smuzhiyun #size-cells = <1>; 74*4882a593Smuzhiyun bank-width = <4>; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun partitions { 77*4882a593Smuzhiyun compatible = "fixed-partitions"; 78*4882a593Smuzhiyun #address-cells = <1>; 79*4882a593Smuzhiyun #size-cells = <1>; 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun user-fs@0 { 82*4882a593Smuzhiyun label = "User FS"; 83*4882a593Smuzhiyun reg = <0x0 0x1fc0000>; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun board-config@3e0000 { 87*4882a593Smuzhiyun label = "Board Config"; 88*4882a593Smuzhiyun reg = <0x1fc0000 0x40000>; 89*4882a593Smuzhiyun }; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun fpga_regs: system-controller@1f000000 { 94*4882a593Smuzhiyun compatible = "mti,sead3-fpga", "syscon", "simple-mfd"; 95*4882a593Smuzhiyun reg = <0x1f000000 0x200>; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun reboot { 98*4882a593Smuzhiyun compatible = "syscon-reboot"; 99*4882a593Smuzhiyun regmap = <&fpga_regs>; 100*4882a593Smuzhiyun offset = <0x50>; 101*4882a593Smuzhiyun mask = <0x4d>; 102*4882a593Smuzhiyun }; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun poweroff { 105*4882a593Smuzhiyun compatible = "restart-poweroff"; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun system-controller@1f000200 { 110*4882a593Smuzhiyun compatible = "mti,sead3-cpld", "syscon", "simple-mfd"; 111*4882a593Smuzhiyun reg = <0x1f000200 0x300>; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun led@10.0 { 114*4882a593Smuzhiyun compatible = "register-bit-led"; 115*4882a593Smuzhiyun offset = <0x10>; 116*4882a593Smuzhiyun mask = <0x1>; 117*4882a593Smuzhiyun label = "pled0"; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun led@10.1 { 120*4882a593Smuzhiyun compatible = "register-bit-led"; 121*4882a593Smuzhiyun offset = <0x10>; 122*4882a593Smuzhiyun mask = <0x2>; 123*4882a593Smuzhiyun label = "pled1"; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun led@10.2 { 126*4882a593Smuzhiyun compatible = "register-bit-led"; 127*4882a593Smuzhiyun offset = <0x10>; 128*4882a593Smuzhiyun mask = <0x4>; 129*4882a593Smuzhiyun label = "pled2"; 130*4882a593Smuzhiyun }; 131*4882a593Smuzhiyun led@10.3 { 132*4882a593Smuzhiyun compatible = "register-bit-led"; 133*4882a593Smuzhiyun offset = <0x10>; 134*4882a593Smuzhiyun mask = <0x8>; 135*4882a593Smuzhiyun label = "pled3"; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun led@10.4 { 138*4882a593Smuzhiyun compatible = "register-bit-led"; 139*4882a593Smuzhiyun offset = <0x10>; 140*4882a593Smuzhiyun mask = <0x10>; 141*4882a593Smuzhiyun label = "pled4"; 142*4882a593Smuzhiyun }; 143*4882a593Smuzhiyun led@10.5 { 144*4882a593Smuzhiyun compatible = "register-bit-led"; 145*4882a593Smuzhiyun offset = <0x10>; 146*4882a593Smuzhiyun mask = <0x20>; 147*4882a593Smuzhiyun label = "pled5"; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun led@10.6 { 150*4882a593Smuzhiyun compatible = "register-bit-led"; 151*4882a593Smuzhiyun offset = <0x10>; 152*4882a593Smuzhiyun mask = <0x40>; 153*4882a593Smuzhiyun label = "pled6"; 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun led@10.7 { 156*4882a593Smuzhiyun compatible = "register-bit-led"; 157*4882a593Smuzhiyun offset = <0x10>; 158*4882a593Smuzhiyun mask = <0x80>; 159*4882a593Smuzhiyun label = "pled7"; 160*4882a593Smuzhiyun }; 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun led@18.0 { 163*4882a593Smuzhiyun compatible = "register-bit-led"; 164*4882a593Smuzhiyun offset = <0x18>; 165*4882a593Smuzhiyun mask = <0x1>; 166*4882a593Smuzhiyun label = "fled0"; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun led@18.1 { 169*4882a593Smuzhiyun compatible = "register-bit-led"; 170*4882a593Smuzhiyun offset = <0x18>; 171*4882a593Smuzhiyun mask = <0x2>; 172*4882a593Smuzhiyun label = "fled1"; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun led@18.2 { 175*4882a593Smuzhiyun compatible = "register-bit-led"; 176*4882a593Smuzhiyun offset = <0x18>; 177*4882a593Smuzhiyun mask = <0x4>; 178*4882a593Smuzhiyun label = "fled2"; 179*4882a593Smuzhiyun }; 180*4882a593Smuzhiyun led@18.3 { 181*4882a593Smuzhiyun compatible = "register-bit-led"; 182*4882a593Smuzhiyun offset = <0x18>; 183*4882a593Smuzhiyun mask = <0x8>; 184*4882a593Smuzhiyun label = "fled3"; 185*4882a593Smuzhiyun }; 186*4882a593Smuzhiyun led@18.4 { 187*4882a593Smuzhiyun compatible = "register-bit-led"; 188*4882a593Smuzhiyun offset = <0x18>; 189*4882a593Smuzhiyun mask = <0x10>; 190*4882a593Smuzhiyun label = "fled4"; 191*4882a593Smuzhiyun }; 192*4882a593Smuzhiyun led@18.5 { 193*4882a593Smuzhiyun compatible = "register-bit-led"; 194*4882a593Smuzhiyun offset = <0x18>; 195*4882a593Smuzhiyun mask = <0x20>; 196*4882a593Smuzhiyun label = "fled5"; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun led@18.6 { 199*4882a593Smuzhiyun compatible = "register-bit-led"; 200*4882a593Smuzhiyun offset = <0x18>; 201*4882a593Smuzhiyun mask = <0x40>; 202*4882a593Smuzhiyun label = "fled6"; 203*4882a593Smuzhiyun }; 204*4882a593Smuzhiyun led@18.7 { 205*4882a593Smuzhiyun compatible = "register-bit-led"; 206*4882a593Smuzhiyun offset = <0x18>; 207*4882a593Smuzhiyun mask = <0x80>; 208*4882a593Smuzhiyun label = "fled7"; 209*4882a593Smuzhiyun }; 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun lcd@200 { 212*4882a593Smuzhiyun compatible = "mti,sead3-lcd"; 213*4882a593Smuzhiyun offset = <0x200>; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun }; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun /* UART connected to FTDI & miniUSB socket */ 218*4882a593Smuzhiyun uart0: uart@1f000900 { 219*4882a593Smuzhiyun compatible = "ns16550a"; 220*4882a593Smuzhiyun reg = <0x1f000900 0x20>; 221*4882a593Smuzhiyun reg-io-width = <4>; 222*4882a593Smuzhiyun reg-shift = <2>; 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun clock-frequency = <14745600>; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun interrupt-parent = <&gic>; 227*4882a593Smuzhiyun interrupts = <GIC_SHARED 3 IRQ_TYPE_LEVEL_HIGH>; /* GIC 3 or CPU 4 */ 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun no-loopback-test; 230*4882a593Smuzhiyun }; 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun /* UART connected to RS232 socket */ 233*4882a593Smuzhiyun uart1: uart@1f000800 { 234*4882a593Smuzhiyun compatible = "ns16550a"; 235*4882a593Smuzhiyun reg = <0x1f000800 0x20>; 236*4882a593Smuzhiyun reg-io-width = <4>; 237*4882a593Smuzhiyun reg-shift = <2>; 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun clock-frequency = <14745600>; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun interrupt-parent = <&gic>; 242*4882a593Smuzhiyun interrupts = <GIC_SHARED 2 IRQ_TYPE_LEVEL_HIGH>; /* GIC 2 or CPU 4 */ 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun no-loopback-test; 245*4882a593Smuzhiyun }; 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun eth@1f010000 { 248*4882a593Smuzhiyun compatible = "smsc,lan9115"; 249*4882a593Smuzhiyun reg = <0x1f010000 0x10000>; 250*4882a593Smuzhiyun reg-io-width = <4>; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun interrupt-parent = <&gic>; 253*4882a593Smuzhiyun interrupts = <GIC_SHARED 0 IRQ_TYPE_LEVEL_HIGH>; /* GIC 0 or CPU 6 */ 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun phy-mode = "mii"; 256*4882a593Smuzhiyun smsc,irq-push-pull; 257*4882a593Smuzhiyun smsc,save-mac-address; 258*4882a593Smuzhiyun }; 259*4882a593Smuzhiyun}; 260