/*
 * Copyright (c) 2019 Yannis Damigos
 *
 * SPDX-License-Identifier: Apache-2.0
 */
/dts-v1/;

#include "espressif/esp32.dtsi"
#include "odroid_go-pinctrl.dtsi"

/ {
	model = "ODROID-GO Game Kit";
	compatible = "hardkernel,odroid_go", "espressif,esp32";

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

	leds {
		compatible = "gpio-leds";
		blue_led: led {
			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
			label = "Status Led";
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		menu_button: menu_button {
			label = "Menu";
			gpios = <&gpio0 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		};
		volume_button: volume_button {
			label = "Volume";
			gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
		};
		select_button: select_button {
			label = "Select";
			gpios = <&gpio0 27 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		};
		a_button: a_button {
			label = "A";
			gpios = <&gpio1 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		};
		b_button: b_button {
			label = "B";
			gpios = <&gpio1 1 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
		};
		start_button: start_button {
			label = "Start";
			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
		};
	};

	lcd_backlight_en {
		compatible = "regulator-fixed-sync", "regulator-fixed";
		label = "lcd_backlight_enable";
		regulator-name = "lcd_backlight_enable";
		enable-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
		regulator-boot-on;
	};

	aliases {
		uart-0 = &uart0;
		led0 = &blue_led;
		sw0 = &menu_button;
		watchdog0 = &wdt0;
	};
};

&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_FAST>;
	sda-gpios = <&gpio0 4 GPIO_OPEN_DRAIN>;
	scl-gpios = <&gpio0 15 GPIO_OPEN_DRAIN>;
	pinctrl-0 = <&i2c0_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";
		label = "DISPLAY";
		spi-max-frequency = <25000000>;
		reg = <0>;
		cmd-data-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
		pixel-format = <0>;
		rotation = <270>;
		width = <320>;
		height = <240>;
	};

	sdhc0: sdhc@1 {
		compatible = "zephyr,sdhc-spi-slot";
		reg = <1>;
		status = "okay";
		label = "SDHC_0";
		mmc {
			compatible = "zephyr,sdmmc-disk";
			status = "okay";
			label = "SDMMC_0";
		};
		spi-max-frequency = <20000000>;
	};
};

&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>;
		};
	};
};
