157985788SYash Shah// SPDX-License-Identifier: (GPL-2.0 OR MIT) 257985788SYash Shah/* Copyright (c) 2020 SiFive, Inc */ 357985788SYash Shah 457985788SYash Shah/dts-v1/; 557985788SYash Shah 657985788SYash Shah#include <dt-bindings/clock/sifive-fu740-prci.h> 757985788SYash Shah 857985788SYash Shah/ { 957985788SYash Shah #address-cells = <2>; 1057985788SYash Shah #size-cells = <2>; 1157985788SYash Shah compatible = "sifive,fu740-c000", "sifive,fu740"; 1257985788SYash Shah 1357985788SYash Shah aliases { 1457985788SYash Shah serial0 = &uart0; 1557985788SYash Shah serial1 = &uart1; 1657985788SYash Shah ethernet0 = ð0; 1757985788SYash Shah }; 1857985788SYash Shah 1957985788SYash Shah chosen { 2057985788SYash Shah }; 2157985788SYash Shah 2257985788SYash Shah cpus { 2357985788SYash Shah #address-cells = <1>; 2457985788SYash Shah #size-cells = <0>; 2557985788SYash Shah cpu0: cpu@0 { 2657985788SYash Shah compatible = "sifive,bullet0", "riscv"; 2757985788SYash Shah device_type = "cpu"; 2857985788SYash Shah i-cache-block-size = <64>; 2957985788SYash Shah i-cache-sets = <128>; 3057985788SYash Shah i-cache-size = <16384>; 3157985788SYash Shah next-level-cache = <&ccache>; 3257985788SYash Shah reg = <0x0>; 3357985788SYash Shah riscv,isa = "rv64imac"; 3457985788SYash Shah status = "disabled"; 3557985788SYash Shah cpu0_intc: interrupt-controller { 3657985788SYash Shah #interrupt-cells = <1>; 3757985788SYash Shah compatible = "riscv,cpu-intc"; 3857985788SYash Shah interrupt-controller; 3957985788SYash Shah }; 4057985788SYash Shah }; 4157985788SYash Shah cpu1: cpu@1 { 4257985788SYash Shah compatible = "sifive,bullet0", "riscv"; 4357985788SYash Shah d-cache-block-size = <64>; 4457985788SYash Shah d-cache-sets = <64>; 4557985788SYash Shah d-cache-size = <32768>; 4657985788SYash Shah d-tlb-sets = <1>; 4757985788SYash Shah d-tlb-size = <40>; 4857985788SYash Shah device_type = "cpu"; 4957985788SYash Shah i-cache-block-size = <64>; 5057985788SYash Shah i-cache-sets = <128>; 5157985788SYash Shah i-cache-size = <32768>; 5257985788SYash Shah i-tlb-sets = <1>; 5357985788SYash Shah i-tlb-size = <40>; 5457985788SYash Shah mmu-type = "riscv,sv39"; 5557985788SYash Shah next-level-cache = <&ccache>; 5657985788SYash Shah reg = <0x1>; 5757985788SYash Shah riscv,isa = "rv64imafdc"; 5857985788SYash Shah tlb-split; 5957985788SYash Shah cpu1_intc: interrupt-controller { 6057985788SYash Shah #interrupt-cells = <1>; 6157985788SYash Shah compatible = "riscv,cpu-intc"; 6257985788SYash Shah interrupt-controller; 6357985788SYash Shah }; 6457985788SYash Shah }; 6557985788SYash Shah cpu2: cpu@2 { 6657985788SYash Shah compatible = "sifive,bullet0", "riscv"; 6757985788SYash Shah d-cache-block-size = <64>; 6857985788SYash Shah d-cache-sets = <64>; 6957985788SYash Shah d-cache-size = <32768>; 7057985788SYash Shah d-tlb-sets = <1>; 7157985788SYash Shah d-tlb-size = <40>; 7257985788SYash Shah device_type = "cpu"; 7357985788SYash Shah i-cache-block-size = <64>; 7457985788SYash Shah i-cache-sets = <128>; 7557985788SYash Shah i-cache-size = <32768>; 7657985788SYash Shah i-tlb-sets = <1>; 7757985788SYash Shah i-tlb-size = <40>; 7857985788SYash Shah mmu-type = "riscv,sv39"; 7957985788SYash Shah next-level-cache = <&ccache>; 8057985788SYash Shah reg = <0x2>; 8157985788SYash Shah riscv,isa = "rv64imafdc"; 8257985788SYash Shah tlb-split; 8357985788SYash Shah cpu2_intc: interrupt-controller { 8457985788SYash Shah #interrupt-cells = <1>; 8557985788SYash Shah compatible = "riscv,cpu-intc"; 8657985788SYash Shah interrupt-controller; 8757985788SYash Shah }; 8857985788SYash Shah }; 8957985788SYash Shah cpu3: cpu@3 { 9057985788SYash Shah compatible = "sifive,bullet0", "riscv"; 9157985788SYash Shah d-cache-block-size = <64>; 9257985788SYash Shah d-cache-sets = <64>; 9357985788SYash Shah d-cache-size = <32768>; 9457985788SYash Shah d-tlb-sets = <1>; 9557985788SYash Shah d-tlb-size = <40>; 9657985788SYash Shah device_type = "cpu"; 9757985788SYash Shah i-cache-block-size = <64>; 9857985788SYash Shah i-cache-sets = <128>; 9957985788SYash Shah i-cache-size = <32768>; 10057985788SYash Shah i-tlb-sets = <1>; 10157985788SYash Shah i-tlb-size = <40>; 10257985788SYash Shah mmu-type = "riscv,sv39"; 10357985788SYash Shah next-level-cache = <&ccache>; 10457985788SYash Shah reg = <0x3>; 10557985788SYash Shah riscv,isa = "rv64imafdc"; 10657985788SYash Shah tlb-split; 10757985788SYash Shah cpu3_intc: interrupt-controller { 10857985788SYash Shah #interrupt-cells = <1>; 10957985788SYash Shah compatible = "riscv,cpu-intc"; 11057985788SYash Shah interrupt-controller; 11157985788SYash Shah }; 11257985788SYash Shah }; 11357985788SYash Shah cpu4: cpu@4 { 11457985788SYash Shah compatible = "sifive,bullet0", "riscv"; 11557985788SYash Shah d-cache-block-size = <64>; 11657985788SYash Shah d-cache-sets = <64>; 11757985788SYash Shah d-cache-size = <32768>; 11857985788SYash Shah d-tlb-sets = <1>; 11957985788SYash Shah d-tlb-size = <40>; 12057985788SYash Shah device_type = "cpu"; 12157985788SYash Shah i-cache-block-size = <64>; 12257985788SYash Shah i-cache-sets = <128>; 12357985788SYash Shah i-cache-size = <32768>; 12457985788SYash Shah i-tlb-sets = <1>; 12557985788SYash Shah i-tlb-size = <40>; 12657985788SYash Shah mmu-type = "riscv,sv39"; 12757985788SYash Shah next-level-cache = <&ccache>; 12857985788SYash Shah reg = <0x4>; 12957985788SYash Shah riscv,isa = "rv64imafdc"; 13057985788SYash Shah tlb-split; 13157985788SYash Shah cpu4_intc: interrupt-controller { 13257985788SYash Shah #interrupt-cells = <1>; 13357985788SYash Shah compatible = "riscv,cpu-intc"; 13457985788SYash Shah interrupt-controller; 13557985788SYash Shah }; 13657985788SYash Shah }; 13757985788SYash Shah }; 13857985788SYash Shah soc { 13957985788SYash Shah #address-cells = <2>; 14057985788SYash Shah #size-cells = <2>; 14157985788SYash Shah compatible = "simple-bus"; 14257985788SYash Shah ranges; 14357985788SYash Shah plic0: interrupt-controller@c000000 { 14457985788SYash Shah #interrupt-cells = <1>; 14557985788SYash Shah #address-cells = <0>; 14657985788SYash Shah compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0"; 14757985788SYash Shah reg = <0x0 0xc000000 0x0 0x4000000>; 14857985788SYash Shah riscv,ndev = <69>; 14957985788SYash Shah interrupt-controller; 15057985788SYash Shah interrupts-extended = < 15157985788SYash Shah &cpu0_intc 0xffffffff 15257985788SYash Shah &cpu1_intc 0xffffffff &cpu1_intc 9 15357985788SYash Shah &cpu2_intc 0xffffffff &cpu2_intc 9 15457985788SYash Shah &cpu3_intc 0xffffffff &cpu3_intc 9 15557985788SYash Shah &cpu4_intc 0xffffffff &cpu4_intc 9>; 15657985788SYash Shah }; 15757985788SYash Shah prci: clock-controller@10000000 { 15857985788SYash Shah compatible = "sifive,fu740-c000-prci"; 15957985788SYash Shah reg = <0x0 0x10000000 0x0 0x1000>; 16057985788SYash Shah clocks = <&hfclk>, <&rtcclk>; 16157985788SYash Shah #clock-cells = <1>; 162*ae80d514SGreentime Hu #reset-cells = <1>; 16357985788SYash Shah }; 16457985788SYash Shah uart0: serial@10010000 { 16557985788SYash Shah compatible = "sifive,fu740-c000-uart", "sifive,uart0"; 16657985788SYash Shah reg = <0x0 0x10010000 0x0 0x1000>; 16757985788SYash Shah interrupt-parent = <&plic0>; 16857985788SYash Shah interrupts = <39>; 16957985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 17057985788SYash Shah status = "disabled"; 17157985788SYash Shah }; 17257985788SYash Shah uart1: serial@10011000 { 17357985788SYash Shah compatible = "sifive,fu740-c000-uart", "sifive,uart0"; 17457985788SYash Shah reg = <0x0 0x10011000 0x0 0x1000>; 17557985788SYash Shah interrupt-parent = <&plic0>; 17657985788SYash Shah interrupts = <40>; 17757985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 17857985788SYash Shah status = "disabled"; 17957985788SYash Shah }; 18057985788SYash Shah i2c0: i2c@10030000 { 18157985788SYash Shah compatible = "sifive,fu740-c000-i2c", "sifive,i2c0"; 18257985788SYash Shah reg = <0x0 0x10030000 0x0 0x1000>; 18357985788SYash Shah interrupt-parent = <&plic0>; 18457985788SYash Shah interrupts = <52>; 18557985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 18657985788SYash Shah reg-shift = <2>; 18757985788SYash Shah reg-io-width = <1>; 18857985788SYash Shah #address-cells = <1>; 18957985788SYash Shah #size-cells = <0>; 19057985788SYash Shah status = "disabled"; 19157985788SYash Shah }; 19257985788SYash Shah i2c1: i2c@10031000 { 19357985788SYash Shah compatible = "sifive,fu740-c000-i2c", "sifive,i2c0"; 19457985788SYash Shah reg = <0x0 0x10031000 0x0 0x1000>; 19557985788SYash Shah interrupt-parent = <&plic0>; 19657985788SYash Shah interrupts = <53>; 19757985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 19857985788SYash Shah reg-shift = <2>; 19957985788SYash Shah reg-io-width = <1>; 20057985788SYash Shah #address-cells = <1>; 20157985788SYash Shah #size-cells = <0>; 20257985788SYash Shah status = "disabled"; 20357985788SYash Shah }; 20457985788SYash Shah qspi0: spi@10040000 { 20557985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 20657985788SYash Shah reg = <0x0 0x10040000 0x0 0x1000>, 20757985788SYash Shah <0x0 0x20000000 0x0 0x10000000>; 20857985788SYash Shah interrupt-parent = <&plic0>; 20957985788SYash Shah interrupts = <41>; 21057985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 21157985788SYash Shah #address-cells = <1>; 21257985788SYash Shah #size-cells = <0>; 21357985788SYash Shah status = "disabled"; 21457985788SYash Shah }; 21557985788SYash Shah qspi1: spi@10041000 { 21657985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 21757985788SYash Shah reg = <0x0 0x10041000 0x0 0x1000>, 21857985788SYash Shah <0x0 0x30000000 0x0 0x10000000>; 21957985788SYash Shah interrupt-parent = <&plic0>; 22057985788SYash Shah interrupts = <42>; 22157985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 22257985788SYash Shah #address-cells = <1>; 22357985788SYash Shah #size-cells = <0>; 22457985788SYash Shah status = "disabled"; 22557985788SYash Shah }; 22657985788SYash Shah spi0: spi@10050000 { 22757985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 22857985788SYash Shah reg = <0x0 0x10050000 0x0 0x1000>; 22957985788SYash Shah interrupt-parent = <&plic0>; 23057985788SYash Shah interrupts = <43>; 23157985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 23257985788SYash Shah #address-cells = <1>; 23357985788SYash Shah #size-cells = <0>; 23457985788SYash Shah status = "disabled"; 23557985788SYash Shah }; 23657985788SYash Shah eth0: ethernet@10090000 { 23757985788SYash Shah compatible = "sifive,fu540-c000-gem"; 23857985788SYash Shah interrupt-parent = <&plic0>; 23957985788SYash Shah interrupts = <55>; 24057985788SYash Shah reg = <0x0 0x10090000 0x0 0x2000>, 24157985788SYash Shah <0x0 0x100a0000 0x0 0x1000>; 24257985788SYash Shah local-mac-address = [00 00 00 00 00 00]; 24357985788SYash Shah clock-names = "pclk", "hclk"; 24457985788SYash Shah clocks = <&prci PRCI_CLK_GEMGXLPLL>, 24557985788SYash Shah <&prci PRCI_CLK_GEMGXLPLL>; 24657985788SYash Shah #address-cells = <1>; 24757985788SYash Shah #size-cells = <0>; 24857985788SYash Shah status = "disabled"; 24957985788SYash Shah }; 25057985788SYash Shah pwm0: pwm@10020000 { 25157985788SYash Shah compatible = "sifive,fu740-c000-pwm", "sifive,pwm0"; 25257985788SYash Shah reg = <0x0 0x10020000 0x0 0x1000>; 25357985788SYash Shah interrupt-parent = <&plic0>; 25457985788SYash Shah interrupts = <44>, <45>, <46>, <47>; 25557985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 25657985788SYash Shah #pwm-cells = <3>; 25757985788SYash Shah status = "disabled"; 25857985788SYash Shah }; 25957985788SYash Shah pwm1: pwm@10021000 { 26057985788SYash Shah compatible = "sifive,fu740-c000-pwm", "sifive,pwm0"; 26157985788SYash Shah reg = <0x0 0x10021000 0x0 0x1000>; 26257985788SYash Shah interrupt-parent = <&plic0>; 26357985788SYash Shah interrupts = <48>, <49>, <50>, <51>; 26457985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 26557985788SYash Shah #pwm-cells = <3>; 26657985788SYash Shah status = "disabled"; 26757985788SYash Shah }; 26857985788SYash Shah ccache: cache-controller@2010000 { 26957985788SYash Shah compatible = "sifive,fu740-c000-ccache", "cache"; 27057985788SYash Shah cache-block-size = <64>; 27157985788SYash Shah cache-level = <2>; 27257985788SYash Shah cache-sets = <2048>; 27357985788SYash Shah cache-size = <2097152>; 27457985788SYash Shah cache-unified; 27557985788SYash Shah interrupt-parent = <&plic0>; 27657985788SYash Shah interrupts = <19 20 21 22>; 27757985788SYash Shah reg = <0x0 0x2010000 0x0 0x1000>; 27857985788SYash Shah }; 27957985788SYash Shah gpio: gpio@10060000 { 28057985788SYash Shah compatible = "sifive,fu740-c000-gpio", "sifive,gpio0"; 28157985788SYash Shah interrupt-parent = <&plic0>; 28257985788SYash Shah interrupts = <23>, <24>, <25>, <26>, <27>, <28>, <29>, 28357985788SYash Shah <30>, <31>, <32>, <33>, <34>, <35>, <36>, 28457985788SYash Shah <37>, <38>; 28557985788SYash Shah reg = <0x0 0x10060000 0x0 0x1000>; 28657985788SYash Shah gpio-controller; 28757985788SYash Shah #gpio-cells = <2>; 28857985788SYash Shah interrupt-controller; 28957985788SYash Shah #interrupt-cells = <2>; 29057985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 29157985788SYash Shah status = "disabled"; 29257985788SYash Shah }; 293*ae80d514SGreentime Hu pcie@e00000000 { 294*ae80d514SGreentime Hu compatible = "sifive,fu740-pcie"; 295*ae80d514SGreentime Hu #address-cells = <3>; 296*ae80d514SGreentime Hu #size-cells = <2>; 297*ae80d514SGreentime Hu #interrupt-cells = <1>; 298*ae80d514SGreentime Hu reg = <0xe 0x00000000 0x0 0x80000000>, 299*ae80d514SGreentime Hu <0xd 0xf0000000 0x0 0x10000000>, 300*ae80d514SGreentime Hu <0x0 0x100d0000 0x0 0x1000>; 301*ae80d514SGreentime Hu reg-names = "dbi", "config", "mgmt"; 302*ae80d514SGreentime Hu device_type = "pci"; 303*ae80d514SGreentime Hu dma-coherent; 304*ae80d514SGreentime Hu bus-range = <0x0 0xff>; 305*ae80d514SGreentime Hu ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */ 306*ae80d514SGreentime Hu <0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */ 307*ae80d514SGreentime Hu <0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x1000000>, /* mem */ 308*ae80d514SGreentime Hu <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */ 309*ae80d514SGreentime Hu num-lanes = <0x8>; 310*ae80d514SGreentime Hu interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>; 311*ae80d514SGreentime Hu interrupt-names = "msi", "inta", "intb", "intc", "intd"; 312*ae80d514SGreentime Hu interrupt-parent = <&plic0>; 313*ae80d514SGreentime Hu interrupt-map-mask = <0x0 0x0 0x0 0x7>; 314*ae80d514SGreentime Hu interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>, 315*ae80d514SGreentime Hu <0x0 0x0 0x0 0x2 &plic0 58>, 316*ae80d514SGreentime Hu <0x0 0x0 0x0 0x3 &plic0 59>, 317*ae80d514SGreentime Hu <0x0 0x0 0x0 0x4 &plic0 60>; 318*ae80d514SGreentime Hu clock-names = "pcie_aux"; 319*ae80d514SGreentime Hu clocks = <&prci PRCI_CLK_PCIE_AUX>; 320*ae80d514SGreentime Hu pwren-gpios = <&gpio 5 0>; 321*ae80d514SGreentime Hu reset-gpios = <&gpio 8 0>; 322*ae80d514SGreentime Hu resets = <&prci 4>; 323*ae80d514SGreentime Hu status = "okay"; 324*ae80d514SGreentime Hu }; 32557985788SYash Shah }; 32657985788SYash Shah}; 327