// SPDX-License-Identifier: GPL-2.0 /dts-v1/; #include / { compatible = "loongson,loongson2k1000"; #address-cells = <2>; #size-cells = <2>; cpus { #address-cells = <1>; #size-cells = <0>; cpu0: cpu@0 { device_type = "cpu"; compatible = "loongson,gs264"; reg = <0x0>; #clock-cells = <1>; clocks = <&cpu_clk>; }; }; memory@200000 { compatible = "memory"; device_type = "memory"; reg = <0x00000000 0x00200000 0x00000000 0x0ee00000>, /* 238 MB at 2 MB */ <0x00000000 0x20000000 0x00000000 0x1f000000>, /* 496 MB at 512 MB */ <0x00000001 0x10000000 0x00000001 0xb0000000>; /* 6912 MB at 4352MB */ }; cpu_clk: cpu_clk { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <800000000>; }; cpuintc: interrupt-controller { #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; compatible = "mti,cpu-interrupt-controller"; }; package0: bus@10000000 { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges = <0 0x10000000 0 0x10000000 0 0x10000000 /* ioports */ 0 0x40000000 0 0x40000000 0 0x40000000 0xfe 0x00000000 0xfe 0x00000000 0 0x40000000>; pm: reset-controller@1fe07000 { compatible = "loongson,ls2k-pm"; reg = <0 0x1fe07000 0 0x422>; }; liointc0: interrupt-controller@1fe11400 { compatible = "loongson,liointc-2.0"; reg = <0 0x1fe11400 0 0x40>, <0 0x1fe11040 0 0x8>, <0 0x1fe11140 0 0x8>; reg-names = "main", "isr0", "isr1"; interrupt-controller; #interrupt-cells = <2>; interrupt-parent = <&cpuintc>; interrupts = <2>; interrupt-names = "int0"; loongson,parent_int_map = <0xffffffff>, /* int0 */ <0x00000000>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */ }; liointc1: interrupt-controller@1fe11440 { compatible = "loongson,liointc-2.0"; reg = <0 0x1fe11440 0 0x40>, <0 0x1fe11048 0 0x8>, <0 0x1fe11148 0 0x8>; reg-names = "main", "isr0", "isr1"; interrupt-controller; #interrupt-cells = <2>; interrupt-parent = <&cpuintc>; interrupts = <3>; interrupt-names = "int1"; loongson,parent_int_map = <0x00000000>, /* int0 */ <0xffffffff>, /* int1 */ <0x00000000>, /* int2 */ <0x00000000>; /* int3 */ }; rtc0: rtc@1fe07800 { compatible = "loongson,ls2k1000-rtc"; reg = <0 0x1fe07800 0 0x78>; interrupt-parent = <&liointc0>; interrupts = <60 IRQ_TYPE_LEVEL_LOW>; }; uart0: serial@1fe00000 { compatible = "ns16550a"; reg = <0 0x1fe00000 0 0x8>; clock-frequency = <125000000>; interrupt-parent = <&liointc0>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; no-loopback-test; }; pci@1a000000 { compatible = "loongson,ls2k-pci"; device_type = "pci"; #address-cells = <3>; #size-cells = <2>; #interrupt-cells = <2>; reg = <0 0x1a000000 0 0x02000000>, <0xfe 0x00000000 0 0x20000000>; ranges = <0x01000000 0x0 0x00000000 0x0 0x18000000 0x0 0x00010000>, <0x02000000 0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>; gmac@3,0 { compatible = "pci0014,7a03.0", "pci0014,7a03", "pciclass0c0320", "pciclass0c03"; reg = <0x1800 0x0 0x0 0x0 0x0>; interrupts = <12 IRQ_TYPE_LEVEL_LOW>, <13 IRQ_TYPE_LEVEL_LOW>; interrupt-names = "macirq", "eth_lpi"; interrupt-parent = <&liointc0>; phy-mode = "rgmii"; mdio { #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; phy0: ethernet-phy@0 { reg = <0>; }; }; }; gmac@3,1 { compatible = "pci0014,7a03.0", "pci0014,7a03", "pciclass0c0320", "pciclass0c03", "loongson, pci-gmac"; reg = <0x1900 0x0 0x0 0x0 0x0>; interrupts = <14 IRQ_TYPE_LEVEL_LOW>, <15 IRQ_TYPE_LEVEL_LOW>; interrupt-names = "macirq", "eth_lpi"; interrupt-parent = <&liointc0>; phy-mode = "rgmii"; mdio { #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; phy1: ethernet-phy@1 { reg = <0>; }; }; }; ehci@4,1 { compatible = "pci0014,7a14.0", "pci0014,7a14", "pciclass0c0320", "pciclass0c03"; reg = <0x2100 0x0 0x0 0x0 0x0>; interrupts = <18 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; }; ohci@4,2 { compatible = "pci0014,7a24.0", "pci0014,7a24", "pciclass0c0310", "pciclass0c03"; reg = <0x2200 0x0 0x0 0x0 0x0>; interrupts = <19 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; }; sata@8,0 { compatible = "pci0014,7a08.0", "pci0014,7a08", "pciclass010601", "pciclass0106"; reg = <0x4000 0x0 0x0 0x0 0x0>; interrupts = <19 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc0>; }; pci_bridge@9,0 { compatible = "pci0014,7a19.0", "pci0014,7a19", "pciclass060400", "pciclass0604"; reg = <0x4800 0x0 0x0 0x0 0x0>; #interrupt-cells = <1>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; interrupt-map-mask = <0 0 0 0>; interrupt-map = <0 0 0 0 &liointc1 0 IRQ_TYPE_LEVEL_LOW>; external-facing; }; pci_bridge@a,0 { compatible = "pci0014,7a09.0", "pci0014,7a09", "pciclass060400", "pciclass0604"; reg = <0x5000 0x0 0x0 0x0 0x0>; #interrupt-cells = <1>; interrupts = <1 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; interrupt-map-mask = <0 0 0 0>; interrupt-map = <0 0 0 0 &liointc1 1 IRQ_TYPE_LEVEL_LOW>; external-facing; }; pci_bridge@b,0 { compatible = "pci0014,7a09.0", "pci0014,7a09", "pciclass060400", "pciclass0604"; reg = <0x5800 0x0 0x0 0x0 0x0>; #interrupt-cells = <1>; interrupts = <2 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; interrupt-map-mask = <0 0 0 0>; interrupt-map = <0 0 0 0 &liointc1 2 IRQ_TYPE_LEVEL_LOW>; external-facing; }; pci_bridge@c,0 { compatible = "pci0014,7a09.0", "pci0014,7a09", "pciclass060400", "pciclass0604"; reg = <0x6000 0x0 0x0 0x0 0x0>; #interrupt-cells = <1>; interrupts = <3 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; interrupt-map-mask = <0 0 0 0>; interrupt-map = <0 0 0 0 &liointc1 3 IRQ_TYPE_LEVEL_LOW>; external-facing; }; pci_bridge@d,0 { compatible = "pci0014,7a19.0", "pci0014,7a19", "pciclass060400", "pciclass0604"; reg = <0x6800 0x0 0x0 0x0 0x0>; #interrupt-cells = <1>; interrupts = <4 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; interrupt-map-mask = <0 0 0 0>; interrupt-map = <0 0 0 0 &liointc1 4 IRQ_TYPE_LEVEL_LOW>; external-facing; }; pci_bridge@e,0 { compatible = "pci0014,7a09.0", "pci0014,7a09", "pciclass060400", "pciclass0604"; reg = <0x7000 0x0 0x0 0x0 0x0>; #interrupt-cells = <1>; interrupts = <5 IRQ_TYPE_LEVEL_LOW>; interrupt-parent = <&liointc1>; interrupt-map-mask = <0 0 0 0>; interrupt-map = <0 0 0 0 &liointc1 5 IRQ_TYPE_LEVEL_LOW>; external-facing; }; }; }; };