/*
 * Copyright (c) 2021 Katsuhiro Suzuki
 *
 * SPDX-License-Identifier: Apache-2.0
 */

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

/ {
	#address-cells = <2>;
	#size-cells = <2>;
	compatible = "sifive,FU740-C000", "fu740-dev", "sifive-dev";
	model = "sifive,FU740";

	clocks {
		coreclk: core-clk {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <DT_FREQ_M(1000)>;
		};

		pclk: p-clk {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <DT_FREQ_K(125125)>;
		};
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu0: cpu@0 {
			compatible = "sifive,s7", "riscv";
			device_type = "cpu";
			reg = <0>;
			riscv,isa = "rv64imac_zicsr_zifencei";
			status = "okay";

			hlic: interrupt-controller {
				compatible = "riscv,cpu-intc";
				#address-cells = <0>;
				#interrupt-cells = <1>;
				interrupt-controller;
			};
		};
		cpu1: cpu@1 {
			compatible = "sifive,u74", "riscv";
			device_type = "cpu";
			mmu-type = "riscv,sv39";
			reg = <0x1>;
			riscv,isa = "rv64gc";

			cpu1_intc: interrupt-controller {
				compatible = "riscv,cpu-intc";
				#interrupt-cells = <1>;
				interrupt-controller;
			};
		};
		cpu2: cpu@2 {
			compatible = "sifive,u74", "riscv";
			device_type = "cpu";
			mmu-type = "riscv,sv39";
			reg = <0x2>;
			riscv,isa = "rv64gc";

			cpu2_intc: interrupt-controller {
				compatible = "riscv,cpu-intc";
				#interrupt-cells = <1>;
				interrupt-controller;
			};
		};
		cpu3: cpu@3 {
			compatible = "sifive,u74", "riscv";
			device_type = "cpu";
			mmu-type = "riscv,sv39";
			reg = <0x3>;
			riscv,isa = "rv64gc";

			cpu3_intc: interrupt-controller {
				compatible = "riscv,cpu-intc";
				#interrupt-cells = <1>;
				interrupt-controller;
			};
		};
		cpu4: cpu@4 {
			compatible = "sifive,u74", "riscv";
			device_type = "cpu";
			mmu-type = "riscv,sv39";
			reg = <0x4>;
			riscv,isa = "rv64gc";

			cpu4_intc: interrupt-controller {
				compatible = "riscv,cpu-intc";
				#interrupt-cells = <1>;
				interrupt-controller;
			};
		};
	};

	soc {
		#address-cells = <2>;
		#size-cells = <2>;
		compatible = "simple-bus";
		ranges;

		modeselect: rom@1000 {
			compatible = "sifive,modeselect0";
			reg = <0x0 0x1000 0x0 0x1000>;
			reg-names = "mem";
		};

		maskrom: rom@10000 {
			compatible = "sifive,maskrom0";
			reg = <0x0 0x10000 0x0 0x8000>;
			reg-names = "mem";
		};

		dtim: dtim@1000000 {
			compatible = "sifive,dtim0";
			reg = <0x0 0x1000000 0x0 0x2000>;
			reg-names = "mem";
		};

		clint: clint@2000000 {
			compatible = "sifive,clint0";
			interrupts-extended = <&hlic 3 &hlic 7>;
			reg = <0x0 0x2000000 0x0 0x10000>;
		};

		l2lim: l2lim@8000000 {
			compatible = "sifive,l2lim0";
			reg = <0x0 0x8000000 0x0 0x200000>;
			reg-names = "mem";
		};


		plic: interrupt-controller@c000000 {
			compatible = "sifive,plic-1.0.0";
			#address-cells = <0>;
			#interrupt-cells = <2>;
			interrupt-controller;
			interrupts-extended = <&hlic 11>;
			reg = <0x0 0x0c000000 0x0 0x04000000>;
			riscv,max-priority = <7>;
			riscv,ndev = <52>;
		};

		uart0: serial@10010000 {
			compatible = "sifive,uart0";
			interrupt-parent = <&plic>;
			interrupts = <39 1>;
			reg = <0x0 0x10010000 0x0 0x1000>;
			reg-names = "control";
			status = "disabled";
		};

		uart1: serial@10011000 {
			compatible = "sifive,uart0";
			interrupt-parent = <&plic>;
			interrupts = <40 1>;
			reg = <0x0 0x10011000 0x0 0x1000>;
			reg-names = "control";
			status = "disabled";
		};

		spi0: spi@10040000 {
			compatible = "sifive,spi0";
			interrupt-parent = <&plic>;
			interrupts = <41 1>;
			reg = <0x0 0x10040000 0x0 0x1000 0x0 0x20000000 0x0 0x10000000>;
			reg-names = "control", "mem";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi1: spi@10041000 {
			compatible = "sifive,spi0";
			interrupt-parent = <&plic>;
			interrupts = <42 1>;
			reg = <0x0 0x10041000 0x0 0x1000>;
			reg-names = "control";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi2: spi@10050000 {
			compatible = "sifive,spi0";
			interrupt-parent = <&plic>;
			interrupts = <43 1>;
			reg = <0x0 0x10050000 0x0 0x1000>;
			reg-names = "control";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
		dmc: dmc@100b0000 {
			compatible = "sifive,fu740-c000-ddr";
			reg = <0x0 0x100b0000 0x0 0x0800
			       0x0 0x100b2000 0x0 0x2000
			       0x0 0x100b8000 0x0 0x1000>;
			status = "disabled";
		};
	};
};
