/*
 * Copyright (c) 2018 Linaro Limited
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <skeleton.dtsi>
#include <zephyr/dt-bindings/gpio/gpio.h>

/ {
	#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";
		};
	};
};
