/*
 * Copyright (c) 2019 Intel Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#include <xtensa/xtensa.dtsi>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/i2c/i2c.h>

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

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "cadence,tensilica-xtensa-lx6";
			reg = <0>;
		};

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "cadence,tensilica-xtensa-lx6";
			reg = <1>;
		};

	};

	sram0: memory@3ffb0000 {
		device_type = "memory";
		compatible = "mmio-sram";
		reg = <0x3FFB0000 0x50000>;
	};

	soc {
		uart0: uart@3ff40000 {
			compatible = "espressif,esp32-uart";
			reg = <0x3ff40000 0x400>;
			/* interrupts = <12>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "UART_0";
			status = "disabled";
		};

		uart1: uart@3ff50000 {
			compatible = "espressif,esp32-uart";
			reg = <0x3ff50000 0x400>;
			/* interrupts = <17>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "UART_1";
			status = "disabled";
		};

		uart2: uart@3ff6e000 {
			compatible = "espressif,esp32-uart";
			reg = <0x3ff6E000 0x400>;
			/* interrupts = <18>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "UART_2";
			status = "disabled";
		};

		pinmux: pinmux@3ff49000 {
			compatible = "espressif,esp32-pinmux";
			reg = <0x3ff49000 0x94>;
		};

		gpio0: gpio@3ff44000 {
			compatible = "espressif,esp32-gpio";
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x3ff44000 0x800>;
			label = "GPIO_0";
		};

		gpio1: gpio@3ff44800 {
			compatible = "espressif,esp32-gpio";
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x3ff44800 0x800>;
			label = "GPIO_1";
		};

		i2c0: i2c@3ff53000 {
			compatible = "espressif,esp32-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x3ff53000 0x1000>;
			/* interrupts = <8>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "I2C_0";
			status = "disabled";
		};

		i2c1: i2c@3ff67000 {
			compatible = "espressif,esp32-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x3ff67000 0x1000>;
			/* interrupts = <9>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "I2C_1";
			status = "disabled";
		};

		trng0: trng@3ff75144 {
			compatible = "espressif,esp32-trng";
			reg = <0x3FF75144 0x4>;
			/* interrupts = <33 0>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "TRNG_0";
			status = "disabled";
		};

		wdt0: watchdog@3ff5f048 {
			compatible = "espressif,esp32-watchdog";
			reg = <0x3ff5f048 0x20>;
			/* interrupts = <24>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "WDT_0";
			status = "okay";
		};

		wdt1: watchdog@3ff60048 {
			compatible = "espressif,esp32-watchdog";
			reg = <0x3ff60048 0x20>;
			/* interrupts = <25>; - FIXME: Enable interrupts when interrupt-controller got supported in device tree */
			label = "WDT_1";
			status = "disabled";
		};
	};
};
