blob: ee3e2153dd13fb78894f25d9efd476075c9d86d8 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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 pm: reset-controller@1fe07000 {
56 compatible = "loongson,ls2k-pm";
57 reg = <0 0x1fe07000 0 0x422>;
58 };
59
60 liointc0: interrupt-controller@1fe11400 {
61 compatible = "loongson,liointc-2.0";
62 reg = <0 0x1fe11400 0 0x40>,
63 <0 0x1fe11040 0 0x8>,
64 <0 0x1fe11140 0 0x8>;
65 reg-names = "main", "isr0", "isr1";
66
67 interrupt-controller;
68 #interrupt-cells = <2>;
69
70 interrupt-parent = <&cpuintc>;
71 interrupts = <2>;
72 interrupt-names = "int0";
73
74 loongson,parent_int_map = <0xffffffff>, /* int0 */
75 <0x00000000>, /* int1 */
76 <0x00000000>, /* int2 */
77 <0x00000000>; /* int3 */
78 };
79
80 liointc1: interrupt-controller@1fe11440 {
81 compatible = "loongson,liointc-2.0";
82 reg = <0 0x1fe11440 0 0x40>,
83 <0 0x1fe11048 0 0x8>,
84 <0 0x1fe11148 0 0x8>;
85 reg-names = "main", "isr0", "isr1";
86
87 interrupt-controller;
88 #interrupt-cells = <2>;
89
90 interrupt-parent = <&cpuintc>;
91 interrupts = <3>;
92 interrupt-names = "int1";
93
94 loongson,parent_int_map = <0x00000000>, /* int0 */
95 <0xffffffff>, /* int1 */
96 <0x00000000>, /* int2 */
97 <0x00000000>; /* int3 */
98 };
99
100 rtc0: rtc@1fe07800 {
101 compatible = "loongson,ls2k1000-rtc";
102 reg = <0 0x1fe07800 0 0x78>;
103 interrupt-parent = <&liointc0>;
104 interrupts = <60 IRQ_TYPE_LEVEL_LOW>;
105 };
106
107 uart0: serial@1fe00000 {
108 compatible = "ns16550a";
109 reg = <0 0x1fe00000 0 0x8>;
110 clock-frequency = <125000000>;
111 interrupt-parent = <&liointc0>;
112 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
113 no-loopback-test;
114 };
115
116 pci@1a000000 {
117 compatible = "loongson,ls2k-pci";
118 device_type = "pci";
119 #address-cells = <3>;
120 #size-cells = <2>;
121 #interrupt-cells = <2>;
122
123 reg = <0 0x1a000000 0 0x02000000>,
124 <0xfe 0x00000000 0 0x20000000>;
125
126 ranges = <0x01000000 0x0 0x00000000 0x0 0x18000000 0x0 0x00010000>,
127 <0x02000000 0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>;
128
129 gmac@3,0 {
130 compatible = "pci0014,7a03.0",
131 "pci0014,7a03",
132 "pciclass0c0320",
133 "pciclass0c03";
134
135 reg = <0x1800 0x0 0x0 0x0 0x0>;
136 interrupts = <12 IRQ_TYPE_LEVEL_LOW>,
137 <13 IRQ_TYPE_LEVEL_LOW>;
138 interrupt-names = "macirq", "eth_lpi";
139 interrupt-parent = <&liointc0>;
140 phy-mode = "rgmii";
141 mdio {
142 #address-cells = <1>;
143 #size-cells = <0>;
144 compatible = "snps,dwmac-mdio";
145 phy0: ethernet-phy@0 {
146 reg = <0>;
147 };
148 };
149 };
150
151 gmac@3,1 {
152 compatible = "pci0014,7a03.0",
153 "pci0014,7a03",
154 "pciclass0c0320",
155 "pciclass0c03",
156 "loongson, pci-gmac";
157
158 reg = <0x1900 0x0 0x0 0x0 0x0>;
159 interrupts = <14 IRQ_TYPE_LEVEL_LOW>,
160 <15 IRQ_TYPE_LEVEL_LOW>;
161 interrupt-names = "macirq", "eth_lpi";
162 interrupt-parent = <&liointc0>;
163 phy-mode = "rgmii";
164 mdio {
165 #address-cells = <1>;
166 #size-cells = <0>;
167 compatible = "snps,dwmac-mdio";
168 phy1: ethernet-phy@1 {
169 reg = <0>;
170 };
171 };
172 };
173
174 ehci@4,1 {
175 compatible = "pci0014,7a14.0",
176 "pci0014,7a14",
177 "pciclass0c0320",
178 "pciclass0c03";
179
180 reg = <0x2100 0x0 0x0 0x0 0x0>;
181 interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
182 interrupt-parent = <&liointc1>;
183 };
184
185 ohci@4,2 {
186 compatible = "pci0014,7a24.0",
187 "pci0014,7a24",
188 "pciclass0c0310",
189 "pciclass0c03";
190
191 reg = <0x2200 0x0 0x0 0x0 0x0>;
192 interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
193 interrupt-parent = <&liointc1>;
194 };
195
196 sata@8,0 {
197 compatible = "pci0014,7a08.0",
198 "pci0014,7a08",
199 "pciclass010601",
200 "pciclass0106";
201
202 reg = <0x4000 0x0 0x0 0x0 0x0>;
203 interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
204 interrupt-parent = <&liointc0>;
205 };
206
207 pci_bridge@9,0 {
208 compatible = "pci0014,7a19.0",
209 "pci0014,7a19",
210 "pciclass060400",
211 "pciclass0604";
212
213 reg = <0x4800 0x0 0x0 0x0 0x0>;
214 #interrupt-cells = <1>;
215 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
216 interrupt-parent = <&liointc1>;
217 interrupt-map-mask = <0 0 0 0>;
218 interrupt-map = <0 0 0 0 &liointc1 0 IRQ_TYPE_LEVEL_LOW>;
219 external-facing;
220 };
221
222 pci_bridge@a,0 {
223 compatible = "pci0014,7a09.0",
224 "pci0014,7a09",
225 "pciclass060400",
226 "pciclass0604";
227
228 reg = <0x5000 0x0 0x0 0x0 0x0>;
229 #interrupt-cells = <1>;
230 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
231 interrupt-parent = <&liointc1>;
232 interrupt-map-mask = <0 0 0 0>;
233 interrupt-map = <0 0 0 0 &liointc1 1 IRQ_TYPE_LEVEL_LOW>;
234 external-facing;
235 };
236
237 pci_bridge@b,0 {
238 compatible = "pci0014,7a09.0",
239 "pci0014,7a09",
240 "pciclass060400",
241 "pciclass0604";
242
243 reg = <0x5800 0x0 0x0 0x0 0x0>;
244 #interrupt-cells = <1>;
245 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
246 interrupt-parent = <&liointc1>;
247 interrupt-map-mask = <0 0 0 0>;
248 interrupt-map = <0 0 0 0 &liointc1 2 IRQ_TYPE_LEVEL_LOW>;
249 external-facing;
250 };
251
252 pci_bridge@c,0 {
253 compatible = "pci0014,7a09.0",
254 "pci0014,7a09",
255 "pciclass060400",
256 "pciclass0604";
257
258 reg = <0x6000 0x0 0x0 0x0 0x0>;
259 #interrupt-cells = <1>;
260 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
261 interrupt-parent = <&liointc1>;
262 interrupt-map-mask = <0 0 0 0>;
263 interrupt-map = <0 0 0 0 &liointc1 3 IRQ_TYPE_LEVEL_LOW>;
264 external-facing;
265 };
266
267 pci_bridge@d,0 {
268 compatible = "pci0014,7a19.0",
269 "pci0014,7a19",
270 "pciclass060400",
271 "pciclass0604";
272
273 reg = <0x6800 0x0 0x0 0x0 0x0>;
274 #interrupt-cells = <1>;
275 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
276 interrupt-parent = <&liointc1>;
277 interrupt-map-mask = <0 0 0 0>;
278 interrupt-map = <0 0 0 0 &liointc1 4 IRQ_TYPE_LEVEL_LOW>;
279 external-facing;
280 };
281
282 pci_bridge@e,0 {
283 compatible = "pci0014,7a09.0",
284 "pci0014,7a09",
285 "pciclass060400",
286 "pciclass0604";
287
288 reg = <0x7000 0x0 0x0 0x0 0x0>;
289 #interrupt-cells = <1>;
290 interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
291 interrupt-parent = <&liointc1>;
292 interrupt-map-mask = <0 0 0 0>;
293 interrupt-map = <0 0 0 0 &liointc1 5 IRQ_TYPE_LEVEL_LOW>;
294 external-facing;
295 };
296
297 };
298 };
299};
300