18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT) 28c2ecf20Sopenharmony_ci/* Copyright (c) 2018-2019 SiFive, Inc */ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci/dts-v1/; 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <dt-bindings/clock/sifive-fu540-prci.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci/ { 98c2ecf20Sopenharmony_ci #address-cells = <2>; 108c2ecf20Sopenharmony_ci #size-cells = <2>; 118c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000", "sifive,fu540"; 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci aliases { 148c2ecf20Sopenharmony_ci serial0 = &uart0; 158c2ecf20Sopenharmony_ci serial1 = &uart1; 168c2ecf20Sopenharmony_ci ethernet0 = ð0; 178c2ecf20Sopenharmony_ci }; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci chosen { 208c2ecf20Sopenharmony_ci }; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci cpus { 238c2ecf20Sopenharmony_ci #address-cells = <1>; 248c2ecf20Sopenharmony_ci #size-cells = <0>; 258c2ecf20Sopenharmony_ci cpu0: cpu@0 { 268c2ecf20Sopenharmony_ci compatible = "sifive,e51", "sifive,rocket0", "riscv"; 278c2ecf20Sopenharmony_ci device_type = "cpu"; 288c2ecf20Sopenharmony_ci i-cache-block-size = <64>; 298c2ecf20Sopenharmony_ci i-cache-sets = <128>; 308c2ecf20Sopenharmony_ci i-cache-size = <16384>; 318c2ecf20Sopenharmony_ci reg = <0>; 328c2ecf20Sopenharmony_ci riscv,isa = "rv64imac"; 338c2ecf20Sopenharmony_ci status = "disabled"; 348c2ecf20Sopenharmony_ci cpu0_intc: interrupt-controller { 358c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 368c2ecf20Sopenharmony_ci compatible = "riscv,cpu-intc"; 378c2ecf20Sopenharmony_ci interrupt-controller; 388c2ecf20Sopenharmony_ci }; 398c2ecf20Sopenharmony_ci }; 408c2ecf20Sopenharmony_ci cpu1: cpu@1 { 418c2ecf20Sopenharmony_ci compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 428c2ecf20Sopenharmony_ci d-cache-block-size = <64>; 438c2ecf20Sopenharmony_ci d-cache-sets = <64>; 448c2ecf20Sopenharmony_ci d-cache-size = <32768>; 458c2ecf20Sopenharmony_ci d-tlb-sets = <1>; 468c2ecf20Sopenharmony_ci d-tlb-size = <32>; 478c2ecf20Sopenharmony_ci device_type = "cpu"; 488c2ecf20Sopenharmony_ci i-cache-block-size = <64>; 498c2ecf20Sopenharmony_ci i-cache-sets = <64>; 508c2ecf20Sopenharmony_ci i-cache-size = <32768>; 518c2ecf20Sopenharmony_ci i-tlb-sets = <1>; 528c2ecf20Sopenharmony_ci i-tlb-size = <32>; 538c2ecf20Sopenharmony_ci mmu-type = "riscv,sv39"; 548c2ecf20Sopenharmony_ci reg = <1>; 558c2ecf20Sopenharmony_ci riscv,isa = "rv64imafdc"; 568c2ecf20Sopenharmony_ci tlb-split; 578c2ecf20Sopenharmony_ci next-level-cache = <&l2cache>; 588c2ecf20Sopenharmony_ci cpu1_intc: interrupt-controller { 598c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 608c2ecf20Sopenharmony_ci compatible = "riscv,cpu-intc"; 618c2ecf20Sopenharmony_ci interrupt-controller; 628c2ecf20Sopenharmony_ci }; 638c2ecf20Sopenharmony_ci }; 648c2ecf20Sopenharmony_ci cpu2: cpu@2 { 658c2ecf20Sopenharmony_ci compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 668c2ecf20Sopenharmony_ci d-cache-block-size = <64>; 678c2ecf20Sopenharmony_ci d-cache-sets = <64>; 688c2ecf20Sopenharmony_ci d-cache-size = <32768>; 698c2ecf20Sopenharmony_ci d-tlb-sets = <1>; 708c2ecf20Sopenharmony_ci d-tlb-size = <32>; 718c2ecf20Sopenharmony_ci device_type = "cpu"; 728c2ecf20Sopenharmony_ci i-cache-block-size = <64>; 738c2ecf20Sopenharmony_ci i-cache-sets = <64>; 748c2ecf20Sopenharmony_ci i-cache-size = <32768>; 758c2ecf20Sopenharmony_ci i-tlb-sets = <1>; 768c2ecf20Sopenharmony_ci i-tlb-size = <32>; 778c2ecf20Sopenharmony_ci mmu-type = "riscv,sv39"; 788c2ecf20Sopenharmony_ci reg = <2>; 798c2ecf20Sopenharmony_ci riscv,isa = "rv64imafdc"; 808c2ecf20Sopenharmony_ci tlb-split; 818c2ecf20Sopenharmony_ci next-level-cache = <&l2cache>; 828c2ecf20Sopenharmony_ci cpu2_intc: interrupt-controller { 838c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 848c2ecf20Sopenharmony_ci compatible = "riscv,cpu-intc"; 858c2ecf20Sopenharmony_ci interrupt-controller; 868c2ecf20Sopenharmony_ci }; 878c2ecf20Sopenharmony_ci }; 888c2ecf20Sopenharmony_ci cpu3: cpu@3 { 898c2ecf20Sopenharmony_ci compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 908c2ecf20Sopenharmony_ci d-cache-block-size = <64>; 918c2ecf20Sopenharmony_ci d-cache-sets = <64>; 928c2ecf20Sopenharmony_ci d-cache-size = <32768>; 938c2ecf20Sopenharmony_ci d-tlb-sets = <1>; 948c2ecf20Sopenharmony_ci d-tlb-size = <32>; 958c2ecf20Sopenharmony_ci device_type = "cpu"; 968c2ecf20Sopenharmony_ci i-cache-block-size = <64>; 978c2ecf20Sopenharmony_ci i-cache-sets = <64>; 988c2ecf20Sopenharmony_ci i-cache-size = <32768>; 998c2ecf20Sopenharmony_ci i-tlb-sets = <1>; 1008c2ecf20Sopenharmony_ci i-tlb-size = <32>; 1018c2ecf20Sopenharmony_ci mmu-type = "riscv,sv39"; 1028c2ecf20Sopenharmony_ci reg = <3>; 1038c2ecf20Sopenharmony_ci riscv,isa = "rv64imafdc"; 1048c2ecf20Sopenharmony_ci tlb-split; 1058c2ecf20Sopenharmony_ci next-level-cache = <&l2cache>; 1068c2ecf20Sopenharmony_ci cpu3_intc: interrupt-controller { 1078c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 1088c2ecf20Sopenharmony_ci compatible = "riscv,cpu-intc"; 1098c2ecf20Sopenharmony_ci interrupt-controller; 1108c2ecf20Sopenharmony_ci }; 1118c2ecf20Sopenharmony_ci }; 1128c2ecf20Sopenharmony_ci cpu4: cpu@4 { 1138c2ecf20Sopenharmony_ci compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 1148c2ecf20Sopenharmony_ci d-cache-block-size = <64>; 1158c2ecf20Sopenharmony_ci d-cache-sets = <64>; 1168c2ecf20Sopenharmony_ci d-cache-size = <32768>; 1178c2ecf20Sopenharmony_ci d-tlb-sets = <1>; 1188c2ecf20Sopenharmony_ci d-tlb-size = <32>; 1198c2ecf20Sopenharmony_ci device_type = "cpu"; 1208c2ecf20Sopenharmony_ci i-cache-block-size = <64>; 1218c2ecf20Sopenharmony_ci i-cache-sets = <64>; 1228c2ecf20Sopenharmony_ci i-cache-size = <32768>; 1238c2ecf20Sopenharmony_ci i-tlb-sets = <1>; 1248c2ecf20Sopenharmony_ci i-tlb-size = <32>; 1258c2ecf20Sopenharmony_ci mmu-type = "riscv,sv39"; 1268c2ecf20Sopenharmony_ci reg = <4>; 1278c2ecf20Sopenharmony_ci riscv,isa = "rv64imafdc"; 1288c2ecf20Sopenharmony_ci tlb-split; 1298c2ecf20Sopenharmony_ci next-level-cache = <&l2cache>; 1308c2ecf20Sopenharmony_ci cpu4_intc: interrupt-controller { 1318c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 1328c2ecf20Sopenharmony_ci compatible = "riscv,cpu-intc"; 1338c2ecf20Sopenharmony_ci interrupt-controller; 1348c2ecf20Sopenharmony_ci }; 1358c2ecf20Sopenharmony_ci }; 1368c2ecf20Sopenharmony_ci }; 1378c2ecf20Sopenharmony_ci soc { 1388c2ecf20Sopenharmony_ci #address-cells = <2>; 1398c2ecf20Sopenharmony_ci #size-cells = <2>; 1408c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000", "sifive,fu540", "simple-bus"; 1418c2ecf20Sopenharmony_ci ranges; 1428c2ecf20Sopenharmony_ci plic0: interrupt-controller@c000000 { 1438c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 1448c2ecf20Sopenharmony_ci compatible = "sifive,plic-1.0.0"; 1458c2ecf20Sopenharmony_ci reg = <0x0 0xc000000 0x0 0x4000000>; 1468c2ecf20Sopenharmony_ci riscv,ndev = <53>; 1478c2ecf20Sopenharmony_ci interrupt-controller; 1488c2ecf20Sopenharmony_ci interrupts-extended = < 1498c2ecf20Sopenharmony_ci &cpu0_intc 0xffffffff 1508c2ecf20Sopenharmony_ci &cpu1_intc 0xffffffff &cpu1_intc 9 1518c2ecf20Sopenharmony_ci &cpu2_intc 0xffffffff &cpu2_intc 9 1528c2ecf20Sopenharmony_ci &cpu3_intc 0xffffffff &cpu3_intc 9 1538c2ecf20Sopenharmony_ci &cpu4_intc 0xffffffff &cpu4_intc 9>; 1548c2ecf20Sopenharmony_ci }; 1558c2ecf20Sopenharmony_ci prci: clock-controller@10000000 { 1568c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-prci"; 1578c2ecf20Sopenharmony_ci reg = <0x0 0x10000000 0x0 0x1000>; 1588c2ecf20Sopenharmony_ci clocks = <&hfclk>, <&rtcclk>; 1598c2ecf20Sopenharmony_ci #clock-cells = <1>; 1608c2ecf20Sopenharmony_ci }; 1618c2ecf20Sopenharmony_ci uart0: serial@10010000 { 1628c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-uart", "sifive,uart0"; 1638c2ecf20Sopenharmony_ci reg = <0x0 0x10010000 0x0 0x1000>; 1648c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 1658c2ecf20Sopenharmony_ci interrupts = <4>; 1668c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 1678c2ecf20Sopenharmony_ci status = "disabled"; 1688c2ecf20Sopenharmony_ci }; 1698c2ecf20Sopenharmony_ci dma: dma-controller@3000000 { 1708c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-pdma"; 1718c2ecf20Sopenharmony_ci reg = <0x0 0x3000000 0x0 0x8000>; 1728c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 1738c2ecf20Sopenharmony_ci interrupts = <23 24 25 26 27 28 29 30>; 1748c2ecf20Sopenharmony_ci #dma-cells = <1>; 1758c2ecf20Sopenharmony_ci }; 1768c2ecf20Sopenharmony_ci uart1: serial@10011000 { 1778c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-uart", "sifive,uart0"; 1788c2ecf20Sopenharmony_ci reg = <0x0 0x10011000 0x0 0x1000>; 1798c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 1808c2ecf20Sopenharmony_ci interrupts = <5>; 1818c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 1828c2ecf20Sopenharmony_ci status = "disabled"; 1838c2ecf20Sopenharmony_ci }; 1848c2ecf20Sopenharmony_ci i2c0: i2c@10030000 { 1858c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-i2c", "sifive,i2c0"; 1868c2ecf20Sopenharmony_ci reg = <0x0 0x10030000 0x0 0x1000>; 1878c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 1888c2ecf20Sopenharmony_ci interrupts = <50>; 1898c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 1908c2ecf20Sopenharmony_ci reg-shift = <2>; 1918c2ecf20Sopenharmony_ci reg-io-width = <1>; 1928c2ecf20Sopenharmony_ci #address-cells = <1>; 1938c2ecf20Sopenharmony_ci #size-cells = <0>; 1948c2ecf20Sopenharmony_ci status = "disabled"; 1958c2ecf20Sopenharmony_ci }; 1968c2ecf20Sopenharmony_ci qspi0: spi@10040000 { 1978c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-spi", "sifive,spi0"; 1988c2ecf20Sopenharmony_ci reg = <0x0 0x10040000 0x0 0x1000 1998c2ecf20Sopenharmony_ci 0x0 0x20000000 0x0 0x10000000>; 2008c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2018c2ecf20Sopenharmony_ci interrupts = <51>; 2028c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 2038c2ecf20Sopenharmony_ci #address-cells = <1>; 2048c2ecf20Sopenharmony_ci #size-cells = <0>; 2058c2ecf20Sopenharmony_ci status = "disabled"; 2068c2ecf20Sopenharmony_ci }; 2078c2ecf20Sopenharmony_ci qspi1: spi@10041000 { 2088c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-spi", "sifive,spi0"; 2098c2ecf20Sopenharmony_ci reg = <0x0 0x10041000 0x0 0x1000 2108c2ecf20Sopenharmony_ci 0x0 0x30000000 0x0 0x10000000>; 2118c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2128c2ecf20Sopenharmony_ci interrupts = <52>; 2138c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 2148c2ecf20Sopenharmony_ci #address-cells = <1>; 2158c2ecf20Sopenharmony_ci #size-cells = <0>; 2168c2ecf20Sopenharmony_ci status = "disabled"; 2178c2ecf20Sopenharmony_ci }; 2188c2ecf20Sopenharmony_ci qspi2: spi@10050000 { 2198c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-spi", "sifive,spi0"; 2208c2ecf20Sopenharmony_ci reg = <0x0 0x10050000 0x0 0x1000>; 2218c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2228c2ecf20Sopenharmony_ci interrupts = <6>; 2238c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 2248c2ecf20Sopenharmony_ci #address-cells = <1>; 2258c2ecf20Sopenharmony_ci #size-cells = <0>; 2268c2ecf20Sopenharmony_ci status = "disabled"; 2278c2ecf20Sopenharmony_ci }; 2288c2ecf20Sopenharmony_ci eth0: ethernet@10090000 { 2298c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-gem"; 2308c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2318c2ecf20Sopenharmony_ci interrupts = <53>; 2328c2ecf20Sopenharmony_ci reg = <0x0 0x10090000 0x0 0x2000 2338c2ecf20Sopenharmony_ci 0x0 0x100a0000 0x0 0x1000>; 2348c2ecf20Sopenharmony_ci local-mac-address = [00 00 00 00 00 00]; 2358c2ecf20Sopenharmony_ci clock-names = "pclk", "hclk"; 2368c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_GEMGXLPLL>, 2378c2ecf20Sopenharmony_ci <&prci PRCI_CLK_GEMGXLPLL>; 2388c2ecf20Sopenharmony_ci #address-cells = <1>; 2398c2ecf20Sopenharmony_ci #size-cells = <0>; 2408c2ecf20Sopenharmony_ci status = "disabled"; 2418c2ecf20Sopenharmony_ci }; 2428c2ecf20Sopenharmony_ci pwm0: pwm@10020000 { 2438c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-pwm", "sifive,pwm0"; 2448c2ecf20Sopenharmony_ci reg = <0x0 0x10020000 0x0 0x1000>; 2458c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2468c2ecf20Sopenharmony_ci interrupts = <42 43 44 45>; 2478c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 2488c2ecf20Sopenharmony_ci #pwm-cells = <3>; 2498c2ecf20Sopenharmony_ci status = "disabled"; 2508c2ecf20Sopenharmony_ci }; 2518c2ecf20Sopenharmony_ci pwm1: pwm@10021000 { 2528c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-pwm", "sifive,pwm0"; 2538c2ecf20Sopenharmony_ci reg = <0x0 0x10021000 0x0 0x1000>; 2548c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2558c2ecf20Sopenharmony_ci interrupts = <46 47 48 49>; 2568c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 2578c2ecf20Sopenharmony_ci #pwm-cells = <3>; 2588c2ecf20Sopenharmony_ci status = "disabled"; 2598c2ecf20Sopenharmony_ci }; 2608c2ecf20Sopenharmony_ci l2cache: cache-controller@2010000 { 2618c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-ccache", "cache"; 2628c2ecf20Sopenharmony_ci cache-block-size = <64>; 2638c2ecf20Sopenharmony_ci cache-level = <2>; 2648c2ecf20Sopenharmony_ci cache-sets = <1024>; 2658c2ecf20Sopenharmony_ci cache-size = <2097152>; 2668c2ecf20Sopenharmony_ci cache-unified; 2678c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2688c2ecf20Sopenharmony_ci interrupts = <1 2 3>; 2698c2ecf20Sopenharmony_ci reg = <0x0 0x2010000 0x0 0x1000>; 2708c2ecf20Sopenharmony_ci }; 2718c2ecf20Sopenharmony_ci gpio: gpio@10060000 { 2728c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-gpio", "sifive,gpio0"; 2738c2ecf20Sopenharmony_ci interrupt-parent = <&plic0>; 2748c2ecf20Sopenharmony_ci interrupts = <7>, <8>, <9>, <10>, <11>, <12>, <13>, 2758c2ecf20Sopenharmony_ci <14>, <15>, <16>, <17>, <18>, <19>, <20>, 2768c2ecf20Sopenharmony_ci <21>, <22>; 2778c2ecf20Sopenharmony_ci reg = <0x0 0x10060000 0x0 0x1000>; 2788c2ecf20Sopenharmony_ci gpio-controller; 2798c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2808c2ecf20Sopenharmony_ci interrupt-controller; 2818c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2828c2ecf20Sopenharmony_ci clocks = <&prci PRCI_CLK_TLCLK>; 2838c2ecf20Sopenharmony_ci status = "disabled"; 2848c2ecf20Sopenharmony_ci }; 2858c2ecf20Sopenharmony_ci }; 2868c2ecf20Sopenharmony_ci}; 287