/*
 * Copyright (c) 2021 Espressif Systems (Shanghai) Co., Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;

#include <espressif/esp32c3.dtsi>
#include "esp32c3_devkitm-pinctrl.dtsi"

/ {
	model = "esp32c3_devkitm";
	compatible = "espressif,esp32c3";

	chosen {
		zephyr,sram = &sram0;
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,flash = &flash0;
	};

	aliases {
		sw0 = &user_button1;
		i2c-0 = &i2c0;
		watchdog0 = &wdt0;
	};

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

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

	gpio_keys {
		compatible = "gpio-keys";
		user_button1: button_1 {
			label = "User SW1";
			gpios = <&gpio0 9 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		};
	};
};

&cpu0 {
	clock-frequency = <ESP32_CLK_CPU_160M>;
	cpu-power-states = <&deep_sleep &light_sleep>;
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart0_default>;
	pinctrl-names = "default";
};

&usb_serial {
	/* requires resoldering of resistors on the board */
	status = "okay";
};

&i2c0 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_STANDARD>;
	pinctrl-0 = <&i2c0_default>;
	pinctrl-names = "default";
};

&trng0 {
	status = "okay";
};

&spi2 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
	pinctrl-0 = <&spim2_default>;
	pinctrl-names = "default";
};

&gpio0 {
	status = "okay";
};

&wdt0 {
	status = "okay";
};

&timer0 {
	status = "disabled";
};

&timer1 {
	status = "disabled";
};

&twai {
	/* requires external CAN transceiver or jumper on RX and TX pins for loopback testing */
	status = "disabled";
	pinctrl-0 = <&twai_default>;
	pinctrl-names = "default";
	bus-speed = <125000>;
};

&flash0 {
	status = "okay";
	partitions {
		compatible = "fixed-partitions";
		#address-cells = <1>;
		#size-cells = <1>;

		/* Reserve 60kB for the bootloader */
		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x0000F000>;
			read-only;
		};

		/* Reserve 1024kB for the application in slot 0 */
		slot0_partition: partition@10000 {
			label = "image-0";
			reg = <0x00010000 0x00100000>;
		};

		/* Reserve 1024kB for the application in slot 1 */
		slot1_partition: partition@110000 {
			label = "image-1";
			reg = <0x00110000 0x00100000>;
		};

		/* Reserve 256kB for the scratch partition */
		scratch_partition: partition@210000 {
			   label = "image-scratch";
			   reg = <0x00210000 0x00040000>;
		};

		storage_partition: partition@250000 {
			label = "storage";
			reg = <0x00250000 0x00006000>;
		};
	};
};
