Add ESP32-C6 GPIO26/28 in template

Add ESP32-C6 GPIO26/28 in template as Red pins used by flash (QIO) but optionally free if DIO/DOUT
This commit is contained in:
Theo Arends 2023-08-30 15:14:46 +02:00
parent 8e8e019e0f
commit 62c36a49b3
2 changed files with 16 additions and 14 deletions

View File

@ -2855,8 +2855,8 @@ const mytmplt kModules[] PROGMEM = {
AGPIO(GPIO_USER), // 9 IO GPIO9, Strapping
AGPIO(GPIO_USER), // 10 IO GPIO10
0, // 11 IO GPIO11, output power supply for flash
0, // 12 IO GPIO12, SPIHD
0, // 13 IO GPIO13, SPIWP
0, // 12 IO GPIO12, SPIHD - Free if flash DIO/DOUT
0, // 13 IO GPIO13, SPIWP - Free if flash DIO/DOUT
0, // 14 IO GPIO14, SPICS0
0, // 15 IO GPIO15, SPICLK
0, // 16 IO GPIO16, SPID
@ -2909,8 +2909,8 @@ const mytmplt kModules[] PROGMEM = {
AGPIO(GPIO_USER), // 9 IO GPIO9
AGPIO(GPIO_USER), // 10 IO GPIO10
0, // 11 IO GPIO11, output power supply for flash
0, // 12 IO GPIO12, SPIHD
0, // 13 IO GPIO13, SPIWP
0, // 12 IO GPIO12, SPIHD - Free if flash DIO/DOUT
0, // 13 IO GPIO13, SPIWP - Free if flash DIO/DOUT
0, // 14 IO GPIO14, SPICS0
0, // 15 IO GPIO15, SPICLK
0, // 16 IO GPIO16, SPID
@ -2978,9 +2978,9 @@ const mytmplt kModules[] PROGMEM = {
AGPIO(GPIO_USER), // 23 IO GPIO23, SDIO_DATA3
0, // 24 IO GPIO24, SPICS1, PSRAM
0, // 25 IO GPIO25, SPIQ
0, // 26 IO GPIO26, SPIWP
0, // 26 IO GPIO26, SPIWP - Free if flash DIO/DOUT
0, // 27 IO GPIO27, SPIVDD
0, // 28 IO GPIO28, SPIHD
0, // 28 IO GPIO28, SPIHD - Free if flash DIO/DOUT
0, // 29 IO GPIO29, SPICLK
0, // 30 IO GPIO30, SPID
0 // Flag

View File

@ -1682,26 +1682,28 @@ bool FlashPin(uint32_t pin) {
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3
return (((pin > 10) && (pin < 12)) || ((pin > 13) && (pin < 18))); // ESP32C3 has GPIOs 11-17 reserved for Flash, with some boards GPIOs 12 13 are useable
#elif CONFIG_IDF_TARGET_ESP32C6
return (pin > 23); // ESP32C6 flash pins 24-30
return ((pin == 24) || (pin == 25) || (pin == 27) || (pin == 29) || (pin == 30)); // ESP32C6 has GPIOs 24-30 reserved for Flash, with some boards GPIOs 26 28 are useable
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
return (pin > 21) && (pin < 33); // ESP32S2 skip 22-32
return (pin > 21) && (pin < 33); // ESP32S2 skip 22-32
#else
return (pin >= 28) && (pin <= 31); // ESP32 skip 28-31
return (pin >= 28) && (pin <= 31); // ESP32 skip 28-31
#endif // ESP32C2/C3/C6 and S2/S3
#endif // ESP32
}
bool RedPin(uint32_t pin) { // Pin may be dangerous to change, display in RED in template console
bool RedPin(uint32_t pin) { // Pin may be dangerous to change, display in RED in template console
#ifdef ESP8266
return (9 == pin) || (10 == pin);
#endif // ESP8266
#ifdef ESP32
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3
return (12 == pin) || (13 == pin); // ESP32C3: GPIOs 12 13 are usually used for Flash (mode QIO/QOUT)
#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S2
return false; // No red pin on ESP32C6 and ESP32S3
return (12 == pin) || (13 == pin); // ESP32C3: GPIOs 12 13 are usually used for Flash (mode QIO/QOUT)
#elif CONFIG_IDF_TARGET_ESP32C6
return (26 == pin) || (28 == pin); // ESP32C6: GPIOs 26 28 are usually used for Flash (mode QIO/QOUT)
#elif CONFIG_IDF_TARGET_ESP32S2
return false; // No red pin on ESP32S3
#elif CONFIG_IDF_TARGET_ESP32S3
return (33 <= pin) && (37 >= pin); // ESP32S3: GPIOs 33..37 are usually used for PSRAM
return (33 <= pin) && (37 >= pin); // ESP32S3: GPIOs 33..37 are usually used for PSRAM
#else // ESP32 red pins are 6-11 for original ESP32, other models like PICO are not impacted if flash pins are condfigured
// PICO can also have 16/17/18/23 not available
return ((6 <= pin) && (11 >= pin)) || (16 == pin) || (17 == pin); // TODO adapt depending on the exact type of ESP32