/*
 * Copyright (c) 2019 Jan Van Winkel (jan.van_winkel@dxplore.eu)
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <posix/posix.dtsi>
#include <dt-bindings/i2c/i2c.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Native POSIX Board";
	compatible = "zephyr,posix";

	chosen {
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,uart-mcumgr = &uart0;
		zephyr,flash = &flash0;
		zephyr,entropy = &rng;
		zephyr,flash-controller = &flashcontroller0;
		zephyr,ec-host-interface = &hcp;
	};

	aliases {
		eeprom-0 = &eeprom0;
		i2c-0 = &i2c0;
		spi-0 = &spi0;
		led0 = &led0;
	};

	leds {
		compatible = "gpio-leds";
		led0: led_0 {
			gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
			label = "Green LED";
		};
	};

	flashcontroller0: flash-controller@0 {
		compatible = "zephyr,sim-flash";
		reg = <0x00000000 DT_SIZE_K(2048)>;

		#address-cells = <1>;
		#size-cells = <1>;
		erase-value = <0xff>;

		label = "flash_ctrl";

		flash0: flash@0 {
			status = "okay";
			compatible = "soc-nv-flash";
			label = "flash";
			erase-block-size = <4096>;
			write-block-size = <1>;
			reg = <0x00000000 DT_SIZE_K(2048)>;

			partitions {
				compatible = "fixed-partitions";
				#address-cells = <1>;
				#size-cells = <1>;

				boot_partition: partition@0 {
					label = "mcuboot";
					reg = <0x000000000 0x0000C000>;
				};
				slot0_partition: partition@c000 {
					label = "image-0";
					reg = <0x0000C000 0x000069000>;
				};
				slot1_partition: partition@75000 {
					label = "image-1";
					reg = <0x00075000 0x000069000>;
				};
				scratch_partition: partition@de000 {
					label = "image-scratch";
					reg = <0x000de000 0x0001e000>;
				};
				storage_partition: partition@fc000 {
					label = "storage";
					reg = <0x000fc000 0x00004000>;
				};
			};
		};
	};

	eeprom0: eeprom {
		status = "okay";
		compatible = "zephyr,sim-eeprom";
		label = "EEPROM_0";
		size = <DT_SIZE_K(32)>;
	};

	i2c0: i2c@100 {
		status = "okay";
		compatible = "zephyr,i2c-emul-controller";
		clock-frequency = <I2C_BITRATE_STANDARD>;
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x100 4>;
		label = "I2C_0";
	};

	spi0: spi@200 {
		status = "okay";
		compatible = "zephyr,spi-emul-controller";
		clock-frequency = <50000000>;
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x200 4>;
		label = "SPI_0";
	};

	espi0: espi@300 {
		status = "okay";
		compatible = "zephyr,espi-emul-controller";
		reg = <0x300 4>;
		#address-cells = <1>;
		#size-cells = <0>;
		label = "ESPI_0";
	};

	uart0: uart {
		status = "okay";
		compatible = "zephyr,native-posix-uart";
		label = "UART_0";
		/* Dummy current-speed entry to comply with serial
		 * DTS binding
		 */
		current-speed = <0>;
	};

	uart1: uart_1 {
		status = "okay";
		compatible = "zephyr,native-posix-uart";
		label = "UART_1";
		/* Dummy current-speed entry to comply with serial
		 * DTS binding
		 */
		current-speed = <0>;
	};

	rng: rng {
		status = "okay";
		compatible = "zephyr,native-posix-rng";
		label = "ENTROPY_0";
	};

	counter0: counter {
		status = "okay";
		compatible = "zephyr,native-posix-counter";
		label = "COUNTER_0";
	};

	hcp: ec-host-cmd-periph {
		status = "okay";
		compatible = "zephyr,sim-ec-host-cmd-periph";
		label = "EC_HOST_CMD_SIM";
	};

	gpio0: gpio@800 {
		status = "okay";
		compatible = "zephyr,gpio-emul";
		label = "GPIO_0";
		reg = <0x800 0x4>;
		rising-edge;
		falling-edge;
		high-level;
		low-level;
		gpio-controller;
		#gpio-cells = <2>;
	};

	zephyr_udc0: udc0 {
		compatible = "zephyr,native-posix-udc";
		label = "USBD";
	};
};
