Home | History | Annotate | Line # | Download | only in loongson
      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