/*
 * Copyright (c) 2018 - 2020 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 = "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 {
			compatible = "vexriscv-intc0";
			#address-cells = <0>;
			#interrupt-cells = <2>;
			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 0x4
				0xe0001804 0x4
				0xe0001808 0x4
				0xe000180c 0x4
				0xe0001810 0x4
				0xe0001814 0x4
				0xe0001818 0x4
				0xe000181c 0x4>;
			reg-names =
				"rxtx",
				"txfull",
				"rxempty",
				"ev_status",
				"ev_pending",
				"ev_enable",
				"txempty",
				"rxfull";
			status = "disabled";
		};
		spi0: spi@e0002000 {
			compatible = "litex,spi";
			reg = <0xe0002000 0x4
				0xe0002004 0x4
				0xe0002008 0x4
				0xe000200c 0x4
				0xe0002010 0x4
				0xe0002014 0x4>;
			reg-names = "control",
				"status",
				"mosi",
				"miso",
				"cs",
				"loopback";
			status = "disabled";
			#address-cells = <1>;
			#size-cells = <0>;
		};
		timer0: timer@e0002800 {
			compatible = "litex,timer0";
			interrupt-parent = <&intc0>;
			interrupts = <1 0>;
			reg = <0xe0002800 0x4
				0xe0002804 0x4
				0xe0002808 0x4
				0xe000280c 0x4
				0xe0002810 0x4
				0xe0002814 0x4
				0xe0002818 0x4
				0xe000281c 0x4
				0xe0002820 0x4
				0xe0002824 0x8>;
			reg-names =
				"load",
				"reload",
				"en",
				"update_value",
				"value",
				"ev_status",
				"ev_pending",
				"ev_enable",
				"uptime_latch",
				"uptime_cycles";
			status = "disabled";
		};
		eth0: ethernet@e0009800 {
			compatible = "litex,eth0";
			interrupt-parent = <&intc0>;
			interrupts = <3 0>;
			reg = <0xe0009800 0x4
				0xe0009804 0x4
				0xe0009808 0x4
				0xe000980c 0x4
				0xe0009810 0x4
				0xe0009814 0x4
				0xe0009818 0x4
				0xe000981c 0x4
				0xe0009820 0x4
				0xe0009824 0x4
				0xe0009828 0x4
				0xe000982c 0x4
				0xe0009830 0x4
				0xe0009834 0x4
				0xb0000000 0x2000>;
			local-mac-address = [10 e2 d5 00 00 02];
			reg-names = "rx_slot",
				"rx_length",
				"rx_errors",
				"rx_ev_status",
				"rx_ev_pending",
				"rx_ev_enable",
				"tx_start",
				"tx_ready",
				"tx_level",
				"tx_slot",
				"tx_length",
				"tx_ev_status",
				"tx_ev_pending",
				"tx_ev_enable",
				"buffers";
			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";
			status = "disabled";
		};
		i2c0: i2c@e0005000 {
			compatible = "litex,i2c";
			reg = <0xe0005000 0x4 0xe0005004 0x4>;
			reg-names = "write", "read";
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
		};
		gpio_out: gpio@e0005800 {
			compatible = "litex,gpio";
			reg = <0xe0005800 0x4>;
			reg-names = "control";
			ngpios = <4>;
			port-is-output;
			status = "disabled";
			gpio-controller;
			#gpio-cells = <2>;
		};
		gpio_in: gpio@e0006000 {
			compatible = "litex,gpio";
			reg = <0xe0006000 0x4
				0xe0006004 0x4
				0xe0006008 0x4
				0xe0006010 0x4
				0xe0006014 0x4>;
			interrupt-parent = <&intc0>;
			interrupts = <4 2>;
			reg-names = "base",
				"irq_mode",
				"irq_edge",
				"irq_pend",
				"irq_en";
			ngpios = <4>;
			status = "disabled";
			gpio-controller;
			#gpio-cells = <2>;
		};
		prbs0: prbs@e0006800 {
			compatible = "litex,prbs";
			reg = <0xe0006800 0x4>;
			reg-names = "status";
			status = "disabled";
		};
		pwm0: pwm@e0007000 {
			compatible = "litex,pwm";
			reg = <0xe0007000 0x4 0xe0007004 0x10 0xe0007014 0x10>;
			reg-names = "enable", "width", "period";
			status = "disabled";
			#pwm-cells = <2>;
		};
		i2s_rx: i2s_rx@e000a800 {
			compatible = "litex,i2s";
			reg = <0xe000a800 0x4
				0xe000a804 0x4
				0xe000a808 0x4
				0xe000a80c 0x4
				0xe000a810 0x4
				0xe000a814 0x4
				0xb1000000 0x40000>;
			interrupt-parent = <&intc0>;
			interrupts = <6 2>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg-names = "ev_status",
				"ev_pending",
				"ev_enable",
				"rx_ctl",
				"rx_stat",
				"rx_conf",
				"fifo";
			fifo_depth = <256>;
			status = "disabled";
		};
		i2s_tx: i2s_tx@e000b000 {
			compatible = "litex,i2s";
			reg = <0xe000b000 0x4
				0xe000b004 0x4
				0xe000b008 0x4
				0xe000b00c 0x4
				0xe000b010 0x4
				0xe000b014 0x4
				0xb2000000 0x40000>;
			interrupt-parent = <&intc0>;
			interrupts = <7 2>;
			#address-cells = <1>;
			#size-cells = <0>;
			reg-names = "ev_status",
				"ev_pending",
				"ev_enable",
				"tx_ctl",
				"tx_stat",
				"tx_conf",
				"fifo";
			fifo_depth = <256>;
			status = "disabled";
		};
		clock-outputs {
			#address-cells = <1>;
			#size-cells = <0>;
			clk0: clock-controller@0 {
				#clock-cells = <1>;
				reg = <0>;
				compatible = "litex,clkout";
				clock-output-names = "CLK_0";
				litex,clock-frequency = <11289600>;
				litex,clock-phase = <0>;
				litex,clock-duty-num = <1>;
				litex,clock-duty-den = <2>;
				litex,clock-margin = <1>;
				litex,clock-margin-exp = <2>;
				status = "disabled";
			};
			clk1: clock-controller@1 {
				#clock-cells = <1>;
				reg = <1>;
				compatible = "litex,clkout";
				clock-output-names = "CLK_1";
				litex,clock-frequency = <22579200>;
				litex,clock-phase = <0>;
				litex,clock-duty-num = <1>;
				litex,clock-duty-den = <2>;
				litex,clock-margin = <1>;
				litex,clock-margin-exp = <2>;
				status = "disabled";
			};
		};
		clock0: clock@e0004800 {
			compatible = "litex,clk";
			reg = <0xe0004800 0x4
				0xe0004804 0x4
				0xe0004808 0x4
				0xe000480c 0x4
				0xe0004810 0x4
				0xe0004814 0x4
				0xe0004818 0x4
				0xe000481c 0x4>;
			reg-names = "drp_reset",
				"drp_locked",
				"drp_read",
				"drp_write",
				"drp_drdy",
				"drp_adr",
				"drp_dat_w",
				"drp_dat_r";
			#clock-cells = <1>;
			clocks = <&clk0 0>, <&clk1 1>;
			clock-output-names = "CLK_0", "CLK_1";
			litex,lock-timeout = <10>;
			litex,drdy-timeout = <10>;
			litex,sys-clock-frequency = <100000000>;
			litex,divclk-divide-min = <1>;
			litex,divclk-divide-max = <107>;
			litex,clkfbout-mult-min = <2>;
			litex,clkfbout-mult-max = <65>;
			litex,vco-freq-min = <600000000>;
			litex,vco-freq-max = <1200000000>;
			litex,clkout-divide-min = <1>;
			litex,clkout-divide-max = <126>;
			litex,vco-margin = <0>;
			status = "disabled";
		};
	};
};
