boards: xtensa: add support for DOIT ESP32 DevKit V1

This patch adds support for the DOIT ESP32 DevKit V1, an entry-level
development board based on the ESP32-WROOM-32.

Main features:
- ESP32-WROOM-32 module (4 MB Flash, 520 KB SRAM)
- Dual-core Xtensa LX6 processor up to 240 MHz
- 802.11b/g/n Wi-Fi and Bluetooth v4.2 BR/EDR + BLE
- CP2102 USB-to-UART bridge
- Onboard blue LED connected to GPIO2
- All GPIO pins exposed on 2x15 pin headers

The board has been tested with the following Zephyr samples:
- samples/basic/blinky
- samples/hello_world

Signed-off-by: Siratul Islam <sirat4757@gmail.com>
diff --git a/boards/others/doit_esp32_devkit_v1/Kconfig b/boards/others/doit_esp32_devkit_v1/Kconfig
new file mode 100644
index 0000000..47e001b
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/Kconfig
@@ -0,0 +1,7 @@
+# Copyright (c) 2025 Siratul Islam
+# SPDX-License-Identifier: Apache-2.0
+
+config HEAP_MEM_POOL_ADD_SIZE_BOARD
+	int
+	default 4096 if BOARD_DOIT_ESP32_DEVKIT_V1_ESP32_PROCPU
+	default 256 if BOARD_DOIT_ESP32_DEVKIT_V1_ESP32_APPCPU
diff --git a/boards/others/doit_esp32_devkit_v1/Kconfig.doit_esp32_devkit_v1 b/boards/others/doit_esp32_devkit_v1/Kconfig.doit_esp32_devkit_v1
new file mode 100644
index 0000000..091b762
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/Kconfig.doit_esp32_devkit_v1
@@ -0,0 +1,7 @@
+# Copyright (c) 2025 Siratul Islam
+# SPDX-License-Identifier: Apache-2.0
+
+config BOARD_DOIT_ESP32_DEVKIT_V1
+	select SOC_ESP32_WROOM_32UE_N4
+	select SOC_ESP32_PROCPU if BOARD_DOIT_ESP32_DEVKIT_V1_ESP32_PROCPU
+	select SOC_ESP32_APPCPU if BOARD_DOIT_ESP32_DEVKIT_V1_ESP32_APPCPU
diff --git a/boards/others/doit_esp32_devkit_v1/Kconfig.sysbuild b/boards/others/doit_esp32_devkit_v1/Kconfig.sysbuild
new file mode 100644
index 0000000..3a2d17a
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/Kconfig.sysbuild
@@ -0,0 +1,10 @@
+# Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd.
+# SPDX-License-Identifier: Apache-2.0
+
+choice BOOTLOADER
+	default BOOTLOADER_MCUBOOT
+endchoice
+
+choice BOOT_SIGNATURE_TYPE
+	default BOOT_SIGNATURE_TYPE_NONE
+endchoice
diff --git a/boards/others/doit_esp32_devkit_v1/board.cmake b/boards/others/doit_esp32_devkit_v1/board.cmake
new file mode 100644
index 0000000..ad53de1
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/board.cmake
@@ -0,0 +1,11 @@
+# Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd.
+# SPDX-License-Identifier: Apache-2.0
+
+if(NOT "${OPENOCD}" MATCHES "^${ESPRESSIF_TOOLCHAIN_PATH}/.*")
+  set(OPENOCD OPENOCD-NOTFOUND)
+endif()
+
+find_program(OPENOCD openocd PATHS ${ESPRESSIF_TOOLCHAIN_PATH}/openocd-esp32/bin NO_DEFAULT_PATH)
+
+include(${ZEPHYR_BASE}/boards/common/esp32.board.cmake)
+include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
diff --git a/boards/others/doit_esp32_devkit_v1/board.yml b/boards/others/doit_esp32_devkit_v1/board.yml
new file mode 100644
index 0000000..fd8bb44
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/board.yml
@@ -0,0 +1,6 @@
+board:
+  name: doit_esp32_devkit_v1
+  full_name: DOIT ESP32-DevKit-V1
+  vendor: others
+  socs:
+    - name: esp32
diff --git a/boards/others/doit_esp32_devkit_v1/doc/img/doit_esp32_devkit_v1.webp b/boards/others/doit_esp32_devkit_v1/doc/img/doit_esp32_devkit_v1.webp
new file mode 100644
index 0000000..d3912da
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doc/img/doit_esp32_devkit_v1.webp
Binary files differ
diff --git a/boards/others/doit_esp32_devkit_v1/doc/index.rst b/boards/others/doit_esp32_devkit_v1/doc/index.rst
new file mode 100644
index 0000000..b31e880
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doc/index.rst
@@ -0,0 +1,49 @@
+.. zephyr:board:: doit_esp32_devkit_v1
+
+Overview
+********
+
+DOIT ESP32 DevKit V1 is an entry-level development board based on the ESP32-WROOM-32 module.
+This board integrates complete Wi-Fi and Bluetooth Low Energy functions and exposes all GPIO pins
+on standard 2.54mm headers for easy prototyping.
+
+Hardware
+********
+
+This board uses ESP32 chip revision 1.1. A blue LED is connected to GPIO2, and a BOOT
+button is connected to GPIO0. The board has a micro-USB connector for power supply and programming/debugging.
+
+.. include:: ../../../espressif/common/soc-esp32-features.rst
+   :start-after: espressif-soc-esp32-features
+
+Supported Features
+==================
+
+.. zephyr:board-supported-hw::
+
+System Requirements
+*******************
+
+.. include:: ../../../espressif/common/system-requirements.rst
+   :start-after: espressif-system-requirements
+
+Programming and Debugging
+*************************
+
+.. zephyr:board-supported-runners::
+
+.. include:: ../../../espressif/common/building-flashing.rst
+   :start-after: espressif-building-flashing
+
+Debugging
+=========
+
+.. include:: ../../../espressif/common/openocd-debugging.rst
+   :start-after: espressif-openocd-debugging
+
+References
+**********
+
+.. target-notes::
+
+.. _`DOIT ESP32 DevKit V1 Schematic`: https://embedded-systems-design.github.io/overview-of-the-esp32-devkit-doit-v1/SchematicsforESP32.pdf
diff --git a/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1-pinctrl.dtsi b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1-pinctrl.dtsi
new file mode 100644
index 0000000..c3e0b70
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1-pinctrl.dtsi
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2025 Siratul Islam
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <zephyr/dt-bindings/pinctrl/esp-pinctrl-common.h>
+#include <dt-bindings/pinctrl/esp32-pinctrl.h>
+#include <zephyr/dt-bindings/pinctrl/esp32-gpio-sigmap.h>
+
+&pinctrl {
+	uart0_default: uart0_default {
+		group1 {
+			pinmux = <UART0_TX_GPIO1>;
+			output-high;
+		};
+
+		group2 {
+			pinmux = <UART0_RX_GPIO3>;
+			bias-pull-up;
+		};
+	};
+
+	uart2_default: uart2_default {
+		group1 {
+			pinmux = <UART2_TX_GPIO17>;
+		};
+
+		group2 {
+			pinmux = <UART2_RX_GPIO16>;
+			bias-pull-up;
+		};
+	};
+
+	spim2_default: spim2_default {
+		group1 {
+			pinmux = <SPIM2_MISO_GPIO12>,
+				 <SPIM2_SCLK_GPIO14>,
+				 <SPIM2_CSEL_GPIO15>;
+		};
+
+		group2 {
+			pinmux = <SPIM2_MOSI_GPIO13>;
+			output-low;
+		};
+	};
+
+	spim3_default: spim3_default {
+		group1 {
+			pinmux = <SPIM3_MISO_GPIO19>,
+				 <SPIM3_SCLK_GPIO18>,
+				 <SPIM3_CSEL_GPIO5>;
+		};
+
+		group2 {
+			pinmux = <SPIM3_MOSI_GPIO23>;
+			output-low;
+		};
+	};
+
+	i2c0_default: i2c0_default {
+		group1 {
+			pinmux = <I2C0_SDA_GPIO21>,
+				 <I2C0_SCL_GPIO22>;
+			bias-pull-up;
+			drive-open-drain;
+			output-high;
+		};
+	};
+
+	i2s0_default: i2s0_default {
+		group1 {
+			pinmux = <I2S0_O_WS_GPIO25>,
+				 <I2S0_O_BCK_GPIO26>,
+				 <I2S0_O_SD_GPIO27>,
+				 <I2S0_I_WS_GPIO33>,
+				 <I2S0_I_BCK_GPIO32>;
+			output-enable;
+		};
+
+		group2 {
+			pinmux = <I2S0_I_SD_GPIO35>;
+			input-enable;
+		};
+	};
+};
diff --git a/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu.dts b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu.dts
new file mode 100644
index 0000000..f6a684e
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu.dts
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2025 Siratul Islam
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/dts-v1/;
+
+#include <espressif/esp32/esp32_appcpu.dtsi>
+#include <espressif/partitions_0x1000_amp.dtsi>
+
+/ {
+	model = "DOIT ESP32-Devkit-V1 APPCPU";
+	compatible = "doit,esp32-devkit-v1";
+
+	chosen {
+		zephyr,sram = &sram1;
+		zephyr,ipc_shm = &shm0;
+		zephyr,ipc = &ipm0;
+		zephyr,flash = &flash0;
+		zephyr,code-partition = &slot0_appcpu_partition;
+	};
+};
+
+&ipm0 {
+	status = "okay";
+};
+
+&trng0 {
+	status = "okay";
+};
diff --git a/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu.yaml b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu.yaml
new file mode 100644
index 0000000..6adb516
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu.yaml
@@ -0,0 +1,27 @@
+identifier: doit_esp32_devkit_v1/esp32/appcpu
+name: DOIT ESP32-Devkit-V1 APPCPU
+vendor: others
+type: mcu
+arch: xtensa
+toolchain:
+  - zephyr
+supported:
+  - uart
+testing:
+  ignore_tags:
+    - net
+    - bluetooth
+    - flash
+    - cpp
+    - posix
+    - watchdog
+    - logging
+    - kernel
+    - pm
+    - gpio
+    - crypto
+    - eeprom
+    - heap
+    - cmsis_rtos
+    - jwt
+    - zdsp
diff --git a/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu_defconfig b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu_defconfig
new file mode 100644
index 0000000..15b838c
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_appcpu_defconfig
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: Apache-2.0
+
+CONFIG_CLOCK_CONTROL=y
+
+# Enable support for ESP32 chip revision 1.1
+CONFIG_ESP32_USE_UNSUPPORTED_REVISION=y
diff --git a/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu.dts b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu.dts
new file mode 100644
index 0000000..df4c0d5
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu.dts
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2025 Siratul Islam
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+/dts-v1/;
+
+#include <espressif/esp32/esp32_wroom_32ue_n4.dtsi>
+#include "doit_esp32_devkit_v1-pinctrl.dtsi"
+#include <zephyr/dt-bindings/input/input-event-codes.h>
+#include <zephyr/dt-bindings/input/esp32-touch-sensor-input.h>
+#include <espressif/partitions_0x1000_amp.dtsi>
+
+/ {
+	model = "DOIT ESP32-Devkit-V1 PROCPU";
+	compatible = "doit,esp32-devkit-v1";
+
+	aliases {
+		uart-0 = &uart0;
+		i2c-0 = &i2c0;
+		sw0 = &button0;
+		led0 = &blue_led;
+		watchdog0 = &wdt0;
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		blue_led: blue_led {
+			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+			label = "User LED";
+		};
+	};
+
+	buttons {
+		compatible = "gpio-keys";
+
+		button0: button_0 {
+			gpios = <&gpio0 0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
+			label = "BOOT Button";
+			zephyr,code = <INPUT_KEY_0>;
+		};
+	};
+
+	chosen {
+		zephyr,sram = &sram1;
+		zephyr,console = &uart0;
+		zephyr,shell-uart = &uart0;
+		zephyr,flash = &flash0;
+		zephyr,code-partition = &slot0_partition;
+		zephyr,bt-hci = &esp32_bt_hci;
+	};
+};
+
+&uart0 {
+	status = "okay";
+	current-speed = <115200>;
+	pinctrl-0 = <&uart0_default>;
+	pinctrl-names = "default";
+};
+
+&uart2 {
+	current-speed = <115200>;
+	pinctrl-0 = <&uart2_default>;
+	pinctrl-names = "default";
+};
+
+&gpio0 {
+	status = "okay";
+};
+
+&gpio1 {
+	status = "okay";
+};
+
+&touch {
+	debounce-interval-ms = <30>;
+	href-microvolt = <2700000>;
+	lref-microvolt = <500000>;
+	href-atten-microvolt = <1000000>;
+	filter-mode = <ESP32_TOUCH_FILTER_MODE_IIR_16>;
+	filter-debounce-cnt = <1>;
+	filter-noise-thr = <ESP32_TOUCH_FILTER_NOISE_THR_4_8TH>;
+	filter-jitter-step = <4>;
+	filter-smooth-level = <ESP32_TOUCH_FILTER_SMOOTH_MODE_IIR_2>;
+};
+
+&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";
+};
+
+&i2s0 {
+	pinctrl-0 = <&i2s0_default>;
+	pinctrl-names = "default";
+	status = "disabled";
+};
+
+&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";
+};
+
+&trng0 {
+	status = "okay";
+};
+
+&esp32_bt_hci {
+	status = "okay";
+};
+
+&wifi {
+	status = "okay";
+};
diff --git a/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu.yaml b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu.yaml
new file mode 100644
index 0000000..aee711c
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu.yaml
@@ -0,0 +1,20 @@
+identifier: doit_esp32_devkit_v1/esp32/procpu
+name: DOIT ESP32-Devkit-V1 PROCPU
+vendor: others
+type: mcu
+arch: xtensa
+toolchain:
+  - zephyr
+supported:
+  - adc
+  - gpio
+  - i2c
+  - i2s
+  - watchdog
+  - uart
+  - nvs
+  - pwm
+  - spi
+  - counter
+  - entropy
+  - input
diff --git a/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu_defconfig b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu_defconfig
new file mode 100644
index 0000000..6c85cb6
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/doit_esp32_devkit_v1_procpu_defconfig
@@ -0,0 +1,11 @@
+# Copyright (c) 2025 Siratul Islam
+# SPDX-License-Identifier: Apache-2.0
+
+CONFIG_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_UART_CONSOLE=y
+
+CONFIG_GPIO=y
+
+# Enable support for ESP32 chip revision 1.1
+CONFIG_ESP32_USE_UNSUPPORTED_REVISION=y
diff --git a/boards/others/doit_esp32_devkit_v1/support/openocd.cfg b/boards/others/doit_esp32_devkit_v1/support/openocd.cfg
new file mode 100644
index 0000000..338e6e4
--- /dev/null
+++ b/boards/others/doit_esp32_devkit_v1/support/openocd.cfg
@@ -0,0 +1,5 @@
+set ESP_RTOS none
+set ESP32_ONLYCPU 1
+
+source [find interface/ftdi/esp32_devkitj_v1.cfg]
+source [find target/esp32.cfg]