1*57985788SYash Shah// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2*57985788SYash Shah/* Copyright (c) 2020 SiFive, Inc */ 3*57985788SYash Shah 4*57985788SYash Shah/dts-v1/; 5*57985788SYash Shah 6*57985788SYash Shah#include <dt-bindings/clock/sifive-fu740-prci.h> 7*57985788SYash Shah 8*57985788SYash Shah/ { 9*57985788SYash Shah #address-cells = <2>; 10*57985788SYash Shah #size-cells = <2>; 11*57985788SYash Shah compatible = "sifive,fu740-c000", "sifive,fu740"; 12*57985788SYash Shah 13*57985788SYash Shah aliases { 14*57985788SYash Shah serial0 = &uart0; 15*57985788SYash Shah serial1 = &uart1; 16*57985788SYash Shah ethernet0 = ð0; 17*57985788SYash Shah }; 18*57985788SYash Shah 19*57985788SYash Shah chosen { 20*57985788SYash Shah }; 21*57985788SYash Shah 22*57985788SYash Shah cpus { 23*57985788SYash Shah #address-cells = <1>; 24*57985788SYash Shah #size-cells = <0>; 25*57985788SYash Shah cpu0: cpu@0 { 26*57985788SYash Shah compatible = "sifive,bullet0", "riscv"; 27*57985788SYash Shah device_type = "cpu"; 28*57985788SYash Shah i-cache-block-size = <64>; 29*57985788SYash Shah i-cache-sets = <128>; 30*57985788SYash Shah i-cache-size = <16384>; 31*57985788SYash Shah next-level-cache = <&ccache>; 32*57985788SYash Shah reg = <0x0>; 33*57985788SYash Shah riscv,isa = "rv64imac"; 34*57985788SYash Shah status = "disabled"; 35*57985788SYash Shah cpu0_intc: interrupt-controller { 36*57985788SYash Shah #interrupt-cells = <1>; 37*57985788SYash Shah compatible = "riscv,cpu-intc"; 38*57985788SYash Shah interrupt-controller; 39*57985788SYash Shah }; 40*57985788SYash Shah }; 41*57985788SYash Shah cpu1: cpu@1 { 42*57985788SYash Shah compatible = "sifive,bullet0", "riscv"; 43*57985788SYash Shah d-cache-block-size = <64>; 44*57985788SYash Shah d-cache-sets = <64>; 45*57985788SYash Shah d-cache-size = <32768>; 46*57985788SYash Shah d-tlb-sets = <1>; 47*57985788SYash Shah d-tlb-size = <40>; 48*57985788SYash Shah device_type = "cpu"; 49*57985788SYash Shah i-cache-block-size = <64>; 50*57985788SYash Shah i-cache-sets = <128>; 51*57985788SYash Shah i-cache-size = <32768>; 52*57985788SYash Shah i-tlb-sets = <1>; 53*57985788SYash Shah i-tlb-size = <40>; 54*57985788SYash Shah mmu-type = "riscv,sv39"; 55*57985788SYash Shah next-level-cache = <&ccache>; 56*57985788SYash Shah reg = <0x1>; 57*57985788SYash Shah riscv,isa = "rv64imafdc"; 58*57985788SYash Shah tlb-split; 59*57985788SYash Shah cpu1_intc: interrupt-controller { 60*57985788SYash Shah #interrupt-cells = <1>; 61*57985788SYash Shah compatible = "riscv,cpu-intc"; 62*57985788SYash Shah interrupt-controller; 63*57985788SYash Shah }; 64*57985788SYash Shah }; 65*57985788SYash Shah cpu2: cpu@2 { 66*57985788SYash Shah compatible = "sifive,bullet0", "riscv"; 67*57985788SYash Shah d-cache-block-size = <64>; 68*57985788SYash Shah d-cache-sets = <64>; 69*57985788SYash Shah d-cache-size = <32768>; 70*57985788SYash Shah d-tlb-sets = <1>; 71*57985788SYash Shah d-tlb-size = <40>; 72*57985788SYash Shah device_type = "cpu"; 73*57985788SYash Shah i-cache-block-size = <64>; 74*57985788SYash Shah i-cache-sets = <128>; 75*57985788SYash Shah i-cache-size = <32768>; 76*57985788SYash Shah i-tlb-sets = <1>; 77*57985788SYash Shah i-tlb-size = <40>; 78*57985788SYash Shah mmu-type = "riscv,sv39"; 79*57985788SYash Shah next-level-cache = <&ccache>; 80*57985788SYash Shah reg = <0x2>; 81*57985788SYash Shah riscv,isa = "rv64imafdc"; 82*57985788SYash Shah tlb-split; 83*57985788SYash Shah cpu2_intc: interrupt-controller { 84*57985788SYash Shah #interrupt-cells = <1>; 85*57985788SYash Shah compatible = "riscv,cpu-intc"; 86*57985788SYash Shah interrupt-controller; 87*57985788SYash Shah }; 88*57985788SYash Shah }; 89*57985788SYash Shah cpu3: cpu@3 { 90*57985788SYash Shah compatible = "sifive,bullet0", "riscv"; 91*57985788SYash Shah d-cache-block-size = <64>; 92*57985788SYash Shah d-cache-sets = <64>; 93*57985788SYash Shah d-cache-size = <32768>; 94*57985788SYash Shah d-tlb-sets = <1>; 95*57985788SYash Shah d-tlb-size = <40>; 96*57985788SYash Shah device_type = "cpu"; 97*57985788SYash Shah i-cache-block-size = <64>; 98*57985788SYash Shah i-cache-sets = <128>; 99*57985788SYash Shah i-cache-size = <32768>; 100*57985788SYash Shah i-tlb-sets = <1>; 101*57985788SYash Shah i-tlb-size = <40>; 102*57985788SYash Shah mmu-type = "riscv,sv39"; 103*57985788SYash Shah next-level-cache = <&ccache>; 104*57985788SYash Shah reg = <0x3>; 105*57985788SYash Shah riscv,isa = "rv64imafdc"; 106*57985788SYash Shah tlb-split; 107*57985788SYash Shah cpu3_intc: interrupt-controller { 108*57985788SYash Shah #interrupt-cells = <1>; 109*57985788SYash Shah compatible = "riscv,cpu-intc"; 110*57985788SYash Shah interrupt-controller; 111*57985788SYash Shah }; 112*57985788SYash Shah }; 113*57985788SYash Shah cpu4: cpu@4 { 114*57985788SYash Shah compatible = "sifive,bullet0", "riscv"; 115*57985788SYash Shah d-cache-block-size = <64>; 116*57985788SYash Shah d-cache-sets = <64>; 117*57985788SYash Shah d-cache-size = <32768>; 118*57985788SYash Shah d-tlb-sets = <1>; 119*57985788SYash Shah d-tlb-size = <40>; 120*57985788SYash Shah device_type = "cpu"; 121*57985788SYash Shah i-cache-block-size = <64>; 122*57985788SYash Shah i-cache-sets = <128>; 123*57985788SYash Shah i-cache-size = <32768>; 124*57985788SYash Shah i-tlb-sets = <1>; 125*57985788SYash Shah i-tlb-size = <40>; 126*57985788SYash Shah mmu-type = "riscv,sv39"; 127*57985788SYash Shah next-level-cache = <&ccache>; 128*57985788SYash Shah reg = <0x4>; 129*57985788SYash Shah riscv,isa = "rv64imafdc"; 130*57985788SYash Shah tlb-split; 131*57985788SYash Shah cpu4_intc: interrupt-controller { 132*57985788SYash Shah #interrupt-cells = <1>; 133*57985788SYash Shah compatible = "riscv,cpu-intc"; 134*57985788SYash Shah interrupt-controller; 135*57985788SYash Shah }; 136*57985788SYash Shah }; 137*57985788SYash Shah }; 138*57985788SYash Shah soc { 139*57985788SYash Shah #address-cells = <2>; 140*57985788SYash Shah #size-cells = <2>; 141*57985788SYash Shah compatible = "simple-bus"; 142*57985788SYash Shah ranges; 143*57985788SYash Shah plic0: interrupt-controller@c000000 { 144*57985788SYash Shah #interrupt-cells = <1>; 145*57985788SYash Shah #address-cells = <0>; 146*57985788SYash Shah compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0"; 147*57985788SYash Shah reg = <0x0 0xc000000 0x0 0x4000000>; 148*57985788SYash Shah riscv,ndev = <69>; 149*57985788SYash Shah interrupt-controller; 150*57985788SYash Shah interrupts-extended = < 151*57985788SYash Shah &cpu0_intc 0xffffffff 152*57985788SYash Shah &cpu1_intc 0xffffffff &cpu1_intc 9 153*57985788SYash Shah &cpu2_intc 0xffffffff &cpu2_intc 9 154*57985788SYash Shah &cpu3_intc 0xffffffff &cpu3_intc 9 155*57985788SYash Shah &cpu4_intc 0xffffffff &cpu4_intc 9>; 156*57985788SYash Shah }; 157*57985788SYash Shah prci: clock-controller@10000000 { 158*57985788SYash Shah compatible = "sifive,fu740-c000-prci"; 159*57985788SYash Shah reg = <0x0 0x10000000 0x0 0x1000>; 160*57985788SYash Shah clocks = <&hfclk>, <&rtcclk>; 161*57985788SYash Shah #clock-cells = <1>; 162*57985788SYash Shah }; 163*57985788SYash Shah uart0: serial@10010000 { 164*57985788SYash Shah compatible = "sifive,fu740-c000-uart", "sifive,uart0"; 165*57985788SYash Shah reg = <0x0 0x10010000 0x0 0x1000>; 166*57985788SYash Shah interrupt-parent = <&plic0>; 167*57985788SYash Shah interrupts = <39>; 168*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 169*57985788SYash Shah status = "disabled"; 170*57985788SYash Shah }; 171*57985788SYash Shah uart1: serial@10011000 { 172*57985788SYash Shah compatible = "sifive,fu740-c000-uart", "sifive,uart0"; 173*57985788SYash Shah reg = <0x0 0x10011000 0x0 0x1000>; 174*57985788SYash Shah interrupt-parent = <&plic0>; 175*57985788SYash Shah interrupts = <40>; 176*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 177*57985788SYash Shah status = "disabled"; 178*57985788SYash Shah }; 179*57985788SYash Shah i2c0: i2c@10030000 { 180*57985788SYash Shah compatible = "sifive,fu740-c000-i2c", "sifive,i2c0"; 181*57985788SYash Shah reg = <0x0 0x10030000 0x0 0x1000>; 182*57985788SYash Shah interrupt-parent = <&plic0>; 183*57985788SYash Shah interrupts = <52>; 184*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 185*57985788SYash Shah reg-shift = <2>; 186*57985788SYash Shah reg-io-width = <1>; 187*57985788SYash Shah #address-cells = <1>; 188*57985788SYash Shah #size-cells = <0>; 189*57985788SYash Shah status = "disabled"; 190*57985788SYash Shah }; 191*57985788SYash Shah i2c1: i2c@10031000 { 192*57985788SYash Shah compatible = "sifive,fu740-c000-i2c", "sifive,i2c0"; 193*57985788SYash Shah reg = <0x0 0x10031000 0x0 0x1000>; 194*57985788SYash Shah interrupt-parent = <&plic0>; 195*57985788SYash Shah interrupts = <53>; 196*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 197*57985788SYash Shah reg-shift = <2>; 198*57985788SYash Shah reg-io-width = <1>; 199*57985788SYash Shah #address-cells = <1>; 200*57985788SYash Shah #size-cells = <0>; 201*57985788SYash Shah status = "disabled"; 202*57985788SYash Shah }; 203*57985788SYash Shah qspi0: spi@10040000 { 204*57985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 205*57985788SYash Shah reg = <0x0 0x10040000 0x0 0x1000>, 206*57985788SYash Shah <0x0 0x20000000 0x0 0x10000000>; 207*57985788SYash Shah interrupt-parent = <&plic0>; 208*57985788SYash Shah interrupts = <41>; 209*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 210*57985788SYash Shah #address-cells = <1>; 211*57985788SYash Shah #size-cells = <0>; 212*57985788SYash Shah status = "disabled"; 213*57985788SYash Shah }; 214*57985788SYash Shah qspi1: spi@10041000 { 215*57985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 216*57985788SYash Shah reg = <0x0 0x10041000 0x0 0x1000>, 217*57985788SYash Shah <0x0 0x30000000 0x0 0x10000000>; 218*57985788SYash Shah interrupt-parent = <&plic0>; 219*57985788SYash Shah interrupts = <42>; 220*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 221*57985788SYash Shah #address-cells = <1>; 222*57985788SYash Shah #size-cells = <0>; 223*57985788SYash Shah status = "disabled"; 224*57985788SYash Shah }; 225*57985788SYash Shah spi0: spi@10050000 { 226*57985788SYash Shah compatible = "sifive,fu740-c000-spi", "sifive,spi0"; 227*57985788SYash Shah reg = <0x0 0x10050000 0x0 0x1000>; 228*57985788SYash Shah interrupt-parent = <&plic0>; 229*57985788SYash Shah interrupts = <43>; 230*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 231*57985788SYash Shah #address-cells = <1>; 232*57985788SYash Shah #size-cells = <0>; 233*57985788SYash Shah status = "disabled"; 234*57985788SYash Shah }; 235*57985788SYash Shah eth0: ethernet@10090000 { 236*57985788SYash Shah compatible = "sifive,fu540-c000-gem"; 237*57985788SYash Shah interrupt-parent = <&plic0>; 238*57985788SYash Shah interrupts = <55>; 239*57985788SYash Shah reg = <0x0 0x10090000 0x0 0x2000>, 240*57985788SYash Shah <0x0 0x100a0000 0x0 0x1000>; 241*57985788SYash Shah local-mac-address = [00 00 00 00 00 00]; 242*57985788SYash Shah clock-names = "pclk", "hclk"; 243*57985788SYash Shah clocks = <&prci PRCI_CLK_GEMGXLPLL>, 244*57985788SYash Shah <&prci PRCI_CLK_GEMGXLPLL>; 245*57985788SYash Shah #address-cells = <1>; 246*57985788SYash Shah #size-cells = <0>; 247*57985788SYash Shah status = "disabled"; 248*57985788SYash Shah }; 249*57985788SYash Shah pwm0: pwm@10020000 { 250*57985788SYash Shah compatible = "sifive,fu740-c000-pwm", "sifive,pwm0"; 251*57985788SYash Shah reg = <0x0 0x10020000 0x0 0x1000>; 252*57985788SYash Shah interrupt-parent = <&plic0>; 253*57985788SYash Shah interrupts = <44>, <45>, <46>, <47>; 254*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 255*57985788SYash Shah #pwm-cells = <3>; 256*57985788SYash Shah status = "disabled"; 257*57985788SYash Shah }; 258*57985788SYash Shah pwm1: pwm@10021000 { 259*57985788SYash Shah compatible = "sifive,fu740-c000-pwm", "sifive,pwm0"; 260*57985788SYash Shah reg = <0x0 0x10021000 0x0 0x1000>; 261*57985788SYash Shah interrupt-parent = <&plic0>; 262*57985788SYash Shah interrupts = <48>, <49>, <50>, <51>; 263*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 264*57985788SYash Shah #pwm-cells = <3>; 265*57985788SYash Shah status = "disabled"; 266*57985788SYash Shah }; 267*57985788SYash Shah ccache: cache-controller@2010000 { 268*57985788SYash Shah compatible = "sifive,fu740-c000-ccache", "cache"; 269*57985788SYash Shah cache-block-size = <64>; 270*57985788SYash Shah cache-level = <2>; 271*57985788SYash Shah cache-sets = <2048>; 272*57985788SYash Shah cache-size = <2097152>; 273*57985788SYash Shah cache-unified; 274*57985788SYash Shah interrupt-parent = <&plic0>; 275*57985788SYash Shah interrupts = <19 20 21 22>; 276*57985788SYash Shah reg = <0x0 0x2010000 0x0 0x1000>; 277*57985788SYash Shah }; 278*57985788SYash Shah gpio: gpio@10060000 { 279*57985788SYash Shah compatible = "sifive,fu740-c000-gpio", "sifive,gpio0"; 280*57985788SYash Shah interrupt-parent = <&plic0>; 281*57985788SYash Shah interrupts = <23>, <24>, <25>, <26>, <27>, <28>, <29>, 282*57985788SYash Shah <30>, <31>, <32>, <33>, <34>, <35>, <36>, 283*57985788SYash Shah <37>, <38>; 284*57985788SYash Shah reg = <0x0 0x10060000 0x0 0x1000>; 285*57985788SYash Shah gpio-controller; 286*57985788SYash Shah #gpio-cells = <2>; 287*57985788SYash Shah interrupt-controller; 288*57985788SYash Shah #interrupt-cells = <2>; 289*57985788SYash Shah clocks = <&prci PRCI_CLK_PCLK>; 290*57985788SYash Shah status = "disabled"; 291*57985788SYash Shah }; 292*57985788SYash Shah }; 293*57985788SYash Shah}; 294