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

#include <espressif/esp32.dtsi>
#include "esp_wrover_kit-pinctrl.dtsi"

/ {
	model = "esp32";
	compatible = "espressif,esp32";

	aliases {
		led0 = &blue_led;
		led1 = &green_led;
		led2 = &red_led;
		pwm-led0 = &pwm_led_red;
		pwm-led1 = &pwm_led_green;
		pwm-led2 = &pwm_led_blue;
		red-pwm-led = &pwm_led_red;
		green-pwm-led = &pwm_led_green;
		blue-pwm-led = &pwm_led_blue;
		uart-0 = &uart0;
		i2c-0 = &i2c0;
		watchdog0 = &wdt0;
	};

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

	leds {
		compatible = "gpio-leds";

		blue_led: led_0 {
			gpios =  <&gpio0 4 GPIO_ACTIVE_HIGH>;
			label = "Blue - LED0";
		};

		green_led: led_1 {
			gpios =  <&gpio0 2 GPIO_ACTIVE_HIGH>;
			label = "Green - LED1";
		};

		red_led: led_2 {
			gpios =  <&gpio0 0 GPIO_ACTIVE_HIGH>;
			label = "Red - LED2";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		pwm_led_red: pwm_led_0 {
			label = "Red PWM LED";
			pwms = <&ledc0 0 PWM_HZ(100) PWM_POLARITY_NORMAL>;
		};
		pwm_led_green: pwm_led_1 {
			label = "Green PWM LED";
			pwms = <&ledc0 1 PWM_HZ(100) PWM_POLARITY_NORMAL>;
		};
		pwm_led_blue: pwm_led_2 {
			label = "Blue PWM LED";
			pwms = <&ledc0 2 PWM_HZ(100) PWM_POLARITY_NORMAL>;
		};
	};
};

&cpu0 {
	clock-frequency = <ESP32_CLK_CPU_240M>;
};

&cpu1 {
	clock-frequency = <ESP32_CLK_CPU_240M>;
};

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

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&i2c0 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_STANDARD>;
	sda-gpios = <&gpio0 21 GPIO_OPEN_DRAIN>;
	scl-gpios = <&gpio0 22 GPIO_OPEN_DRAIN>;
	pinctrl-0 = <&i2c0_default>;
	pinctrl-names = "default";
};

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

&spi3 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
	pinctrl-0 = <&spim3_default>;
	pinctrl-names = "default";

	ili9341: ili9341@0 {
		compatible = "ilitek,ili9341";
		spi-max-frequency = <25000000>;
		reg = <0>;
		cmd-data-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
		reset-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
		pixel-format = <0>;
		rotation = <0>;
		width = <240>;
		height = <320>;
	};
};

&ledc0 {
	pinctrl-0 = <&ledc0_default>;
	pinctrl-names = "default";
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;
	channel0@0 {
		reg = <0x0>;
		timer = <0>;
	};
	channel1@1 {
		reg = <0x1>;
		timer = <1>;
	};
	channel2@2 {
		reg = <0x2>;
		timer = <2>;
	};
};

&timer0 {
	status = "okay";
};

&timer1 {
	status = "okay";
};

&timer2 {
	status = "okay";
};

&timer3 {
	status = "okay";
};

&trng0 {
	status = "okay";
};

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

		/* Reserve 60kB for the bootloader */
		boot_partition: partition@1000 {
			label = "mcuboot";
			reg = <0x00001000 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>;
		};
	};
};
