/* SPDX-License-Identifier: Apache-2.0 */

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

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "sifive,FE310G-0002-Z0-dev", "fe310-dev", "sifive-dev";
	model = "SiFive,FE310G-0002-Z0";
	clocks {
		coreclk: core-clk {
			#clock-cells = <0>;
			compatible = "fixed-clock";
			clock-frequency = <DT_FREQ_M(16)>;
		};

		tlclk: tl-clk {
			#clock-cells = <0>;
			compatible = "fixed-factor-clock";
			clocks = <&coreclk>;
			clock-div = <1>;
		};
	};
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu: cpu@0 {
			compatible = "riscv,sifive-e31";
			device_type = "cpu";
			reg = <0>;
			riscv,isa = "rv32imac";
			status = "okay";
			hlic: interrupt-controller {
				#interrupt-cells = <1>;
				compatible = "riscv,cpu-intc";
				interrupt-controller;
			};
		};
	};
	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "sifive,FE310G-0002-Z0-soc", "fe310-soc",
			"sifive-soc", "simple-bus";
		ranges;
		wdog0: wdog@10000000 {
			compatible = "sifive,wdt";
			interrupt-parent = <&plic>;
			interrupts = <1 1>;
			reg = <0x10000000 0x40>;
			reg-names = "control";
			label = "WDOG0";
		};
		aon: aon@10000040 {
			compatible = "sifive,aon0";
			interrupt-parent = <&plic>;
			interrupts = <2 1>;
			reg = <0x10000040 0x9c0>;
			reg-names = "control";
		};
		clint: clint@2000000 {
			#interrupt-cells = <1>;
			compatible = "riscv,clint0";
			interrupt-controller;
			interrupts-extended = <&hlic 3 &hlic 7>;
			reg = <0x2000000 0x10000>;
			reg-names = "control";
		};
		debug: debug-controller@0 {
			compatible = "sifive,debug-013", "riscv,debug-013";
			interrupts-extended = <&hlic 65535>;
			reg = <0x0 0x1000>;
			reg-names = "control";
		};
		dtim: dtim@80000000 {
			compatible = "sifive,dtim0";
			reg = <0x80000000 0x4000>;
			reg-names = "mem";
		};
		error-device@3000 {
			compatible = "sifive,error0";
			reg = <0x3000 0x1000>;
			reg-names = "mem";
		};
		gpio0: gpio@10012000 {
			compatible = "sifive,gpio0";
			gpio-controller;
			interrupt-parent = <&plic>;
			interrupts = <8 1>, <9 1>, <10 1>, <11 1>,
				<12 1>, <13 1>, <14 1>, <15 1>,
				<16 1>, <17 1>, <18 1>, <19 1>,
				<20 1>, <21 1>, <22 1>, <23 1>,
				<24 1>, <25 1>, <26 1>, <27 1>,
				<28 1>, <29 1>, <30 1>, <31 1>,
				<32 1>, <33 1>, <34 1>, <35 1>,
				<36 1>, <37 1>, <38 1>, <39 1>;
			reg = <0x10012000 0x1000>;
			reg-names = "control";
			label = "gpio_0";
			status = "disabled";
			#gpio-cells = <2>;

			#address-cells = <1>;
			#size-cells = <1>;
			ranges;

			pinctrl: pinctrl@10012038 {
				compatible = "sifive,pinctrl";
				reg = <0x10012038 0x8>;
			};
		};
		i2c0: i2c@10016000 {
			compatible = "sifive,i2c0";
			interrupt-parent = <&plic>;
			interrupts = <52 1>;
			reg = <0x10016000 0x1000>;
			reg-names = "control";
			label = "i2c_0";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
		plic: interrupt-controller@c000000 {
			#interrupt-cells = <2>;
			compatible = "sifive,plic-1.0.0";
			interrupt-controller;
			interrupts-extended = <&hlic 11>;
			reg = <0x0c000000 0x00002000
			       0x0c002000 0x001fe000
			       0x0c200000 0x03e00000>;
			reg-names = "prio", "irq_en", "reg";
			riscv,max-priority = <7>;
			riscv,ndev = <52>;
		};
		itim: itim@8000000 {
			compatible = "sifive,itim0";
			reg = <0x8000000 0x2000>;
			reg-names = "mem";
		};
		otp: otp@10010000 {
			compatible = "sifive,otp0";
			reg = <0x10010000 0x1000 0x20000 0x2000>;
			reg-names = "control", "mem";
		};
		prci: prci@10008000 {
			compatible = "sifive,freedome300prci0";
			reg = <0x10008000 0x1000>;
			reg-names = "control";
		};
		pwm0: pwm@10015000 {
			compatible = "sifive,pwm0";
			interrupt-parent = <&plic>;
			interrupts = <40 1>, <41 1>, <42 1>, <43 1>;
			reg = <0x10015000 0x1000>;
			reg-names = "control";
			label = "pwm_0";
			status = "disabled";
			sifive,compare-width = <8>;
			#pwm-cells = <2>;
		};
		pwm1: pwm@10025000 {
			compatible = "sifive,pwm0";
			interrupt-parent = <&plic>;
			interrupts = <44 1>, <45 1>, <46 1>, <47 1>;
			reg = <0x10025000 0x1000>;
			reg-names = "control";
			label = "pwm_1";
			status = "disabled";
			sifive,compare-width = <16>;
			#pwm-cells = <2>;
		};
		pwm2: pwm@10035000 {
			compatible = "sifive,pwm0";
			interrupt-parent = <&plic>;
			interrupts = <48 1>, <49 1>, <50 1>, <51 1>;
			reg = <0x10035000 0x1000>;
			reg-names = "control";
			label = "pwm_2";
			status = "disabled";
			sifive,compare-width = <16>;
			#pwm-cells = <2>;
		};
		modeselect: rom@1000 {
			compatible = "sifive,modeselect0";
			reg = <0x1000 0x1000>;
			reg-names = "mem";
		};
		maskrom: rom@10000 {
			compatible = "sifive,maskrom0";
			reg = <0x10000 0x2000>;
			reg-names = "mem";
		};
		uart0: serial@10013000 {
			compatible = "sifive,uart0";
			interrupt-parent = <&plic>;
			interrupts = <3 1>;
			reg = <0x10013000 0x1000>;
			reg-names = "control";
			label = "uart_0";
			status = "disabled";
		};
		uart1: serial@10023000 {
			compatible = "sifive,uart0";
			interrupt-parent = <&plic>;
			interrupts = <4 1>;
			reg = <0x10023000 0x1000>;
			reg-names = "control";
			label = "uart_1";
			status = "disabled";
		};
		spi0: spi@10014000 {
			compatible = "sifive,spi0";
			interrupt-parent = <&plic>;
			interrupts = <5 1>;
			reg = <0x10014000 0x1000 0x20000000 0x20000000>;
			reg-names = "control", "mem";
			label = "spi_0";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
		spi1: spi@10024000 {
			compatible = "sifive,spi0";
			interrupt-parent = <&plic>;
			interrupts = <6 1>;
			reg = <0x10024000 0x1000>;
			reg-names = "control";
			label = "spi_1";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
		spi2: spi@10034000 {
			compatible = "sifive,spi0";
			interrupt-parent = <&plic>;
			interrupts = <7 1>;
			reg = <0x10034000 0x1000>;
			reg-names = "control";
			label = "spi_2";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
		teststatus: teststatus@4000 {
			compatible = "sifive,test0";
			reg = <0x4000 0x1000>;
			reg-names = "control";
		};
	};
};
