1// SPDX-License-Identifier: GPL-2.0 2 3/dts-v1/; 4 5#include <dt-bindings/interrupt-controller/irq.h> 6 7/ { 8 compatible = "loongson,loongson2k1000"; 9 10 #address-cells = <2>; 11 #size-cells = <2>; 12 13 cpus { 14 #address-cells = <1>; 15 #size-cells = <0>; 16 17 cpu0: cpu@0 { 18 device_type = "cpu"; 19 compatible = "loongson,gs264"; 20 reg = <0x0>; 21 #clock-cells = <1>; 22 clocks = <&cpu_clk>; 23 }; 24 }; 25 26 memory@200000 { 27 compatible = "memory"; 28 device_type = "memory"; 29 reg = <0x00000000 0x00200000 0x00000000 0x0ee00000>, /* 238 MB at 2 MB */ 30 <0x00000000 0x20000000 0x00000000 0x1f000000>, /* 496 MB at 512 MB */ 31 <0x00000001 0x10000000 0x00000001 0xb0000000>; /* 6912 MB at 4352MB */ 32 }; 33 34 cpu_clk: cpu_clk { 35 #clock-cells = <0>; 36 compatible = "fixed-clock"; 37 clock-frequency = <800000000>; 38 }; 39 40 cpuintc: interrupt-controller { 41 #address-cells = <0>; 42 #interrupt-cells = <1>; 43 interrupt-controller; 44 compatible = "mti,cpu-interrupt-controller"; 45 }; 46 47 package0: bus@10000000 { 48 compatible = "simple-bus"; 49 #address-cells = <2>; 50 #size-cells = <2>; 51 ranges = <0 0x10000000 0 0x10000000 0 0x10000000 /* ioports */ 52 0 0x40000000 0 0x40000000 0 0x40000000 53 0xfe 0x00000000 0xfe 0x00000000 0 0x40000000>; 54 55 liointc0: interrupt-controller@1fe11400 { 56 compatible = "loongson,liointc-2.0"; 57 reg = <0 0x1fe11400 0 0x40>, 58 <0 0x1fe11040 0 0x8>, 59 <0 0x1fe11140 0 0x8>; 60 reg-names = "main", "isr0", "isr1"; 61 62 interrupt-controller; 63 #interrupt-cells = <2>; 64 65 interrupt-parent = <&cpuintc>; 66 interrupts = <2>; 67 interrupt-names = "int0"; 68 69 loongson,parent_int_map = <0xffffffff>, /* int0 */ 70 <0x00000000>, /* int1 */ 71 <0x00000000>, /* int2 */ 72 <0x00000000>; /* int3 */ 73 }; 74 75 liointc1: interrupt-controller@1fe11440 { 76 compatible = "loongson,liointc-2.0"; 77 reg = <0 0x1fe11440 0 0x40>, 78 <0 0x1fe11048 0 0x8>, 79 <0 0x1fe11148 0 0x8>; 80 reg-names = "main", "isr0", "isr1"; 81 82 interrupt-controller; 83 #interrupt-cells = <2>; 84 85 interrupt-parent = <&cpuintc>; 86 interrupts = <3>; 87 interrupt-names = "int1"; 88 89 loongson,parent_int_map = <0x00000000>, /* int0 */ 90 <0xffffffff>, /* int1 */ 91 <0x00000000>, /* int2 */ 92 <0x00000000>; /* int3 */ 93 }; 94 95 uart0: serial@1fe00000 { 96 compatible = "ns16550a"; 97 reg = <0 0x1fe00000 0 0x8>; 98 clock-frequency = <125000000>; 99 interrupt-parent = <&liointc0>; 100 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 101 no-loopback-test; 102 }; 103 104 pci@1a000000 { 105 compatible = "loongson,ls2k-pci"; 106 device_type = "pci"; 107 #address-cells = <3>; 108 #size-cells = <2>; 109 #interrupt-cells = <2>; 110 111 reg = <0 0x1a000000 0 0x02000000>, 112 <0xfe 0x00000000 0 0x20000000>; 113 114 ranges = <0x01000000 0x0 0x00000000 0x0 0x18000000 0x0 0x00010000>, 115 <0x02000000 0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>; 116 117 gmac@3,0 { 118 compatible = "pci0014,7a03.0", 119 "pci0014,7a03", 120 "pciclass0c0320", 121 "pciclass0c03", 122 "loongson, pci-gmac"; 123 124 reg = <0x1800 0x0 0x0 0x0 0x0>; 125 interrupts = <12 IRQ_TYPE_LEVEL_LOW>, 126 <13 IRQ_TYPE_LEVEL_LOW>; 127 interrupt-names = "macirq", "eth_lpi"; 128 interrupt-parent = <&liointc0>; 129 phy-mode = "rgmii"; 130 mdio { 131 #address-cells = <1>; 132 #size-cells = <0>; 133 compatible = "snps,dwmac-mdio"; 134 phy0: ethernet-phy@0 { 135 reg = <0>; 136 }; 137 }; 138 }; 139 140 gmac@3,1 { 141 compatible = "pci0014,7a03.0", 142 "pci0014,7a03", 143 "pciclass0c0320", 144 "pciclass0c03", 145 "loongson, pci-gmac"; 146 147 reg = <0x1900 0x0 0x0 0x0 0x0>; 148 interrupts = <14 IRQ_TYPE_LEVEL_LOW>, 149 <15 IRQ_TYPE_LEVEL_LOW>; 150 interrupt-names = "macirq", "eth_lpi"; 151 interrupt-parent = <&liointc0>; 152 phy-mode = "rgmii"; 153 mdio { 154 #address-cells = <1>; 155 #size-cells = <0>; 156 compatible = "snps,dwmac-mdio"; 157 phy1: ethernet-phy@1 { 158 reg = <0>; 159 }; 160 }; 161 }; 162 163 ehci@4,1 { 164 compatible = "pci0014,7a14.0", 165 "pci0014,7a14", 166 "pciclass0c0320", 167 "pciclass0c03"; 168 169 reg = <0x2100 0x0 0x0 0x0 0x0>; 170 interrupts = <18 IRQ_TYPE_LEVEL_LOW>; 171 interrupt-parent = <&liointc1>; 172 }; 173 174 ohci@4,2 { 175 compatible = "pci0014,7a24.0", 176 "pci0014,7a24", 177 "pciclass0c0310", 178 "pciclass0c03"; 179 180 reg = <0x2200 0x0 0x0 0x0 0x0>; 181 interrupts = <19 IRQ_TYPE_LEVEL_LOW>; 182 interrupt-parent = <&liointc1>; 183 }; 184 185 sata@8,0 { 186 compatible = "pci0014,7a08.0", 187 "pci0014,7a08", 188 "pciclass010601", 189 "pciclass0106"; 190 191 reg = <0x4000 0x0 0x0 0x0 0x0>; 192 interrupts = <19 IRQ_TYPE_LEVEL_LOW>; 193 interrupt-parent = <&liointc0>; 194 }; 195 196 pci_bridge@9,0 { 197 compatible = "pci0014,7a19.0", 198 "pci0014,7a19", 199 "pciclass060400", 200 "pciclass0604"; 201 202 reg = <0x4800 0x0 0x0 0x0 0x0>; 203 #interrupt-cells = <1>; 204 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 205 interrupt-parent = <&liointc1>; 206 interrupt-map-mask = <0 0 0 0>; 207 interrupt-map = <0 0 0 0 &liointc1 0 IRQ_TYPE_LEVEL_LOW>; 208 external-facing; 209 }; 210 211 pci_bridge@a,0 { 212 compatible = "pci0014,7a09.0", 213 "pci0014,7a09", 214 "pciclass060400", 215 "pciclass0604"; 216 217 reg = <0x5000 0x0 0x0 0x0 0x0>; 218 #interrupt-cells = <1>; 219 interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 220 interrupt-parent = <&liointc1>; 221 interrupt-map-mask = <0 0 0 0>; 222 interrupt-map = <0 0 0 0 &liointc1 1 IRQ_TYPE_LEVEL_LOW>; 223 external-facing; 224 }; 225 226 pci_bridge@b,0 { 227 compatible = "pci0014,7a09.0", 228 "pci0014,7a09", 229 "pciclass060400", 230 "pciclass0604"; 231 232 reg = <0x5800 0x0 0x0 0x0 0x0>; 233 #interrupt-cells = <1>; 234 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 235 interrupt-parent = <&liointc1>; 236 interrupt-map-mask = <0 0 0 0>; 237 interrupt-map = <0 0 0 0 &liointc1 2 IRQ_TYPE_LEVEL_LOW>; 238 external-facing; 239 }; 240 241 pci_bridge@c,0 { 242 compatible = "pci0014,7a09.0", 243 "pci0014,7a09", 244 "pciclass060400", 245 "pciclass0604"; 246 247 reg = <0x6000 0x0 0x0 0x0 0x0>; 248 #interrupt-cells = <1>; 249 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 250 interrupt-parent = <&liointc1>; 251 interrupt-map-mask = <0 0 0 0>; 252 interrupt-map = <0 0 0 0 &liointc1 3 IRQ_TYPE_LEVEL_LOW>; 253 external-facing; 254 }; 255 256 pci_bridge@d,0 { 257 compatible = "pci0014,7a19.0", 258 "pci0014,7a19", 259 "pciclass060400", 260 "pciclass0604"; 261 262 reg = <0x6800 0x0 0x0 0x0 0x0>; 263 #interrupt-cells = <1>; 264 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 265 interrupt-parent = <&liointc1>; 266 interrupt-map-mask = <0 0 0 0>; 267 interrupt-map = <0 0 0 0 &liointc1 4 IRQ_TYPE_LEVEL_LOW>; 268 external-facing; 269 }; 270 271 pci_bridge@e,0 { 272 compatible = "pci0014,7a09.0", 273 "pci0014,7a09", 274 "pciclass060400", 275 "pciclass0604"; 276 277 reg = <0x7000 0x0 0x0 0x0 0x0>; 278 #interrupt-cells = <1>; 279 interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 280 interrupt-parent = <&liointc1>; 281 interrupt-map-mask = <0 0 0 0>; 282 interrupt-map = <0 0 0 0 &liointc1 5 IRQ_TYPE_LEVEL_LOW>; 283 external-facing; 284 }; 285 286 }; 287 }; 288}; 289 290