Skip to content

Commit a459875

Browse files
committed
Revert "GPIO refactoring (espressif#6259)"
This partly reverts commit c7cc5c9.
1 parent ab197e1 commit a459875

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

Diff for: cores/esp32/esp32-hal-gpio.c

+11
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "esp32-hal-gpio.h"
1616
#include "hal/gpio_hal.h"
1717
#include "soc/soc_caps.h"
18+
#include "pins_arduino.h"
1819

1920
// It fixes lack of pin definition for S3 and for any future SoC
2021
// this function works for ESP32, ESP32-S2 and ESP32-S3 - including the C3, it will return -1 for any pin
@@ -119,6 +120,16 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
119120
log_e("GPIO config failed");
120121
return;
121122
}
123+
124+
if(mode == SPECIAL){
125+
#if CONFIG_IDF_TARGET_ESP32
126+
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[pin], (uint32_t)(((pin)==RX||(pin)==TX)?0:1));
127+
#elif CONFIG_IDF_TARGET_ESP32S2
128+
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[pin], (uint32_t)(((pin)==RX||(pin)==TX)?0:2));
129+
#endif
130+
} else if(mode >= 0x20 && mode < ANALOG) {//function
131+
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[pin], mode >> 5);
132+
}
122133
}
123134

124135
extern void ARDUINO_ISR_ATTR __digitalWrite(uint8_t pin, uint8_t val)

0 commit comments

Comments
 (0)