blob: 2cdc683d49bfc8d6b5566280ac8c1d3434b66026 [file] [log] [blame]
Yanhong Wang96c3eb722023-03-29 11:42:21 +08001// SPDX-License-Identifier: GPL-2.0 OR MIT
2/*
3 * Copyright (C) 2022 StarFive Technology Co., Ltd.
4 */
5
6/dts-v1/;
7#include <dt-bindings/clock/starfive,jh7110-crg.h>
8#include <dt-bindings/reset/starfive,jh7110-crg.h>
9
10/ {
11 compatible = "starfive,jh7110";
12 #address-cells = <2>;
13 #size-cells = <2>;
14
15 cpus {
16 #address-cells = <1>;
17 #size-cells = <0>;
18
19 S7_0: cpu@0 {
20 compatible = "sifive,s7", "riscv";
21 reg = <0>;
22 device_type = "cpu";
23 i-cache-block-size = <64>;
24 i-cache-sets = <64>;
25 i-cache-size = <16384>;
26 next-level-cache = <&ccache>;
27 riscv,isa = "rv64imac_zba_zbb";
28 status = "disabled";
29
30 cpu0_intc: interrupt-controller {
31 compatible = "riscv,cpu-intc";
32 interrupt-controller;
33 #interrupt-cells = <1>;
34 };
35 };
36
37 U74_1: cpu@1 {
38 compatible = "sifive,u74-mc", "riscv";
39 reg = <1>;
40 d-cache-block-size = <64>;
41 d-cache-sets = <64>;
42 d-cache-size = <32768>;
43 d-tlb-sets = <1>;
44 d-tlb-size = <40>;
45 device_type = "cpu";
46 i-cache-block-size = <64>;
47 i-cache-sets = <64>;
48 i-cache-size = <32768>;
49 i-tlb-sets = <1>;
50 i-tlb-size = <40>;
51 mmu-type = "riscv,sv39";
52 next-level-cache = <&ccache>;
53 riscv,isa = "rv64imafdc_zba_zbb";
54 tlb-split;
55
56 cpu1_intc: interrupt-controller {
57 compatible = "riscv,cpu-intc";
58 interrupt-controller;
59 #interrupt-cells = <1>;
60 };
61 };
62
63 U74_2: cpu@2 {
64 compatible = "sifive,u74-mc", "riscv";
65 reg = <2>;
66 d-cache-block-size = <64>;
67 d-cache-sets = <64>;
68 d-cache-size = <32768>;
69 d-tlb-sets = <1>;
70 d-tlb-size = <40>;
71 device_type = "cpu";
72 i-cache-block-size = <64>;
73 i-cache-sets = <64>;
74 i-cache-size = <32768>;
75 i-tlb-sets = <1>;
76 i-tlb-size = <40>;
77 mmu-type = "riscv,sv39";
78 next-level-cache = <&ccache>;
79 riscv,isa = "rv64imafdc_zba_zbb";
80 tlb-split;
81
82 cpu2_intc: interrupt-controller {
83 compatible = "riscv,cpu-intc";
84 interrupt-controller;
85 #interrupt-cells = <1>;
86 };
87 };
88
89 U74_3: cpu@3 {
90 compatible = "sifive,u74-mc", "riscv";
91 reg = <3>;
92 d-cache-block-size = <64>;
93 d-cache-sets = <64>;
94 d-cache-size = <32768>;
95 d-tlb-sets = <1>;
96 d-tlb-size = <40>;
97 device_type = "cpu";
98 i-cache-block-size = <64>;
99 i-cache-sets = <64>;
100 i-cache-size = <32768>;
101 i-tlb-sets = <1>;
102 i-tlb-size = <40>;
103 mmu-type = "riscv,sv39";
104 next-level-cache = <&ccache>;
105 riscv,isa = "rv64imafdc_zba_zbb";
106 tlb-split;
107
108 cpu3_intc: interrupt-controller {
109 compatible = "riscv,cpu-intc";
110 interrupt-controller;
111 #interrupt-cells = <1>;
112 };
113 };
114
115 U74_4: cpu@4 {
116 compatible = "sifive,u74-mc", "riscv";
117 reg = <4>;
118 d-cache-block-size = <64>;
119 d-cache-sets = <64>;
120 d-cache-size = <32768>;
121 d-tlb-sets = <1>;
122 d-tlb-size = <40>;
123 device_type = "cpu";
124 i-cache-block-size = <64>;
125 i-cache-sets = <64>;
126 i-cache-size = <32768>;
127 i-tlb-sets = <1>;
128 i-tlb-size = <40>;
129 mmu-type = "riscv,sv39";
130 next-level-cache = <&ccache>;
131 riscv,isa = "rv64imafdc_zba_zbb";
132 tlb-split;
133
134 cpu4_intc: interrupt-controller {
135 compatible = "riscv,cpu-intc";
136 interrupt-controller;
137 #interrupt-cells = <1>;
138 };
139 };
140
141 cpu-map {
142 cluster0 {
143 core0 {
144 cpu = <&S7_0>;
145 };
146
147 core1 {
148 cpu = <&U74_1>;
149 };
150
151 core2 {
152 cpu = <&U74_2>;
153 };
154
155 core3 {
156 cpu = <&U74_3>;
157 };
158
159 core4 {
160 cpu = <&U74_4>;
161 };
162 };
163 };
164 };
165
Torsten Duwe42fa87e2023-08-14 18:05:33 +0200166 timer {
167 compatible = "riscv,timer";
168 interrupts-extended = <&cpu0_intc 5>,
169 <&cpu1_intc 5>,
170 <&cpu2_intc 5>,
171 <&cpu3_intc 5>,
172 <&cpu4_intc 5>;
173 };
174
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800175 osc: oscillator {
176 compatible = "fixed-clock";
177 clock-output-names = "osc";
178 #clock-cells = <0>;
179 };
180
181 rtc_osc: rtc-oscillator {
182 compatible = "fixed-clock";
183 clock-output-names = "rtc_osc";
184 #clock-cells = <0>;
185 };
186
187 gmac0_rmii_refin: gmac0-rmii-refin-clock {
188 compatible = "fixed-clock";
189 clock-output-names = "gmac0_rmii_refin";
190 #clock-cells = <0>;
191 };
192
193 gmac0_rgmii_rxin: gmac0-rgmii-rxin-clock {
194 compatible = "fixed-clock";
195 clock-output-names = "gmac0_rgmii_rxin";
196 #clock-cells = <0>;
197 };
198
199 gmac1_rmii_refin: gmac1-rmii-refin-clock {
200 compatible = "fixed-clock";
201 clock-output-names = "gmac1_rmii_refin";
202 #clock-cells = <0>;
203 };
204
205 gmac1_rgmii_rxin: gmac1-rgmii-rxin-clock {
206 compatible = "fixed-clock";
207 clock-output-names = "gmac1_rgmii_rxin";
208 #clock-cells = <0>;
209 };
210
211 i2stx_bclk_ext: i2stx-bclk-ext-clock {
212 compatible = "fixed-clock";
213 clock-output-names = "i2stx_bclk_ext";
214 #clock-cells = <0>;
215 };
216
217 i2stx_lrck_ext: i2stx-lrck-ext-clock {
218 compatible = "fixed-clock";
219 clock-output-names = "i2stx_lrck_ext";
220 #clock-cells = <0>;
221 };
222
223 i2srx_bclk_ext: i2srx-bclk-ext-clock {
224 compatible = "fixed-clock";
225 clock-output-names = "i2srx_bclk_ext";
226 #clock-cells = <0>;
227 };
228
229 i2srx_lrck_ext: i2srx-lrck-ext-clock {
230 compatible = "fixed-clock";
231 clock-output-names = "i2srx_lrck_ext";
232 #clock-cells = <0>;
233 };
234
235 tdm_ext: tdm-ext-clock {
236 compatible = "fixed-clock";
237 clock-output-names = "tdm_ext";
238 #clock-cells = <0>;
239 };
240
241 mclk_ext: mclk-ext-clock {
242 compatible = "fixed-clock";
243 clock-output-names = "mclk_ext";
244 #clock-cells = <0>;
245 };
246
Yanhong Wang7f63bd92023-06-15 17:36:44 +0800247 stmmac_axi_setup: stmmac-axi-config {
248 snps,lpi_en;
249 snps,wr_osr_lmt = <4>;
250 snps,rd_osr_lmt = <4>;
251 snps,blen = <256 128 64 32 0 0 0>;
252 };
253
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800254 soc {
255 compatible = "simple-bus";
256 interrupt-parent = <&plic>;
257 #address-cells = <2>;
258 #size-cells = <2>;
259 ranges;
260
261 clint: timer@2000000 {
262 compatible = "starfive,jh7110-clint", "sifive,clint0";
263 reg = <0x0 0x2000000 0x0 0x10000>;
264 interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
265 <&cpu1_intc 3>, <&cpu1_intc 7>,
266 <&cpu2_intc 3>, <&cpu2_intc 7>,
267 <&cpu3_intc 3>, <&cpu3_intc 7>,
268 <&cpu4_intc 3>, <&cpu4_intc 7>;
269 };
270
271 plic: interrupt-controller@c000000 {
272 compatible = "starfive,jh7110-plic", "sifive,plic-1.0.0";
273 reg = <0x0 0xc000000 0x0 0x4000000>;
274 interrupts-extended = <&cpu0_intc 11>,
275 <&cpu1_intc 11>, <&cpu1_intc 9>,
276 <&cpu2_intc 11>, <&cpu2_intc 9>,
277 <&cpu3_intc 11>, <&cpu3_intc 9>,
278 <&cpu4_intc 11>, <&cpu4_intc 9>;
279 interrupt-controller;
280 #interrupt-cells = <1>;
281 #address-cells = <0>;
282 riscv,ndev = <136>;
283 };
284
285 ccache: cache-controller@2010000 {
286 compatible = "starfive,jh7110-ccache", "sifive,ccache0", "cache";
287 reg = <0x0 0x2010000 0x0 0x4000>;
288 interrupts = <1>, <3>, <4>, <2>;
289 cache-block-size = <64>;
290 cache-level = <2>;
291 cache-sets = <2048>;
292 cache-size = <2097152>;
293 cache-unified;
294 };
295
296 uart0: serial@10000000 {
297 compatible = "snps,dw-apb-uart";
298 reg = <0x0 0x10000000 0x0 0x10000>;
299 clocks = <&syscrg JH7110_SYSCLK_UART0_CORE>,
300 <&syscrg JH7110_SYSCLK_UART0_APB>;
301 clock-names = "baudclk", "apb_pclk";
302 resets = <&syscrg JH7110_SYSRST_UART0_APB>,
303 <&syscrg JH7110_SYSRST_UART0_CORE>;
304 interrupts = <32>;
305 reg-io-width = <4>;
306 reg-shift = <2>;
307 status = "disabled";
308 };
309
310 uart1: serial@10010000 {
311 compatible = "snps,dw-apb-uart";
312 reg = <0x0 0x10010000 0x0 0x10000>;
313 clocks = <&syscrg JH7110_SYSCLK_UART1_CORE>,
314 <&syscrg JH7110_SYSCLK_UART1_APB>;
315 clock-names = "baudclk", "apb_pclk";
316 resets = <&syscrg JH7110_SYSRST_UART1_APB>,
317 <&syscrg JH7110_SYSRST_UART1_CORE>;
318 interrupts = <33>;
319 reg-io-width = <4>;
320 reg-shift = <2>;
321 status = "disabled";
322 };
323
324 uart2: serial@10020000 {
325 compatible = "snps,dw-apb-uart";
326 reg = <0x0 0x10020000 0x0 0x10000>;
327 clocks = <&syscrg JH7110_SYSCLK_UART2_CORE>,
328 <&syscrg JH7110_SYSCLK_UART2_APB>;
329 clock-names = "baudclk", "apb_pclk";
330 resets = <&syscrg JH7110_SYSRST_UART2_APB>,
331 <&syscrg JH7110_SYSRST_UART2_CORE>;
332 interrupts = <34>;
333 reg-io-width = <4>;
334 reg-shift = <2>;
335 status = "disabled";
336 };
337
338 i2c0: i2c@10030000 {
339 compatible = "snps,designware-i2c";
340 reg = <0x0 0x10030000 0x0 0x10000>;
341 clocks = <&syscrg JH7110_SYSCLK_I2C0_APB>;
342 clock-names = "ref";
343 resets = <&syscrg JH7110_SYSRST_I2C0_APB>;
344 interrupts = <35>;
345 #address-cells = <1>;
346 #size-cells = <0>;
347 status = "disabled";
348 };
349
350 i2c1: i2c@10040000 {
351 compatible = "snps,designware-i2c";
352 reg = <0x0 0x10040000 0x0 0x10000>;
353 clocks = <&syscrg JH7110_SYSCLK_I2C1_APB>;
354 clock-names = "ref";
355 resets = <&syscrg JH7110_SYSRST_I2C1_APB>;
356 interrupts = <36>;
357 #address-cells = <1>;
358 #size-cells = <0>;
359 status = "disabled";
360 };
361
362 i2c2: i2c@10050000 {
363 compatible = "snps,designware-i2c";
364 reg = <0x0 0x10050000 0x0 0x10000>;
365 clocks = <&syscrg JH7110_SYSCLK_I2C2_APB>;
366 clock-names = "ref";
367 resets = <&syscrg JH7110_SYSRST_I2C2_APB>;
368 interrupts = <37>;
369 #address-cells = <1>;
370 #size-cells = <0>;
371 status = "disabled";
372 };
373
374 stgcrg: clock-controller@10230000 {
375 compatible = "starfive,jh7110-stgcrg";
376 reg = <0x0 0x10230000 0x0 0x10000>;
377 #clock-cells = <1>;
378 #reset-cells = <1>;
379 };
380
381 stg_syscon: stg_syscon@10240000 {
382 compatible = "starfive,jh7110-stg-syscon","syscon";
383 reg = <0x0 0x10240000 0x0 0x1000>;
384 };
385
386 uart3: serial@12000000 {
387 compatible = "snps,dw-apb-uart";
388 reg = <0x0 0x12000000 0x0 0x10000>;
389 clocks = <&syscrg JH7110_SYSCLK_UART3_CORE>,
390 <&syscrg JH7110_SYSCLK_UART3_APB>;
391 clock-names = "baudclk", "apb_pclk";
392 resets = <&syscrg JH7110_SYSRST_UART3_APB>,
393 <&syscrg JH7110_SYSRST_UART3_CORE>;
394 interrupts = <45>;
395 reg-io-width = <4>;
396 reg-shift = <2>;
397 status = "disabled";
398 };
399
400 uart4: serial@12010000 {
401 compatible = "snps,dw-apb-uart";
402 reg = <0x0 0x12010000 0x0 0x10000>;
403 clocks = <&syscrg JH7110_SYSCLK_UART4_CORE>,
404 <&syscrg JH7110_SYSCLK_UART4_APB>;
405 clock-names = "baudclk", "apb_pclk";
406 resets = <&syscrg JH7110_SYSRST_UART4_APB>,
407 <&syscrg JH7110_SYSRST_UART4_CORE>;
408 interrupts = <46>;
409 reg-io-width = <4>;
410 reg-shift = <2>;
411 status = "disabled";
412 };
413
414 uart5: serial@12020000 {
415 compatible = "snps,dw-apb-uart";
416 reg = <0x0 0x12020000 0x0 0x10000>;
417 clocks = <&syscrg JH7110_SYSCLK_UART5_CORE>,
418 <&syscrg JH7110_SYSCLK_UART5_APB>;
419 clock-names = "baudclk", "apb_pclk";
420 resets = <&syscrg JH7110_SYSRST_UART5_APB>,
421 <&syscrg JH7110_SYSRST_UART5_CORE>;
422 interrupts = <47>;
423 reg-io-width = <4>;
424 reg-shift = <2>;
425 status = "disabled";
426 };
427
428 i2c3: i2c@12030000 {
429 compatible = "snps,designware-i2c";
430 reg = <0x0 0x12030000 0x0 0x10000>;
431 clocks = <&syscrg JH7110_SYSCLK_I2C3_APB>;
432 clock-names = "ref";
433 resets = <&syscrg JH7110_SYSRST_I2C3_APB>;
434 interrupts = <48>;
435 #address-cells = <1>;
436 #size-cells = <0>;
437 status = "disabled";
438 };
439
440 i2c4: i2c@12040000 {
441 compatible = "snps,designware-i2c";
442 reg = <0x0 0x12040000 0x0 0x10000>;
443 clocks = <&syscrg JH7110_SYSCLK_I2C4_APB>;
444 clock-names = "ref";
445 resets = <&syscrg JH7110_SYSRST_I2C4_APB>;
446 interrupts = <49>;
447 #address-cells = <1>;
448 #size-cells = <0>;
449 status = "disabled";
450 };
451
452 i2c5: i2c@12050000 {
453 compatible = "snps,designware-i2c";
454 reg = <0x0 0x12050000 0x0 0x10000>;
455 clocks = <&syscrg JH7110_SYSCLK_I2C5_APB>;
456 clock-names = "ref";
457 resets = <&syscrg JH7110_SYSRST_I2C5_APB>;
458 interrupts = <50>;
459 #address-cells = <1>;
460 #size-cells = <0>;
461 status = "disabled";
462 };
463
464 i2c6: i2c@12060000 {
465 compatible = "snps,designware-i2c";
466 reg = <0x0 0x12060000 0x0 0x10000>;
467 clocks = <&syscrg JH7110_SYSCLK_I2C6_APB>;
468 clock-names = "ref";
469 resets = <&syscrg JH7110_SYSRST_I2C6_APB>;
470 interrupts = <51>;
471 #address-cells = <1>;
472 #size-cells = <0>;
473 status = "disabled";
474 };
475
Nam Caoecfd53c2024-01-29 09:43:08 +0100476 power-controller@17030000 {
477 compatible = "starfive,jh7110-pmu";
478 reg = <0x0 0x17030000 0x0 0x10000>;
479 interrupts = <111>;
480 };
481
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800482 qspi: spi@13010000 {
483 compatible = "cdns,qspi-nor";
484 reg = <0x0 0x13010000 0x0 0x10000
485 0x0 0x21000000 0x0 0x400000>;
486 clocks = <&syscrg JH7110_SYSCLK_QSPI_REF>;
487 clock-names = "clk_ref";
488 resets = <&syscrg JH7110_SYSRST_QSPI_APB>,
489 <&syscrg JH7110_SYSRST_QSPI_AHB>,
490 <&syscrg JH7110_SYSRST_QSPI_REF>;
491 reset-names = "rst_apb", "rst_ahb", "rst_ref";
492 cdns,fifo-depth = <256>;
493 cdns,fifo-width = <4>;
494 #address-cells = <1>;
495 #size-cells = <0>;
496 };
497
498 syscrg: clock-controller@13020000 {
499 compatible = "starfive,jh7110-syscrg";
500 reg = <0x0 0x13020000 0x0 0x10000>;
501 clocks = <&osc>, <&gmac1_rmii_refin>,
502 <&gmac1_rgmii_rxin>,
503 <&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
504 <&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
Xingyu Wu1345c9e2023-07-07 18:50:09 +0800505 <&tdm_ext>, <&mclk_ext>,
506 <&pllclk JH7110_SYSCLK_PLL0_OUT>,
507 <&pllclk JH7110_SYSCLK_PLL1_OUT>,
508 <&pllclk JH7110_SYSCLK_PLL2_OUT>;
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800509 clock-names = "osc", "gmac1_rmii_refin",
510 "gmac1_rgmii_rxin",
511 "i2stx_bclk_ext", "i2stx_lrck_ext",
512 "i2srx_bclk_ext", "i2srx_lrck_ext",
Xingyu Wu1345c9e2023-07-07 18:50:09 +0800513 "tdm_ext", "mclk_ext",
514 "pll0_out", "pll1_out", "pll2_out";
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800515 #clock-cells = <1>;
516 #reset-cells = <1>;
517 };
518
519 sys_syscon: sys_syscon@13030000 {
Xingyu Wu7ae81bb2023-07-07 18:50:08 +0800520 compatible = "starfive,jh7110-sys-syscon","syscon", "simple-mfd";
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800521 reg = <0x0 0x13030000 0x0 0x1000>;
Xingyu Wu7ae81bb2023-07-07 18:50:08 +0800522
523 pllclk: clock-controller {
524 compatible = "starfive,jh7110-pll";
525 clocks = <&osc>;
526 #clock-cells = <1>;
527 };
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800528 };
529
530 sysgpio: pinctrl@13040000 {
531 compatible = "starfive,jh7110-sys-pinctrl";
532 reg = <0x0 0x13040000 0x0 0x10000>;
533 clocks = <&syscrg JH7110_SYSCLK_IOMUX_APB>;
534 resets = <&syscrg JH7110_SYSRST_IOMUX_APB>;
535 interrupts = <86>;
536 interrupt-controller;
537 #interrupt-cells = <2>;
538 gpio-controller;
539 #gpio-cells = <2>;
540 };
541
Chanho Park0fe44f62023-11-06 08:13:17 +0900542 watchdog@13070000 {
543 compatible = "starfive,jh7110-wdt";
544 reg = <0x0 0x13070000 0x0 0x10000>;
545 clocks = <&syscrg JH7110_SYSCLK_WDT_APB>,
546 <&syscrg JH7110_SYSCLK_WDT_CORE>;
547 clock-names = "apb", "core";
548 resets = <&syscrg JH7110_SYSRST_WDT_APB>,
549 <&syscrg JH7110_SYSRST_WDT_CORE>;
550 };
551
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800552 mmc0: mmc@16010000 {
553 compatible = "starfive,jh7110-mmc";
554 reg = <0x0 0x16010000 0x0 0x10000>;
555 clocks = <&syscrg JH7110_SYSCLK_SDIO0_AHB>,
556 <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>;
557 clock-names = "biu", "ciu";
558 resets = <&syscrg JH7110_SYSRST_SDIO0_AHB>;
559 reset-names = "reset";
560 interrupts = <74>;
561 fifo-depth = <32>;
562 fifo-watermark-aligned;
563 data-addr = <0>;
564 starfive,sysreg = <&sys_syscon 0x14 0x1a 0x7c000000>;
565 status = "disabled";
566 };
567
568 mmc1: mmc@16020000 {
569 compatible = "starfive,jh7110-mmc";
570 reg = <0x0 0x16020000 0x0 0x10000>;
571 clocks = <&syscrg JH7110_SYSCLK_SDIO1_AHB>,
572 <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>;
573 clock-names = "biu", "ciu";
574 resets = <&syscrg JH7110_SYSRST_SDIO1_AHB>;
575 reset-names = "reset";
576 interrupts = <75>;
577 fifo-depth = <32>;
578 fifo-watermark-aligned;
579 data-addr = <0>;
580 starfive,sysreg = <&sys_syscon 0x9c 0x1 0x3e>;
581 status = "disabled";
582 };
583
Yanhong Wang7f63bd92023-06-15 17:36:44 +0800584 gmac0: ethernet@16030000 {
585 compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
586 reg = <0x0 0x16030000 0x0 0x10000>;
587 clocks = <&aoncrg JH7110_AONCLK_GMAC0_AXI>,
588 <&aoncrg JH7110_AONCLK_GMAC0_AHB>,
589 <&syscrg JH7110_SYSCLK_GMAC0_PTP>,
590 <&aoncrg JH7110_AONCLK_GMAC0_TX_INV>,
591 <&syscrg JH7110_SYSCLK_GMAC0_GTXC>;
592 clock-names = "stmmaceth", "pclk", "ptp_ref",
593 "tx", "gtx";
594 resets = <&aoncrg JH7110_AONRST_GMAC0_AXI>,
595 <&aoncrg JH7110_AONRST_GMAC0_AHB>;
596 reset-names = "stmmaceth", "ahb";
597 interrupts = <7>, <6>, <5>;
598 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
599 snps,multicast-filter-bins = <64>;
600 snps,perfect-filter-entries = <8>;
601 rx-fifo-depth = <2048>;
602 tx-fifo-depth = <2048>;
603 snps,fixed-burst;
604 snps,no-pbl-x8;
605 snps,force_thresh_dma_mode;
606 snps,axi-config = <&stmmac_axi_setup>;
607 snps,tso;
608 snps,en-tx-lpi-clockgating;
609 snps,txpbl = <16>;
610 snps,rxpbl = <16>;
611 starfive,syscon = <&aon_syscon 0xc 0x12>;
612 status = "disabled";
613 };
614
615 gmac1: ethernet@16040000 {
616 compatible = "starfive,jh7110-dwmac", "snps,dwmac-5.20";
617 reg = <0x0 0x16040000 0x0 0x10000>;
618 clocks = <&syscrg JH7110_SYSCLK_GMAC1_AXI>,
619 <&syscrg JH7110_SYSCLK_GMAC1_AHB>,
620 <&syscrg JH7110_SYSCLK_GMAC1_PTP>,
621 <&syscrg JH7110_SYSCLK_GMAC1_TX_INV>,
622 <&syscrg JH7110_SYSCLK_GMAC1_GTXC>;
623 clock-names = "stmmaceth", "pclk", "ptp_ref",
624 "tx", "gtx";
625 resets = <&syscrg JH7110_SYSRST_GMAC1_AXI>,
626 <&syscrg JH7110_SYSRST_GMAC1_AHB>;
627 reset-names = "stmmaceth", "ahb";
628 interrupts = <78>, <77>, <76>;
629 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
630 snps,multicast-filter-bins = <64>;
631 snps,perfect-filter-entries = <8>;
632 rx-fifo-depth = <2048>;
633 tx-fifo-depth = <2048>;
634 snps,fixed-burst;
635 snps,no-pbl-x8;
636 snps,force_thresh_dma_mode;
637 snps,axi-config = <&stmmac_axi_setup>;
638 snps,tso;
639 snps,en-tx-lpi-clockgating;
640 snps,txpbl = <16>;
641 snps,rxpbl = <16>;
642 starfive,syscon = <&sys_syscon 0x90 0x2>;
643 status = "disabled";
644 };
645
Chanho Park601941c2023-11-01 21:16:51 +0900646 rng: rng@1600c000 {
647 compatible = "starfive,jh7110-trng";
648 reg = <0x0 0x1600C000 0x0 0x4000>;
649 clocks = <&stgcrg JH7110_STGCLK_SEC_HCLK>,
650 <&stgcrg JH7110_STGCLK_SEC_MISCAHB>;
651 clock-names = "hclk", "ahb";
652 resets = <&stgcrg JH7110_STGRST_SEC_TOP_HRESETN>;
653 interrupts = <30>;
654 };
655
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800656 aoncrg: clock-controller@17000000 {
657 compatible = "starfive,jh7110-aoncrg";
658 reg = <0x0 0x17000000 0x0 0x10000>;
659 clocks = <&osc>, <&rtc_osc>,
660 <&gmac0_rmii_refin>, <&gmac0_rgmii_rxin>,
661 <&syscrg JH7110_SYSCLK_STG_AXIAHB>,
662 <&syscrg JH7110_SYSCLK_APB_BUS>,
663 <&syscrg JH7110_SYSCLK_GMAC0_GTXCLK>;
664 clock-names = "osc", "rtc_osc", "gmac0_rmii_refin",
665 "gmac0_rgmii_rxin", "stg_axiahb",
666 "apb_bus", "gmac0_gtxclk";
667 #clock-cells = <1>;
668 #reset-cells = <1>;
669 };
670
671 aon_syscon: aon_syscon@17010000 {
672 compatible = "starfive,jh7110-aon-syscon","syscon";
673 reg = <0x0 0x17010000 0x0 0x1000>;
674 };
675
676 aongpio: pinctrl@17020000 {
677 compatible = "starfive,jh7110-aon-pinctrl";
678 reg = <0x0 0x17020000 0x0 0x10000>;
679 resets = <&aoncrg JH7110_AONRST_IOMUX>;
680 interrupts = <85>;
681 interrupt-controller;
682 #interrupt-cells = <2>;
683 gpio-controller;
684 #gpio-cells = <2>;
685 };
Mason Huo23dfd812023-07-25 17:46:50 +0800686
687 pcie0: pcie@2b000000 {
688 compatible = "starfive,jh7110-pcie";
689 reg = <0x0 0x2b000000 0x0 0x1000000
690 0x9 0x40000000 0x0 0x10000000>;
691 reg-names = "reg", "config";
692 #address-cells = <3>;
693 #size-cells = <2>;
694 #interrupt-cells = <1>;
695 ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x08000000>,
696 <0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
697 interrupts = <56>;
698 interrupt-parent = <&plic>;
699 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
700 interrupt-map = <0x0 0x0 0x0 0x1 &plic 0x1>,
701 <0x0 0x0 0x0 0x2 &plic 0x2>,
702 <0x0 0x0 0x0 0x3 &plic 0x3>,
703 <0x0 0x0 0x0 0x4 &plic 0x4>;
704 msi-parent = <&plic>;
705 device_type = "pci";
706 starfive,stg-syscon = <&stg_syscon 0xc0 0xc4 0x130 0x1b8>;
707 bus-range = <0x0 0xff>;
708 clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
709 <&stgcrg JH7110_STGCLK_PCIE0_TL>,
710 <&stgcrg JH7110_STGCLK_PCIE0_AXI>,
711 <&stgcrg JH7110_STGCLK_PCIE0_APB>;
712 clock-names = "noc", "tl", "axi", "apb";
713 resets = <&stgcrg JH7110_STGRST_PCIE0_MST0>,
714 <&stgcrg JH7110_STGRST_PCIE0_SLV0>,
715 <&stgcrg JH7110_STGRST_PCIE0_SLV>,
716 <&stgcrg JH7110_STGRST_PCIE0_BRG>,
717 <&stgcrg JH7110_STGRST_PCIE0_CORE>,
718 <&stgcrg JH7110_STGRST_PCIE0_APB>;
719 reset-names = "mst0", "slv0", "slv", "brg",
720 "core", "apb";
721 status = "disabled";
722 };
723
724 pcie1: pcie@2c000000 {
725 compatible = "starfive,jh7110-pcie";
726 reg = <0x0 0x2c000000 0x0 0x1000000
727 0x9 0xc0000000 0x0 0x10000000>;
728 reg-names = "reg", "config";
729 #address-cells = <3>;
730 #size-cells = <2>;
731 #interrupt-cells = <1>;
732 ranges = <0x82000000 0x0 0x38000000 0x0 0x38000000 0x0 0x08000000>,
733 <0xc3000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
734 interrupts = <57>;
735 interrupt-parent = <&plic>;
736 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
737 interrupt-map = <0x0 0x0 0x0 0x1 &plic 0x1>,
738 <0x0 0x0 0x0 0x2 &plic 0x2>,
739 <0x0 0x0 0x0 0x3 &plic 0x3>,
740 <0x0 0x0 0x0 0x4 &plic 0x4>;
741 msi-parent = <&plic>;
742 device_type = "pci";
743 starfive,stg-syscon = <&stg_syscon 0x270 0x274 0x2e0 0x368>;
744 bus-range = <0x0 0xff>;
745 clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
746 <&stgcrg JH7110_STGCLK_PCIE1_TL>,
747 <&stgcrg JH7110_STGCLK_PCIE1_AXI>,
748 <&stgcrg JH7110_STGCLK_PCIE1_APB>;
749 clock-names = "noc", "tl", "axi", "apb";
750 resets = <&stgcrg JH7110_STGRST_PCIE1_MST0>,
751 <&stgcrg JH7110_STGRST_PCIE1_SLV0>,
752 <&stgcrg JH7110_STGRST_PCIE1_SLV>,
753 <&stgcrg JH7110_STGRST_PCIE1_BRG>,
754 <&stgcrg JH7110_STGRST_PCIE1_CORE>,
755 <&stgcrg JH7110_STGRST_PCIE1_APB>;
756 reset-names = "mst0", "slv0", "slv", "brg",
757 "core", "apb";
758 status = "disabled";
759 };
Yanhong Wang96c3eb722023-03-29 11:42:21 +0800760 };
761};