esp32: Extend support for S2 series, and S3 where applicable.

Improvements made:
- PSRAM support for S2
- partition definition for 16MiB flash
- correct ADC and DAC pins
- correct GPIO and IRQ pins
- S3 components in CMakeLists

Based on original commit made by Seon Rozenblum aka @UnexpectedMaker.

Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
Damien George
2021-05-06 10:58:12 +10:00
parent 4cdcbdb753
commit 5093d49fae
9 changed files with 201 additions and 16 deletions

View File

@@ -56,6 +56,8 @@ typedef struct _machine_pin_irq_obj_t {
} machine_pin_irq_obj_t;
STATIC const machine_pin_obj_t machine_pin_obj[] = {
#if CONFIG_IDF_TARGET_ESP32
{{&machine_pin_type}, GPIO_NUM_0},
{{&machine_pin_type}, GPIO_NUM_1},
{{&machine_pin_type}, GPIO_NUM_2},
@@ -78,17 +80,10 @@ STATIC const machine_pin_obj_t machine_pin_obj[] = {
{{&machine_pin_type}, GPIO_NUM_19},
{{NULL}, -1},
{{&machine_pin_type}, GPIO_NUM_21},
#if CONFIG_IDF_TARGET_ESP32
{{&machine_pin_type}, GPIO_NUM_22},
{{&machine_pin_type}, GPIO_NUM_23},
{{NULL}, -1},
{{&machine_pin_type}, GPIO_NUM_25},
#else
{{NULL}, -1},
{{NULL}, -1},
{{NULL}, -1},
{{NULL}, -1},
#endif
{{&machine_pin_type}, GPIO_NUM_26},
{{&machine_pin_type}, GPIO_NUM_27},
{{NULL}, -1},
@@ -103,6 +98,63 @@ STATIC const machine_pin_obj_t machine_pin_obj[] = {
{{&machine_pin_type}, GPIO_NUM_37},
{{&machine_pin_type}, GPIO_NUM_38},
{{&machine_pin_type}, GPIO_NUM_39},
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
{{&machine_pin_type}, GPIO_NUM_0},
{{&machine_pin_type}, GPIO_NUM_1},
{{&machine_pin_type}, GPIO_NUM_2},
{{&machine_pin_type}, GPIO_NUM_3},
{{&machine_pin_type}, GPIO_NUM_4},
{{&machine_pin_type}, GPIO_NUM_5},
{{&machine_pin_type}, GPIO_NUM_6},
{{&machine_pin_type}, GPIO_NUM_7},
{{&machine_pin_type}, GPIO_NUM_8},
{{&machine_pin_type}, GPIO_NUM_9},
{{&machine_pin_type}, GPIO_NUM_10},
{{&machine_pin_type}, GPIO_NUM_11},
{{&machine_pin_type}, GPIO_NUM_12},
{{&machine_pin_type}, GPIO_NUM_13},
{{&machine_pin_type}, GPIO_NUM_14},
{{&machine_pin_type}, GPIO_NUM_15},
{{&machine_pin_type}, GPIO_NUM_16},
{{&machine_pin_type}, GPIO_NUM_17},
{{&machine_pin_type}, GPIO_NUM_18},
#if CONFIG_USB_CDC_ENABLED
{{NULL}, -1}, // 19 is for native USB D-
{{NULL}, -1}, // 20 is for native USB D-
#else
{{&machine_pin_type}, GPIO_NUM_19},
{{&machine_pin_type}, GPIO_NUM_20},
#endif
{{&machine_pin_type}, GPIO_NUM_21},
{{NULL}, -1}, // 22 not a pin
{{NULL}, -1}, // 23 not a pin
{{NULL}, -1}, // 24 not a pin
{{NULL}, -1}, // 25 not a pin
{{NULL}, -1}, // 26 FLASH/PSRAM
{{NULL}, -1}, // 27 FLASH/PSRAM
{{NULL}, -1}, // 28 FLASH/PSRAM
{{NULL}, -1}, // 29 FLASH/PSRAM
{{NULL}, -1}, // 30 FLASH/PSRAM
{{NULL}, -1}, // 31 FLASH/PSRAM
{{NULL}, -1}, // 32 FLASH/PSRAM
{{&machine_pin_type}, GPIO_NUM_33},
{{&machine_pin_type}, GPIO_NUM_34},
{{&machine_pin_type}, GPIO_NUM_35},
{{&machine_pin_type}, GPIO_NUM_36},
{{&machine_pin_type}, GPIO_NUM_37},
{{&machine_pin_type}, GPIO_NUM_38},
{{&machine_pin_type}, GPIO_NUM_39}, // MTCLK
{{&machine_pin_type}, GPIO_NUM_40}, // MTDO
{{&machine_pin_type}, GPIO_NUM_41}, // MTDI
{{&machine_pin_type}, GPIO_NUM_42}, // MTMS
{{&machine_pin_type}, GPIO_NUM_43}, // U0TXD
{{&machine_pin_type}, GPIO_NUM_44}, // U0RXD
{{&machine_pin_type}, GPIO_NUM_45},
{{&machine_pin_type}, GPIO_NUM_46},
#endif
};
// forward declaration
@@ -399,6 +451,8 @@ const mp_obj_type_t machine_pin_type = {
STATIC const mp_obj_type_t machine_pin_irq_type;
STATIC const machine_pin_irq_obj_t machine_pin_irq_object[] = {
#if CONFIG_IDF_TARGET_ESP32
{{&machine_pin_irq_type}, GPIO_NUM_0},
{{&machine_pin_irq_type}, GPIO_NUM_1},
{{&machine_pin_irq_type}, GPIO_NUM_2},
@@ -421,17 +475,10 @@ STATIC const machine_pin_irq_obj_t machine_pin_irq_object[] = {
{{&machine_pin_irq_type}, GPIO_NUM_19},
{{NULL}, -1},
{{&machine_pin_irq_type}, GPIO_NUM_21},
#if CONFIG_IDF_TARGET_ESP32
{{&machine_pin_irq_type}, GPIO_NUM_22},
{{&machine_pin_irq_type}, GPIO_NUM_23},
{{NULL}, -1},
{{&machine_pin_irq_type}, GPIO_NUM_25},
#else
{{NULL}, -1},
{{NULL}, -1},
{{NULL}, -1},
{{NULL}, -1},
#endif
{{&machine_pin_irq_type}, GPIO_NUM_26},
{{&machine_pin_irq_type}, GPIO_NUM_27},
{{NULL}, -1},
@@ -446,6 +493,62 @@ STATIC const machine_pin_irq_obj_t machine_pin_irq_object[] = {
{{&machine_pin_irq_type}, GPIO_NUM_37},
{{&machine_pin_irq_type}, GPIO_NUM_38},
{{&machine_pin_irq_type}, GPIO_NUM_39},
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
{{&machine_pin_irq_type}, GPIO_NUM_0},
{{&machine_pin_irq_type}, GPIO_NUM_1},
{{&machine_pin_irq_type}, GPIO_NUM_2},
{{&machine_pin_irq_type}, GPIO_NUM_3},
{{&machine_pin_irq_type}, GPIO_NUM_4},
{{&machine_pin_irq_type}, GPIO_NUM_5},
{{&machine_pin_irq_type}, GPIO_NUM_6},
{{&machine_pin_irq_type}, GPIO_NUM_7},
{{&machine_pin_irq_type}, GPIO_NUM_8},
{{&machine_pin_irq_type}, GPIO_NUM_9},
{{&machine_pin_irq_type}, GPIO_NUM_10},
{{&machine_pin_irq_type}, GPIO_NUM_11},
{{&machine_pin_irq_type}, GPIO_NUM_12},
{{&machine_pin_irq_type}, GPIO_NUM_13},
{{&machine_pin_irq_type}, GPIO_NUM_14},
{{&machine_pin_irq_type}, GPIO_NUM_15},
{{&machine_pin_irq_type}, GPIO_NUM_16},
{{&machine_pin_irq_type}, GPIO_NUM_17},
{{&machine_pin_irq_type}, GPIO_NUM_18},
#if CONFIG_USB_CDC_ENABLED
{{NULL}, -1}, // 19 is for native USB D-
{{NULL}, -1}, // 20 is for native USB D-
#else
{{&machine_pin_irq_type}, GPIO_NUM_19},
{{&machine_pin_irq_type}, GPIO_NUM_20},
#endif
{{&machine_pin_irq_type}, GPIO_NUM_21},
{{NULL}, -1}, // 22 not a pin
{{NULL}, -1}, // 23 not a pin
{{NULL}, -1}, // 24 not a pin
{{NULL}, -1}, // 25 not a pin
{{NULL}, -1}, // 26 FLASH/PSRAM
{{NULL}, -1}, // 27 FLASH/PSRAM
{{NULL}, -1}, // 28 FLASH/PSRAM
{{NULL}, -1}, // 29 FLASH/PSRAM
{{NULL}, -1}, // 30 FLASH/PSRAM
{{NULL}, -1}, // 31 FLASH/PSRAM
{{NULL}, -1}, // 32 FLASH/PSRAM
{{&machine_pin_irq_type}, GPIO_NUM_33},
{{&machine_pin_irq_type}, GPIO_NUM_34},
{{&machine_pin_irq_type}, GPIO_NUM_35},
{{&machine_pin_irq_type}, GPIO_NUM_36},
{{&machine_pin_irq_type}, GPIO_NUM_37},
{{&machine_pin_irq_type}, GPIO_NUM_38},
{{&machine_pin_irq_type}, GPIO_NUM_39},
{{&machine_pin_irq_type}, GPIO_NUM_40},
{{&machine_pin_irq_type}, GPIO_NUM_41},
{{&machine_pin_irq_type}, GPIO_NUM_42},
{{&machine_pin_irq_type}, GPIO_NUM_43},
{{&machine_pin_irq_type}, GPIO_NUM_44},
{{&machine_pin_irq_type}, GPIO_NUM_45},
#endif
};
STATIC mp_obj_t machine_pin_irq_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const mp_obj_t *args) {