/* * Copyright (c) 2018 Linaro Limited * * SPDX-License-Identifier: Apache-2.0 */ #include #include / { #address-cells = <1>; #size-cells = <1>; cpus { #address-cells = <1>; #size-cells = <0>; cpu@0 { clock-frequency = <0>; compatible = "sifive,e51", "riscv"; device_type = "cpu"; reg = < 0x0 >; riscv,isa = "rv64imac_zicsr_zifencei"; hlic0: interrupt-controller { compatible = "riscv,cpu-intc"; #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; }; }; cpu@1 { clock-frequency = <0>; compatible = "sifive,u54", "riscv"; device_type = "cpu"; reg = < 0x1 >; riscv,isa = "rv64gc"; hlic1: interrupt-controller { compatible = "riscv,cpu-intc"; #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; }; }; cpu@2 { clock-frequency = <0>; compatible = "sifive,u54", "riscv"; device_type = "cpu"; reg = < 0x2 >; riscv,isa = "rv64gc"; hlic2: interrupt-controller { compatible = "riscv,cpu-intc"; #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; }; }; cpu@3 { clock-frequency = <0>; compatible = "sifive,u54", "riscv"; device_type = "cpu"; reg = < 0x3 >; riscv,isa = "rv64gc"; hlic3: interrupt-controller { compatible = "riscv,cpu-intc"; #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; }; }; cpu@4 { clock-frequency = <0>; compatible = "sifive,u54", "riscv"; device_type = "cpu"; reg = < 0x4 >; riscv,isa = "rv64gc"; hlic4: interrupt-controller { compatible = "riscv,cpu-intc"; #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; }; }; }; soc { #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; ranges; sram0: memory@8000000 { compatible = "mmio-sram"; reg = <0x8000000 0x80000>; }; sram1: memory@80000000 { compatible = "mmio-sram"; reg = <0x80000000 0x800000>; }; clint: clint@2000000 { compatible = "sifive,clint0"; interrupts-extended = <&hlic0 3 &hlic0 7 &hlic1 3 &hlic1 7 &hlic2 3 &hlic2 7 &hlic3 3 &hlic3 7 &hlic4 3 &hlic4 7>; interrupt-names = "soft0", "timer0", "soft1", "timer1", "soft2", "timer2", "soft3", "timer3", "soft4", "timer4"; reg = <0x2000000 0x10000>; }; plic: interrupt-controller@c000000 { compatible = "sifive,plic-1.0.0"; #interrupt-cells = <2>; #address-cells = <1>; interrupt-controller; interrupts-extended = <&hlic0 11 &hlic1 11 &hlic1 9 &hlic2 11 &hlic2 9 &hlic3 11 &hlic3 9 &hlic4 11 &hlic4 9>; reg = <0x0c000000 0x04000000>; riscv,max-priority = <7>; riscv,ndev = <186>; }; mbox: mailbox@37020000 { compatible = "microchip,mpfs-mailbox"; reg = <0x37020000 0x58>, <0x2000318C 0x40>, <0x37020800 0x100>; interrupt-parent = <&plic>; interrupts = <96 1>; #mbox-cells = <1>; status = "disabled"; }; uart0: uart@20000000 { compatible = "ns16550"; reg = <0x20000000 0x1000>; clock-frequency = <150000000>; current-speed = <115200>; interrupt-parent = <&plic>; interrupts = <90 1>; reg-shift = <2>; status = "disabled"; }; uart1: uart@20100000 { compatible = "ns16550"; reg = <0x20100000 0x1000>; clock-frequency = <150000000>; current-speed = <115200>; interrupt-parent = <&plic>; interrupts = <91 1>; reg-shift = <2>; status = "disabled"; }; uart2: uart@20102000 { compatible = "ns16550"; reg = <0x20102000 0x1000>; clock-frequency = <150000000>; current-speed = <115200>; interrupt-parent = <&plic>; interrupts = <92 1>; reg-shift = <2>; status = "disabled"; }; uart3: uart@20104000 { compatible = "ns16550"; reg = <0x20104000 0x1000>; clock-frequency = <150000000>; current-speed = <115200>; interrupt-parent = <&plic>; interrupts = <93 1>; reg-shift = <2>; status = "disabled"; }; uart4: uart@20106000 { compatible = "ns16550"; reg = <0x20106000 0x1000>; clock-frequency = <150000000>; current-speed = <115200>; interrupt-parent = <&plic>; interrupts = <94 1>; reg-shift = <2>; status = "disabled"; }; qspi0: spi@21000000 { compatible = "microchip,mpfs-qspi"; #address-cells = <1>; #size-cells = <0>; reg = <0x21000000 0x1000>; interrupt-parent = <&plic>; interrupts = <85 1>; status = "disabled"; clock-frequency = <150000000>; }; spi1: spi@20109000 { compatible = "microchip,mpfs-spi"; #address-cells = <1>; #size-cells = <0>; reg = <0x20109000 0x1000>; interrupt-parent = <&plic>; interrupts = <55 1>; status = "disabled"; clock-frequency = <150000000>; }; syscontroller_qspi: spi@37020100 { compatible = "microchip,mpfs-qspi"; #address-cells = <1>; #size-cells = <0>; reg = <0x37020100 0x1000>; interrupt-parent = <&plic>; interrupts = <110 1>; status = "disabled"; clock-frequency = <150000000>; }; gpio0: gpio@20120000 { compatible = "microchip,mpfs-gpio"; reg = <0x20120000 0x1000>; interrupt-parent = <&plic>; interrupts = <51 1>; interrupt-controller; #interrupt-cells = <1>; gpio-controller; #gpio-cells = <2>; ngpios = <32>; status = "disabled"; }; gpio1: gpio@20121000 { compatible = "microchip,mpfs-gpio"; reg = <0x20121000 0x1000>; interrupt-parent = <&plic>; interrupts = <52 1>; interrupt-controller; #interrupt-cells = <1>; gpio-controller; #gpio-cells = <2>; ngpios = <32>; status = "disabled"; }; gpio2: gpio@20122000 { compatible = "microchip,mpfs-gpio"; reg = <0x20122000 0x1000>; interrupt-parent = <&plic>; interrupts = <53 1>; interrupt-controller; #interrupt-cells = <1>; gpio-controller; #gpio-cells = <2>; ngpios = <32>; status = "disabled"; }; i2c0: i2c@2010a000 { compatible = "microchip,mpfs-i2c"; reg = <0x2010a000 0x1000>; interrupt-parent = <&plic>; interrupts = <58 1>; #address-cells = <1>; #size-cells = <0>; clock-frequency = <100000>; status = "disabled"; }; i2c1: i2c@2010b000 { compatible = "microchip,mpfs-i2c"; reg = <0x2010b000 0x1000>; interrupt-parent = <&plic>; interrupts = <61 1>; #address-cells = <1>; #size-cells = <0>; clock-frequency = <100000>; status = "disabled"; }; }; };