/*
 * Copyright (c) 2018 - 2019 Antmicro <www.antmicro.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "litex,vexriscv", "litex-dev";
	model = "litex,vexriscv";


	chosen {
		zephyr,entropy = &prbs0;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu@0 {
			clock-frequency = <100000000>;
			compatible = "spinalhdl,vexriscv", "riscv";
			device_type = "cpu";
			reg = <0>;
			riscv,isa = "rv32imac";
			status = "okay";
			timebase-frequency = <32768>;
		};
	};
	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "litex,vexriscv";
		ranges;
		intc0: interrupt-controller@bc0 {
			#interrupt-cells = <2>;
			compatible = "vexriscv,intc0";
			interrupt-controller;
			reg = <0xbc0 0x4 0xfc0 0x4>;
			reg-names = "irq_mask", "irq_pending";
			riscv,max-priority = <7>;
		};
		uart0: serial@e0001800 {
			compatible = "litex,uart0";
			interrupt-parent = <&intc0>;
			interrupts = <2 10>;
			reg = <0xe0001800 0x18>;
			reg-names = "control";
			label = "uart0";
			status = "disabled";
		};
		spi0: spi@e0002000 {
			compatible = "litex,spi";
			interrupt-parent = <&intc0>;
			interrupts = <5 0>;
			reg = <0xe0002000 0x34>;
			reg-names = "control";
			label = "spi0";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
		timer0: serial@e0002800 {
			compatible = "litex,timer0";
			interrupt-parent = <&intc0>;
			interrupts = <1 0>;
			reg = <0xe0002800 0x40>;
			reg-names = "control";
			label = "timer0";
			status = "disabled";
		};
		eth0: ethernet@e0009800 {
			compatible = "litex,eth0";
			interrupt-parent = <&intc0>;
			interrupts = <3 0>;
			reg = <0xe0009800 0x6b 0xb0000000 0x2000>;
			local-mac-address = [10 e2 d5 00 00 02];
			reg-names = "control", "buffers";
			label = "eth0";
			status = "disabled";
		};
		dna0: dna@e0003800 {
			compatible = "litex,dna0";
			/* DNA data is 57-bits long,
			so it requires 8 bytes.
			In LiteX each 32-bit register holds
			only a single byte of meaningful data,
			hence 8 registers. */
			reg = <0xe0003800 0x20>;
			reg-names = "mem";
			label = "dna0";
			status = "disabled";
		};
		i2c0: i2c@e0005000 {
			compatible = "litex,i2c";
			reg = <0xe0005000 0x4 0xe0005004 0x4>;
			reg-names = "write", "read";
			label = "i2c0";
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};
		gpio_out: gpio@e0005800 {
			compatible = "litex,gpio";
			reg = <0xe0005800 0x4>;
			reg-names = "control";
			ngpios = <4>;
			label = "gpio_out";
			port-is-output;
			status = "disabled";
			gpio-controller;
			#gpio-cells = <2>;
		};
		gpio_in: gpio@e0006000 {
			compatible = "litex,gpio";
			reg = <0xe0006000 0x4>;
			reg-names = "control";
			ngpios = <4>;
			label = "gpio_in";
			status = "disabled";
			gpio-controller;
			#gpio-cells = <2>;
		};
		prbs0: prbs@e0006800 {
			compatible = "litex,prbs";
			reg = <0xe0006800 0x4>;
			reg-names = "status";
			label = "prbs0";
			status = "disabled";
		};
		pwm0: pwm@e0007000 {
			compatible = "litex,pwm";
			reg = <0xe0007000 0x4 0xe0007004 0x10 0xe0007014 0x10>;
			reg-names = "enable", "width", "period";
			label = "pwm0";
			status = "disabled";
			#pwm-cells = <2>;
		};
	};
};
