/*
 * Copyright (c) 2023 Benjamin Cabé <benjamin@zephyrproject.org>
 *
 * SPDX-License-Identifier: Apache-2.0
 */
/dts-v1/;

#include <espressif/esp32s3/esp32s3_fn8.dtsi>
#include "m5stack_atoms3-pinctrl.dtsi"
#include "grove_connectors.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
	model = "M5Stack AtomS3";
	compatible = "m5stack,atoms3";

	chosen {
		zephyr,sram = &sram0;
		zephyr,console = &usb_serial;
		zephyr,shell-uart = &usb_serial;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
		zephyr,display = &st7789v;
	};

	aliases {
		sw0 = &user_button_0;
		watchdog0 = &wdt0;
		accel0 = &mpu6886;
	};

	gpio_keys {
		compatible = "gpio-keys";

		/* This is the button that's underneath the LCD display  */
		user_button_0: button_0 {
			label = "User button 0";
			gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; // G42
			zephyr,code = <INPUT_KEY_0>;
		};
	};

	/* Regulators */
	lcd_backlight_en {
		compatible = "regulator-fixed";
		regulator-name = "lcd_backlight_enable";
		enable-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
	};

};

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

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

&usb_serial {
	status = "okay";
};

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

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

	mpu6886: mpu6886@68 {
		compatible = "invensense,mpu6050";
		reg = <0x68>;
		status = "okay";
	};
};

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

&trng0 {
	status = "okay";
};

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

	st7789v: st7789v@0 {
		compatible = "sitronix,st7789v";
		reg = <0>;
		spi-max-frequency = <27000000>;
		cmd-data-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; /* G33 */
		reset-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;    /* G34 */

		width = <128>;
		height = <128>;
		x-offset = <2>;
		y-offset = <1>;

		vcom = <0x28>;
		gctrl = <0x35>;
		vrhs = <0x10>;
		vdvs = <0x20>;
		mdac = <0x00>;
		gamma = <0x01>;
		colmod = <0x55>;
		lcm = <0x0c>;
		porch-param = [0c 0c 00 33 33];
		cmd2en-param = [5a 69 02 00];
		pwctrl1-param = [a4 a1];
		pvgam-param = [d0 00 02 07 0a 28 32 44 42 06 0e 12 14 17];
		nvgam-param = [d0 00 02 07 0a 28 31 54 47 0e 1c 17 1b 1e];
		ram-param = [00 E0];
		rgb-param = [40 02 14];
	};

};

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

&wdt0 {
	status = "okay";
};

&timer0 {
	status = "okay";
};

&timer1 {
	status = "okay";
};

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

		boot_partition: partition@0 {
			label = "mcuboot";
			reg = <0x00000000 0x0000F000>;
			read-only;
		};

		slot0_partition: partition@10000 {
			label = "image-0";
			reg = <0x00010000 0x00100000>;
		};

		slot1_partition: partition@110000 {
			label = "image-1";
			reg = <0x00110000 0x00100000>;
		};

		scratch_partition: partition@210000 {
			label = "image-scratch";
			reg = <0x00210000 0x00040000>;
		};

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