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"; 34*a54f4272SConor Dooley riscv,isa-base = "rv64i"; 35*a54f4272SConor Dooley riscv,isa-extensions = "i", "m", "a", "c", "zicntr", "zicsr", "zifencei", 36*a54f4272SConor Dooley "zihpm"; 3757985788SYash Shah status = "disabled"; 3857985788SYash Shah cpu0_intc: interrupt-controller { 3957985788SYash Shah #interrupt-cells = <1>; 4057985788SYash Shah compatible = "riscv,cpu-intc"; 4157985788SYash Shah interrupt-controller; 4257985788SYash Shah }; 4357985788SYash Shah }; 4457985788SYash Shah cpu1: cpu@1 { 4557985788SYash Shah compatible = "sifive,bullet0", "riscv"; 4657985788SYash Shah d-cache-block-size = <64>; 4757985788SYash Shah d-cache-sets = <64>; 4857985788SYash Shah d-cache-size = <32768>; 4957985788SYash Shah d-tlb-sets = <1>; 5057985788SYash Shah d-tlb-size = <40>; 5157985788SYash Shah device_type = "cpu"; 5257985788SYash Shah i-cache-block-size = <64>; 5357985788SYash Shah i-cache-sets = <128>; 5457985788SYash Shah i-cache-size = <32768>; 5557985788SYash Shah i-tlb-sets = <1>; 5657985788SYash Shah i-tlb-size = <40>; 5757985788SYash Shah mmu-type = "riscv,sv39"; 5857985788SYash Shah next-level-cache = <&ccache>; 5957985788SYash Shah reg = <0x1>; 6057985788SYash Shah riscv,isa = "rv64imafdc"; 61*a54f4272SConor Dooley riscv,isa-base = "rv64i"; 62*a54f4272SConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 63*a54f4272SConor Dooley "zifencei", "zihpm"; 6457985788SYash Shah tlb-split; 6557985788SYash Shah cpu1_intc: interrupt-controller { 6657985788SYash Shah #interrupt-cells = <1>; 6757985788SYash Shah compatible = "riscv,cpu-intc"; 6857985788SYash Shah interrupt-controller; 6957985788SYash Shah }; 7057985788SYash Shah }; 7157985788SYash Shah cpu2: cpu@2 { 7257985788SYash Shah compatible = "sifive,bullet0", "riscv"; 7357985788SYash Shah d-cache-block-size = <64>; 7457985788SYash Shah d-cache-sets = <64>; 7557985788SYash Shah d-cache-size = <32768>; 7657985788SYash Shah d-tlb-sets = <1>; 7757985788SYash Shah d-tlb-size = <40>; 7857985788SYash Shah device_type = "cpu"; 7957985788SYash Shah i-cache-block-size = <64>; 8057985788SYash Shah i-cache-sets = <128>; 8157985788SYash Shah i-cache-size = <32768>; 8257985788SYash Shah i-tlb-sets = <1>; 8357985788SYash Shah i-tlb-size = <40>; 8457985788SYash Shah mmu-type = "riscv,sv39"; 8557985788SYash Shah next-level-cache = <&ccache>; 8657985788SYash Shah reg = <0x2>; 8757985788SYash Shah riscv,isa = "rv64imafdc"; 88*a54f4272SConor Dooley riscv,isa-base = "rv64i"; 89*a54f4272SConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 90*a54f4272SConor Dooley "zifencei", "zihpm"; 9157985788SYash Shah tlb-split; 9257985788SYash Shah cpu2_intc: interrupt-controller { 9357985788SYash Shah #interrupt-cells = <1>; 9457985788SYash Shah compatible = "riscv,cpu-intc"; 9557985788SYash Shah interrupt-controller; 9657985788SYash Shah }; 9757985788SYash Shah }; 9857985788SYash Shah cpu3: cpu@3 { 9957985788SYash Shah compatible = "sifive,bullet0", "riscv"; 10057985788SYash Shah d-cache-block-size = <64>; 10157985788SYash Shah d-cache-sets = <64>; 10257985788SYash Shah d-cache-size = <32768>; 10357985788SYash Shah d-tlb-sets = <1>; 10457985788SYash Shah d-tlb-size = <40>; 10557985788SYash Shah device_type = "cpu"; 10657985788SYash Shah i-cache-block-size = <64>; 10757985788SYash Shah i-cache-sets = <128>; 10857985788SYash Shah i-cache-size = <32768>; 10957985788SYash Shah i-tlb-sets = <1>; 11057985788SYash Shah i-tlb-size = <40>; 11157985788SYash Shah mmu-type = "riscv,sv39"; 11257985788SYash Shah next-level-cache = <&ccache>; 11357985788SYash Shah reg = <0x3>; 11457985788SYash Shah riscv,isa = "rv64imafdc"; 115*a54f4272SConor Dooley riscv,isa-base = "rv64i"; 116*a54f4272SConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 117*a54f4272SConor Dooley "zifencei", "zihpm"; 11857985788SYash Shah tlb-split; 11957985788SYash Shah cpu3_intc: interrupt-controller { 12057985788SYash Shah #interrupt-cells = <1>; 12157985788SYash Shah compatible = "riscv,cpu-intc"; 12257985788SYash Shah interrupt-controller; 12357985788SYash Shah }; 12457985788SYash Shah }; 12557985788SYash Shah cpu4: cpu@4 { 12657985788SYash Shah compatible = "sifive,bullet0", "riscv"; 12757985788SYash Shah d-cache-block-size = <64>; 12857985788SYash Shah d-cache-sets = <64>; 12957985788SYash Shah d-cache-size = <32768>; 13057985788SYash Shah d-tlb-sets = <1>; 13157985788SYash Shah d-tlb-size = <40>; 13257985788SYash Shah device_type = "cpu"; 13357985788SYash Shah i-cache-block-size = <64>; 13457985788SYash Shah i-cache-sets = <128>; 13557985788SYash Shah i-cache-size = <32768>; 13657985788SYash Shah i-tlb-sets = <1>; 13757985788SYash Shah i-tlb-size = <40>; 13857985788SYash Shah mmu-type = "riscv,sv39"; 13957985788SYash Shah next-level-cache = <&ccache>; 14057985788SYash Shah reg = <0x4>; 14157985788SYash Shah riscv,isa = "rv64imafdc"; 142*a54f4272SConor Dooley riscv,isa-base = "rv64i"; 143*a54f4272SConor Dooley riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 144*a54f4272SConor Dooley "zifencei", "zihpm"; 14557985788SYash Shah tlb-split; 14657985788SYash Shah cpu4_intc: interrupt-controller { 14757985788SYash Shah #interrupt-cells = <1>; 14857985788SYash Shah compatible = "riscv,cpu-intc"; 14957985788SYash Shah interrupt-controller; 15057985788SYash Shah }; 15157985788SYash Shah }; 152bf6cd1c0SConor Dooley 153bf6cd1c0SConor Dooley cpu-map { 154bf6cd1c0SConor Dooley cluster0 { 155bf6cd1c0SConor Dooley core0 { 156bf6cd1c0SConor Dooley cpu = <&cpu0>; 157bf6cd1c0SConor Dooley }; 158bf6cd1c0SConor Dooley 159bf6cd1c0SConor Dooley core1 { 160bf6cd1c0SConor Dooley cpu = <&cpu1>; 161bf6cd1c0SConor Dooley }; 162bf6cd1c0SConor Dooley 163bf6cd1c0SConor Dooley core2 { 164bf6cd1c0SConor Dooley cpu = <&cpu2>; 165bf6cd1c0SConor Dooley }; 166bf6cd1c0SConor Dooley 167bf6cd1c0SConor Dooley core3 { 168bf6cd1c0SConor Dooley cpu = <&cpu3>; 169bf6cd1c0SConor Dooley }; 170bf6cd1c0SConor Dooley 171bf6cd1c0SConor Dooley core4 { 172bf6cd1c0SConor Dooley cpu = <&cpu4>; 173bf6cd1c0SConor Dooley }; 174bf6cd1c0SConor Dooley }; 175bf6cd1c0SConor Dooley }; 17657985788SYash Shah }; 17757985788SYash Shah soc { 17857985788SYash Shah #address-cells = <2>; 17957985788SYash Shah #size-cells = <2>; 18057985788SYash Shah compatible = "simple-bus"; 18157985788SYash Shah ranges; 18257985788SYash Shah plic0: interrupt-controller@c000000 { 18357985788SYash Shah #interrupt-cells = <1>; 18457985788SYash Shah #address-cells = <0>; 18557985788SYash Shah compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0"; 18657985788SYash Shah reg = <0x0 0xc000000 0x0 0x4000000>; 18757985788SYash Shah riscv,ndev = <69>; 18857985788SYash Shah interrupt-controller; 189cc79be0eSGeert Uytterhoeven interrupts-extended = 190cc79be0eSGeert Uytterhoeven <&cpu0_intc 0xffffffff>, 191cc79be0eSGeert Uytterhoeven <&cpu1_intc 0xffffffff>, <&cpu1_intc 9>, 192cc79be0eSGeert Uytterhoeven <&cpu2_intc 0xffffffff>, <&cpu2_intc 9>, 193cc79be0eSGeert Uytterhoeven <&cpu3_intc 0xffffffff>, <&cpu3_intc 9>, 194cc79be0eSGeert Uytterhoeven <&cpu4_intc 0xffffffff>, <&cpu4_intc 9>; 19557985788SYash Shah }; 19657985788SYash Shah prci: clock-controller@10000000 { 19757985788SYash Shah compatible = "sifive,fu740-c000-prci"; 19857985788SYash Shah reg = <0x0 0x10000000 0x0 0x1000>; 19957985788SYash Shah clocks = <&hfclk>, <&rtcclk>; 20057985788SYash Shah #clock-cells = <1>; 201ae80d514SGreentime Hu #reset-cells = <1>; 20257985788SYash Shah }; 20357985788SYash Shah uart0: serial@10010000 { 20457985788SYash Shah compatible = "sifive,fu740-c000-uart", "sifive,uart0"; 20557985788SYash Shah reg = <0x0 0x10010000 0x0 0x1000>; 20657985788SYash Shah interrupt-parent = <&plic0>; 20757985788SYash Shah interrupts = <39>; 208990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 20957985788SYash Shah status = "disabled"; 21057985788SYash Shah }; 21157985788SYash Shah uart1: serial@10011000 { 21257985788SYash Shah compatible = "sifive,fu740-c000-uart", "sifive,uart0"; 21357985788SYash Shah reg = <0x0 0x10011000 0x0 0x1000>; 21457985788SYash Shah interrupt-parent = <&plic0>; 21557985788SYash Shah interrupts = <40>; 216990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 21757985788SYash Shah status = "disabled"; 21857985788SYash Shah }; 21957985788SYash Shah i2c0: i2c@10030000 { 22057985788SYash Shah compatible = "sifive,fu740-c000-i2c", "sifive,i2c0"; 22157985788SYash Shah reg = <0x0 0x10030000 0x0 0x1000>; 22257985788SYash Shah interrupt-parent = <&plic0>; 22357985788SYash Shah interrupts = <52>; 224990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 22557985788SYash Shah reg-shift = <2>; 22657985788SYash Shah reg-io-width = <1>; 22757985788SYash Shah #address-cells = <1>; 22857985788SYash Shah #size-cells = <0>; 22957985788SYash Shah status = "disabled"; 23057985788SYash Shah }; 23157985788SYash Shah i2c1: i2c@10031000 { 23257985788SYash Shah compatible = "sifive,fu740-c000-i2c", "sifive,i2c0"; 23357985788SYash Shah reg = <0x0 0x10031000 0x0 0x1000>; 23457985788SYash Shah interrupt-parent = <&plic0>; 23557985788SYash Shah interrupts = <53>; 236990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 23757985788SYash Shah reg-shift = <2>; 23857985788SYash Shah reg-io-width = <1>; 23957985788SYash Shah #address-cells = <1>; 24057985788SYash Shah #size-cells = <0>; 24157985788SYash Shah status = "disabled"; 24257985788SYash Shah }; 24357985788SYash Shah qspi0: spi@10040000 { 24457985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 24557985788SYash Shah reg = <0x0 0x10040000 0x0 0x1000>, 24657985788SYash Shah <0x0 0x20000000 0x0 0x10000000>; 24757985788SYash Shah interrupt-parent = <&plic0>; 24857985788SYash Shah interrupts = <41>; 249990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 25057985788SYash Shah #address-cells = <1>; 25157985788SYash Shah #size-cells = <0>; 25257985788SYash Shah status = "disabled"; 25357985788SYash Shah }; 25457985788SYash Shah qspi1: spi@10041000 { 25557985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 25657985788SYash Shah reg = <0x0 0x10041000 0x0 0x1000>, 25757985788SYash Shah <0x0 0x30000000 0x0 0x10000000>; 25857985788SYash Shah interrupt-parent = <&plic0>; 25957985788SYash Shah interrupts = <42>; 260990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 26157985788SYash Shah #address-cells = <1>; 26257985788SYash Shah #size-cells = <0>; 26357985788SYash Shah status = "disabled"; 26457985788SYash Shah }; 26557985788SYash Shah spi0: spi@10050000 { 26657985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 26757985788SYash Shah reg = <0x0 0x10050000 0x0 0x1000>; 26857985788SYash Shah interrupt-parent = <&plic0>; 26957985788SYash Shah interrupts = <43>; 270990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 27157985788SYash Shah #address-cells = <1>; 27257985788SYash Shah #size-cells = <0>; 27357985788SYash Shah status = "disabled"; 27457985788SYash Shah }; 27557985788SYash Shah eth0: ethernet@10090000 { 27657985788SYash Shah compatible = "sifive,fu540-c000-gem"; 27757985788SYash Shah interrupt-parent = <&plic0>; 27857985788SYash Shah interrupts = <55>; 27957985788SYash Shah reg = <0x0 0x10090000 0x0 0x2000>, 28057985788SYash Shah <0x0 0x100a0000 0x0 0x1000>; 28157985788SYash Shah local-mac-address = [00 00 00 00 00 00]; 28257985788SYash Shah clock-names = "pclk", "hclk"; 283990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_GEMGXLPLL>, 284990d627fSZong Li <&prci FU740_PRCI_CLK_GEMGXLPLL>; 28557985788SYash Shah #address-cells = <1>; 28657985788SYash Shah #size-cells = <0>; 28757985788SYash Shah status = "disabled"; 28857985788SYash Shah }; 28957985788SYash Shah pwm0: pwm@10020000 { 29057985788SYash Shah compatible = "sifive,fu740-c000-pwm", "sifive,pwm0"; 29157985788SYash Shah reg = <0x0 0x10020000 0x0 0x1000>; 29257985788SYash Shah interrupt-parent = <&plic0>; 29357985788SYash Shah interrupts = <44>, <45>, <46>, <47>; 294990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 29557985788SYash Shah #pwm-cells = <3>; 29657985788SYash Shah status = "disabled"; 29757985788SYash Shah }; 29857985788SYash Shah pwm1: pwm@10021000 { 29957985788SYash Shah compatible = "sifive,fu740-c000-pwm", "sifive,pwm0"; 30057985788SYash Shah reg = <0x0 0x10021000 0x0 0x1000>; 30157985788SYash Shah interrupt-parent = <&plic0>; 30257985788SYash Shah interrupts = <48>, <49>, <50>, <51>; 303990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 30457985788SYash Shah #pwm-cells = <3>; 30557985788SYash Shah status = "disabled"; 30657985788SYash Shah }; 30757985788SYash Shah ccache: cache-controller@2010000 { 30857985788SYash Shah compatible = "sifive,fu740-c000-ccache", "cache"; 30957985788SYash Shah cache-block-size = <64>; 31057985788SYash Shah cache-level = <2>; 31157985788SYash Shah cache-sets = <2048>; 31257985788SYash Shah cache-size = <2097152>; 31357985788SYash Shah cache-unified; 31457985788SYash Shah interrupt-parent = <&plic0>; 315cc79be0eSGeert Uytterhoeven interrupts = <19>, <21>, <22>, <20>; 31657985788SYash Shah reg = <0x0 0x2010000 0x0 0x1000>; 31757985788SYash Shah }; 31857985788SYash Shah gpio: gpio@10060000 { 31957985788SYash Shah compatible = "sifive,fu740-c000-gpio", "sifive,gpio0"; 32057985788SYash Shah interrupt-parent = <&plic0>; 32157985788SYash Shah interrupts = <23>, <24>, <25>, <26>, <27>, <28>, <29>, 32257985788SYash Shah <30>, <31>, <32>, <33>, <34>, <35>, <36>, 32357985788SYash Shah <37>, <38>; 32457985788SYash Shah reg = <0x0 0x10060000 0x0 0x1000>; 32557985788SYash Shah gpio-controller; 32657985788SYash Shah #gpio-cells = <2>; 32757985788SYash Shah interrupt-controller; 32857985788SYash Shah #interrupt-cells = <2>; 329990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCLK>; 33057985788SYash Shah status = "disabled"; 33157985788SYash Shah }; 332ae80d514SGreentime Hu pcie@e00000000 { 333ae80d514SGreentime Hu compatible = "sifive,fu740-pcie"; 334ae80d514SGreentime Hu #address-cells = <3>; 335ae80d514SGreentime Hu #size-cells = <2>; 336ae80d514SGreentime Hu #interrupt-cells = <1>; 337ae80d514SGreentime Hu reg = <0xe 0x00000000 0x0 0x80000000>, 338ae80d514SGreentime Hu <0xd 0xf0000000 0x0 0x10000000>, 339ae80d514SGreentime Hu <0x0 0x100d0000 0x0 0x1000>; 340ae80d514SGreentime Hu reg-names = "dbi", "config", "mgmt"; 341ae80d514SGreentime Hu device_type = "pci"; 342ae80d514SGreentime Hu dma-coherent; 343ae80d514SGreentime Hu bus-range = <0x0 0xff>; 344ae80d514SGreentime Hu ranges = <0x81000000 0x0 0x60080000 0x0 0x60080000 0x0 0x10000>, /* I/O */ 345ae80d514SGreentime Hu <0x82000000 0x0 0x60090000 0x0 0x60090000 0x0 0xff70000>, /* mem */ 34643d5f5d6SBen Dooks <0x82000000 0x0 0x70000000 0x0 0x70000000 0x0 0x10000000>, /* mem */ 347ae80d514SGreentime Hu <0xc3000000 0x20 0x00000000 0x20 0x00000000 0x20 0x00000000>; /* mem prefetchable */ 348ae80d514SGreentime Hu num-lanes = <0x8>; 349ae80d514SGreentime Hu interrupts = <56>, <57>, <58>, <59>, <60>, <61>, <62>, <63>, <64>; 350ae80d514SGreentime Hu interrupt-names = "msi", "inta", "intb", "intc", "intd"; 351ae80d514SGreentime Hu interrupt-parent = <&plic0>; 352ae80d514SGreentime Hu interrupt-map-mask = <0x0 0x0 0x0 0x7>; 353ae80d514SGreentime Hu interrupt-map = <0x0 0x0 0x0 0x1 &plic0 57>, 354ae80d514SGreentime Hu <0x0 0x0 0x0 0x2 &plic0 58>, 355ae80d514SGreentime Hu <0x0 0x0 0x0 0x3 &plic0 59>, 356ae80d514SGreentime Hu <0x0 0x0 0x0 0x4 &plic0 60>; 357ae80d514SGreentime Hu clock-names = "pcie_aux"; 358990d627fSZong Li clocks = <&prci FU740_PRCI_CLK_PCIE_AUX>; 359ae80d514SGreentime Hu pwren-gpios = <&gpio 5 0>; 360ae80d514SGreentime Hu reset-gpios = <&gpio 8 0>; 361ae80d514SGreentime Hu resets = <&prci 4>; 362ae80d514SGreentime Hu status = "okay"; 363ae80d514SGreentime Hu }; 36457985788SYash Shah }; 36557985788SYash Shah}; 366