/*
 * Copyright (c) 2022 Espressif Systems (Shanghai) Co., Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#include <mem.h>
#include <xtensa/xtensa.dtsi>
#include <zephyr/dt-bindings/adc/adc.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
#include <zephyr/dt-bindings/clock/esp32s3_clock.h>
#include <zephyr/dt-bindings/interrupt-controller/esp32s3-xtensa-intmux.h>
#include <dt-bindings/pinctrl/esp32s3-pinctrl.h>

/ {

	aliases {
		die-temp0 = &coretemp;
	};

	chosen {
		zephyr,canbus = &twai;
		zephyr,entropy = &trng0;
		zephyr,flash-controller = &flash;
	};

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

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "cdns,tensilica-xtensa-lx7";
			reg = <0>;
			cpu-power-states = <&light_sleep &deep_sleep>;
		};

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

		power-states {
			light_sleep: light_sleep {
				compatible = "zephyr,power-state";
				power-state-name = "standby";
				min-residency-us = <200>;
				exit-latency-us = <133>;
			};

			deep_sleep: deep_sleep {
				compatible = "zephyr,power-state";
				power-state-name = "soft-off";
				min-residency-us = <2000>;
				exit-latency-us = <382>;
			};
		};
	};

	wifi: wifi {
		compatible = "espressif,esp32-wifi";
		status = "disabled";
	};

	pinctrl: pin-controller {
		compatible = "espressif,esp32-pinctrl";
		status = "okay";
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		ranges;

		sram0: memory@3fc88000 {
			compatible = "mmio-sram";
			reg = <0x3fc88000 0x77FFF>;
		};

		ipmmem0: memory@3fcbd000 {
			compatible = "mmio-sram";
			reg = <0x3fcbd000 0x400>;
		};

		shm0: memory@3fcbd400 {
			compatible = "mmio-sram";
			reg = <0x3fcbd400 0x4000>;
		};

		intc: interrupt-controller@600c2000 {
			#interrupt-cells = <1>;
			compatible = "espressif,esp32-intc";
			interrupt-controller;
			reg = <0x600c2000 0x1000>;
			status = "okay";
		};

		rtc: rtc@60021000 {
			compatible = "espressif,esp32-rtc";
			reg = <0x60021000 0x2000>;
			xtal-freq = <ESP32_CLK_XTAL_40M>;
			#clock-cells = <1>;
			status = "okay";

			rtc_timer: rtc_timer {
				compatible = "espressif,esp32-rtc-timer";
				slow-clk-freq = <ESP32_RTC_SLOW_CLK_FREQ_150K>;
				interrupts = <RTC_CORE_INTR_SOURCE>;
				interrupt-parent = <&intc>;
				status = "okay";
			};
		};

		flash: flash-controller@60002000 {
			compatible = "espressif,esp32-flash-controller";
			reg = <0x60002000 0x1000>;
			/* interrupts = <3 0>; */

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

			flash0: flash@0 {
				compatible = "soc-nv-flash";
				reg = <0 0x800000>;
				erase-block-size = <4096>;
				write-block-size = <4>;
				/* Flash size is specified in SOC/SIP dtsi */
			};
		};

		psram0: psram@3c000000 {
			device_type = "memory";
			compatible = "mmio-sram";
			/* PSRAM size is specified in SOC/SIP dtsi */
			reg = <0x3c000000 DT_SIZE_M(2)>;
			status = "disabled";
		};

		ipm0: ipm@3fcc1400 {
			compatible = "espressif,esp32-ipm";
			reg = <0x3fcc1400 0x8>;
			status = "disabled";
			shared-memory = <&ipmmem0>;
			shared-memory-size = <0x400>;
			interrupts = <FROM_CPU_INTR0_SOURCE FROM_CPU_INTR1_SOURCE>;
			interrupt-parent = <&intc>;
		};

		uart0: uart@60000000 {
			compatible = "espressif,esp32-uart";
			reg = <0x60000000 0x1000>;
			interrupts = <UART0_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_UART0_MODULE>;
			status = "disabled";
		};

		uart1: uart@60010000 {
			compatible = "espressif,esp32-uart";
			reg = <0x60010000 0x1000>;
			interrupts = <UART1_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_UART1_MODULE>;
			status = "disabled";
		};

		uart2: uart@6002e000 {
			compatible = "espressif,esp32-uart";
			reg = <0x6002e000 0x1000>;
			interrupts = <UART2_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_UART2_MODULE>;
			status = "disabled";
		};

		gpio: gpio {
			compatible = "simple-bus";
			gpio-map-mask = <0xffffffe0 0xffffffc0>;
			gpio-map-pass-thru = <0x1f 0x3f>;
			gpio-map = <
				0x00 0x0 &gpio0 0x0 0x0
				0x20 0x0 &gpio1 0x0 0x0
			>;
			#gpio-cells = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges;

			gpio0: gpio@60004000 {
				compatible = "espressif,esp32-gpio";
				gpio-controller;
				#gpio-cells = <2>;
				reg = <0x60004000 0x800>;
				interrupts = <GPIO_INTR_SOURCE>;
				interrupt-parent = <&intc>;
				/* Maximum available pins (per port)
				 * Actual occupied pins are specified
				 * on part number dtsi level, using
				 * the `gpio-reserved-ranges` property.
				 */
				ngpios = <32>;  /* 0..31 */
			};

			gpio1: gpio@60004800 {
				compatible = "espressif,esp32-gpio";
				gpio-controller;
				#gpio-cells = <2>;
				reg = <0x60004800 0x800>;
				interrupts = <GPIO_INTR_SOURCE>;
				interrupt-parent = <&intc>;
				ngpios = <22>; /* 32..53 */
			};
		};

		touch: touch@6000885c {
			compatible = "espressif,esp32-touch";
			reg = <0x6000885c 0x88 0x60008908 0x18>;
			interrupts = <RTC_CORE_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			status = "disabled";
		};

		i2c0: i2c@60013000 {
			compatible = "espressif,esp32-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x60013000 DT_SIZE_K(4)>;
			interrupts = <I2C_EXT0_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_I2C0_MODULE>;
			status = "disabled";
		};

		i2c1: i2c@60027000 {
			compatible = "espressif,esp32-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x60027000 DT_SIZE_K(4)>;
			interrupts = <I2C_EXT1_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_I2C1_MODULE>;
			status = "disabled";
		};

		spi2: spi@60024000 {
			compatible = "espressif,esp32-spi";
			reg = <0x60024000 DT_SIZE_K(4)>;
			interrupts = <SPI2_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_SPI2_MODULE>;
			dma-clk = <ESP32_GDMA_MODULE>;
			dma-host = <0>;
			status = "disabled";
		};

		spi3: spi@60025000 {
			compatible = "espressif,esp32-spi";
			reg = <0x60025000 DT_SIZE_K(4)>;
			interrupts = <SPI3_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_SPI3_MODULE>;
			dma-clk = <ESP32_GDMA_MODULE>;
			dma-host = <1>;
			status = "disabled";
		};

		coretemp: coretemp@60008800 {
			compatible = "espressif,esp32-temp";
			friendly-name = "coretemp";
			reg = <0x60008800 0x4>;
			status = "disabled";
		};

		adc0: adc@60040000 {
			compatible = "espressif,esp32-adc";
			reg = <0x60040000 4>;
			unit = <1>;
			channel-count = <10>;
			#io-channel-cells = <1>;
			status = "disabled";
		};

		adc1: adc@60040004 {
			compatible = "espressif,esp32-adc";
			reg = <0x60040004 4>;
			unit = <2>;
			channel-count = <10>;
			#io-channel-cells = <1>;
			status = "disabled";
		};

		twai: can@6002b000 {
			compatible = "espressif,esp32-twai";
			reg = <0x6002b000 DT_SIZE_K(4)>;
			interrupts = <TWAI_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_TWAI_MODULE>;
			status = "disabled";
		};

		usb_serial: uart@60038000 {
			compatible = "espressif,esp32-usb-serial";
			reg = <0x60038000 DT_SIZE_K(4)>;
			status = "disabled";
			interrupts = <USB_SERIAL_JTAG_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_USB_MODULE>;
		};

		timer0: counter@6001f000 {
			compatible = "espressif,esp32-timer";
			reg = <0x6001f000 DT_SIZE_K(4)>;
			group = <0>;
			index = <0>;
			interrupts = <TG0_T0_LEVEL_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			status = "disabled";
		};

		timer1: counter@6001f024 {
			compatible = "espressif,esp32-timer";
			reg = <0x6001f024 DT_SIZE_K(4)>;
			group = <0>;
			index = <1>;
			interrupts = <TG0_T1_LEVEL_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			status = "disabled";
		};

		timer2: counter@60020000 {
			compatible = "espressif,esp32-timer";
			reg = <0x60020000 DT_SIZE_K(4)>;
			group = <1>;
			index = <0>;
			interrupts = <TG1_T0_LEVEL_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			status = "disabled";
		};

		timer3: counter@60020024 {
			compatible = "espressif,esp32-timer";
			reg = <0x60020024 DT_SIZE_K(4)>;
			group = <1>;
			index = <1>;
			interrupts = <TG1_T1_LEVEL_INTR_SOURCE>;
			interrupt-parent = <&intc>;
		};

		wdt0: watchdog@6001f048 {
			compatible = "espressif,esp32-watchdog";
			reg = <0x6001f048 0x20>;
			interrupts = <TG0_WDT_LEVEL_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_TIMG0_MODULE>;
			status = "disabled";
		};

		wdt1: watchdog@60020048 {
			compatible = "espressif,esp32-watchdog";
			reg = <0x60020048 0x20>;
			interrupts = <TG1_WDT_LEVEL_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_TIMG1_MODULE>;
			status = "disabled";
		};

		trng0: trng@6003507c {
			compatible = "espressif,esp32-trng";
			reg = <0x6003507c 0x4>;
			status = "disabled";
		};

		ledc0: ledc@60019000 {
			compatible = "espressif,esp32-ledc";
			#pwm-cells = <3>;
			reg = <0x60019000 DT_SIZE_K(4)>;
			clocks = <&rtc ESP32_LEDC_MODULE>;
			status = "disabled";
		};

		mcpwm0: mcpwm@6001e000 {
			compatible = "espressif,esp32-mcpwm";
			reg = <0x6001e000 DT_SIZE_K(4)>;
			interrupts = <PWM0_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_PWM0_MODULE>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		mcpwm1: mcpwm@6002c000 {
			compatible = "espressif,esp32-mcpwm";
			reg = <0x6002c000 DT_SIZE_K(4)>;
			interrupts = <PWM1_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_PWM1_MODULE>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pcnt: pcnt@60017000 {
			compatible = "espressif,esp32-pcnt";
			reg = <0x60017000 DT_SIZE_K(4)>;
			interrupts = <PCNT_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_PCNT_MODULE>;
			status = "disabled";
		};

		dma: dma@6003f000 {
			compatible = "espressif,esp32-gdma";
			reg = <0x6003f000 DT_SIZE_K(4)>;
			#dma-cells = <1>;
			interrupts = <DMA_IN_CH0_INTR_SOURCE DMA_OUT_CH0_INTR_SOURCE
						DMA_IN_CH1_INTR_SOURCE DMA_OUT_CH1_INTR_SOURCE
						DMA_IN_CH2_INTR_SOURCE DMA_OUT_CH2_INTR_SOURCE>;
			interrupt-parent = <&intc>;
			clocks = <&rtc ESP32_GDMA_MODULE>;
			dma-channels = <10>;
			dma-buf-addr-alignment = <4>;
			status = "disabled";
		};

	};
};
