From cf39f158542d75e67ada702d4cee59c3999414d6 Mon Sep 17 00:00:00 2001
From: Jeason <jeason1997@live.cn>
Date: Wed, 19 Feb 2025 08:31:33 +0000
Subject: [PATCH] Adding ESP32-C2 2M flash board

---
 .../espressif_esp8684_devkitc_02_n2/board.c   |  9 +++++
 .../mpconfigboard.h                           | 21 ++++++++++
 .../mpconfigboard.mk                          |  8 ++++
 .../espressif_esp8684_devkitc_02_n2/pins.c    | 30 ++++++++++++++
 .../espressif_esp8684_devkitc_02_n2/sdkconfig | 39 +++++++++++++++++++
 5 files changed, 107 insertions(+)
 create mode 100644 ports/espressif/boards/espressif_esp8684_devkitc_02_n2/board.c
 create mode 100644 ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.h
 create mode 100644 ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.mk
 create mode 100644 ports/espressif/boards/espressif_esp8684_devkitc_02_n2/pins.c
 create mode 100644 ports/espressif/boards/espressif_esp8684_devkitc_02_n2/sdkconfig

diff --git a/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/board.c b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/board.c
new file mode 100644
index 0000000000000..a3a9eec047145
--- /dev/null
+++ b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/board.c
@@ -0,0 +1,9 @@
+// This file is part of the CircuitPython project: https://circuitpython.org
+//
+// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
+//
+// SPDX-License-Identifier: MIT
+
+#include "supervisor/board.h"
+
+// Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.
diff --git a/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.h b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.h
new file mode 100644
index 0000000000000..a560fd0c22e75
--- /dev/null
+++ b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.h
@@ -0,0 +1,21 @@
+// This file is part of the CircuitPython project: https://circuitpython.org
+//
+// SPDX-FileCopyrightText: Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
+//
+// SPDX-License-Identifier: MIT
+
+// Micropython setup
+
+#define MICROPY_HW_BOARD_NAME       "ESP8684-DevKitC-02-N2"
+#define MICROPY_HW_MCU_NAME         "ESP32C2"
+
+#define CIRCUITPY_RGB_STATUS_INVERTED_PWM
+#define CIRCUITPY_RGB_STATUS_R         (&pin_GPIO0)
+#define CIRCUITPY_RGB_STATUS_G         (&pin_GPIO1)
+#define CIRCUITPY_RGB_STATUS_B         (&pin_GPIO8)
+
+#define DEFAULT_UART_BUS_RX         (&pin_GPIO19)
+#define DEFAULT_UART_BUS_TX         (&pin_GPIO20)
+
+#define CIRCUITPY_CONSOLE_UART_RX DEFAULT_UART_BUS_RX
+#define CIRCUITPY_CONSOLE_UART_TX DEFAULT_UART_BUS_TX
diff --git a/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.mk b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.mk
new file mode 100644
index 0000000000000..a43173ad38075
--- /dev/null
+++ b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/mpconfigboard.mk
@@ -0,0 +1,8 @@
+CIRCUITPY_CREATOR_ID = 0x000C303A
+CIRCUITPY_CREATION_ID = 0x00C20000
+
+IDF_TARGET = esp32c2
+
+CIRCUITPY_ESP_FLASH_MODE = qio
+CIRCUITPY_ESP_FLASH_FREQ = 60m
+CIRCUITPY_ESP_FLASH_SIZE = 2MB
diff --git a/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/pins.c b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/pins.c
new file mode 100644
index 0000000000000..e7bf8a7764b8c
--- /dev/null
+++ b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/pins.c
@@ -0,0 +1,30 @@
+#include "shared-bindings/board/__init__.h"
+
+static const mp_rom_map_elem_t board_module_globals_table[] = {
+    CIRCUITPYTHON_BOARD_DICT_STANDARD_ITEMS
+
+    { MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
+    { MP_ROM_QSTR(MP_QSTR_LED_RED), MP_ROM_PTR(&pin_GPIO0) },
+    { MP_ROM_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },
+    { MP_ROM_QSTR(MP_QSTR_LED_GREEN), MP_ROM_PTR(&pin_GPIO1) },
+    { MP_ROM_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },
+    { MP_ROM_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },
+    { MP_ROM_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },
+    { MP_ROM_QSTR(MP_QSTR_IO5), MP_ROM_PTR(&pin_GPIO5) },
+    { MP_ROM_QSTR(MP_QSTR_IO6), MP_ROM_PTR(&pin_GPIO6) },
+    { MP_ROM_QSTR(MP_QSTR_IO7), MP_ROM_PTR(&pin_GPIO7) },
+    { MP_ROM_QSTR(MP_QSTR_IO8), MP_ROM_PTR(&pin_GPIO8) },
+    { MP_ROM_QSTR(MP_QSTR_LED_BLUE), MP_ROM_PTR(&pin_GPIO8) },
+    { MP_ROM_QSTR(MP_QSTR_IO9), MP_ROM_PTR(&pin_GPIO9) },
+    { MP_ROM_QSTR(MP_QSTR_IO10), MP_ROM_PTR(&pin_GPIO10) },
+
+    { MP_ROM_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },
+    { MP_ROM_QSTR(MP_QSTR_IO19), MP_ROM_PTR(&pin_GPIO19) },
+    { MP_ROM_QSTR(MP_QSTR_IO20), MP_ROM_PTR(&pin_GPIO20) },
+
+    { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO20) },
+    { MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO19) },
+
+    { MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
+};
+MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table);
diff --git a/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/sdkconfig b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/sdkconfig
new file mode 100644
index 0000000000000..f53dd7f8795bc
--- /dev/null
+++ b/ports/espressif/boards/espressif_esp8684_devkitc_02_n2/sdkconfig
@@ -0,0 +1,39 @@
+#
+# Espressif IoT Development Framework Configuration
+#
+#
+# Serial flasher config
+#
+CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
+# end of Serial flasher config
+
+#
+# Component config
+#
+#
+# Hardware Settings
+#
+#
+# Main XTAL Config
+#
+CONFIG_XTAL_FREQ_26=y
+# CONFIG_XTAL_FREQ_40 is not set
+CONFIG_XTAL_FREQ=26
+# end of Main XTAL Config
+
+# end of Hardware Settings
+
+#
+# ESP System Settings
+#
+CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
+# end of ESP System Settings
+
+#
+# LWIP
+#
+# end of LWIP
+
+# end of Component config
+
+# end of Espressif IoT Development Framework Configuration