/*
 * Copyright (c) 2023 Bartosz Bilas
 *
 * SPDX-License-Identifier: Apache-2.0
 */
/dts-v1/;

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

/ {
	model = "Kincony KC868_A32 PROCPU";
	compatible = "espressif,esp32";

	aliases {
		uart-0 = &uart0;
		watchdog0 = &wdt0;
	};

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

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

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

&gpio0 {
	status = "okay";
};

&gpio1 {
	status = "okay";
};

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

	i2c0_pcf8574@21 {
		 compatible = "nxp,pcf857x";
		 reg = <0x21>;
		 gpio-controller;
		 #gpio-cells = <2>;
		 ngpios = <8>;
	};

	i2c0_pcf8574@22 {
		 compatible = "nxp,pcf857x";
		 reg = <0x22>;
		 gpio-controller;
		 #gpio-cells = <2>;
		 ngpios = <8>;
	};

	i2c0_pcf8574@24 {
		 compatible = "nxp,pcf857x";
		 reg = <0x24>;
		 gpio-controller;
		 #gpio-cells = <2>;
		 ngpios = <8>;
	};

	i2c0_pcf8574@25 {
		 compatible = "nxp,pcf857x";
		 reg = <0x25>;
		 gpio-controller;
		 #gpio-cells = <2>;
		 ngpios = <8>;
	};
};

&i2c1 {
	status = "okay";
	clock-frequency = <I2C_BITRATE_STANDARD>;
	sda-gpios = <&gpio0 4 GPIO_OPEN_DRAIN>;
	scl-gpios = <&gpio0 5 GPIO_OPEN_DRAIN>;
	pinctrl-0 = <&i2c1_default>;
	pinctrl-names = "default";

	i2c1_pcf8574@21 {
		compatible = "nxp,pcf857x";
		reg = <0x21>;
		gpio-controller;
		#gpio-cells = <2>;
		ngpios = <8>;
	};

	i2c1_pcf8574@22 {
		compatible = "nxp,pcf857x";
		reg = <0x22>;
		gpio-controller;
		#gpio-cells = <2>;
		ngpios = <8>;
	};

	i2c1_pcf8574@24 {
		compatible = "nxp,pcf857x";
		reg = <0x24>;
		gpio-controller;
		#gpio-cells = <2>;
		ngpios = <8>;
	};

	i2c1_pcf8574@25 {
		compatible = "nxp,pcf857x";
		reg = <0x25>;
		gpio-controller;
		#gpio-cells = <2>;
		ngpios = <8>;
	};
};

&mdio {
	pinctrl-0 = <&mdio_default>;
	pinctrl-names = "default";
	status = "okay";

	phy: ethernet-phy@0 {
		compatible = "ethernet-phy";
		status = "okay";
		reg = <0>;
	};
};

&eth {
	status = "okay";
	phy-handle = <&phy>;
	ref-clk-output-gpios = <&gpio0 17 0>;
};

&psram0 {
	status = "disabled";
};

&timer0 {
	status = "okay";
};

&timer1 {
	status = "okay";
};

&timer2 {
	status = "okay";
};

&timer3 {
	status = "okay";
};

&trng0 {
	status = "okay";
};

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

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