@@ -211,12 +211,16 @@ void directModeInput(IO_REG_TYPE pin)
211
211
ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_gpio_desc[pin].pullup | rtc_gpio_desc[pin].pulldown );
212
212
}
213
213
#elif ESP_IDF_VERSION_MAJOR > 3 // ESP32-S2 needs IDF 4.2 or later
214
- uint32_t rtc_reg (rtc_io_desc[ pin]. reg );
214
+ int rtcio_num = rtc_io_number_get (( gpio_num_t ) pin);
215
215
216
- if ( rtc_reg ) // RTC pins PULL settings
217
- {
218
- ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[pin].mux );
219
- ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[pin].pullup | rtc_io_desc[pin].pulldown );
216
+ if (rtcio_num >= 0 ) {
217
+ uint32_t rtc_reg (rtc_io_desc[rtcio_num].reg );
218
+
219
+ if ( rtc_reg ) // RTC pins PULL settings
220
+ {
221
+ ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[rtcio_num].mux );
222
+ ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[rtcio_num].pullup | rtc_io_desc[rtcio_num].pulldown );
223
+ }
220
224
}
221
225
#endif
222
226
@@ -253,12 +257,16 @@ void directModeOutput(IO_REG_TYPE pin)
253
257
ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_gpio_desc[pin].pullup | rtc_gpio_desc[pin].pulldown );
254
258
}
255
259
#elif ESP_IDF_VERSION_MAJOR > 3 // ESP32-S2 needs IDF 4.2 or later
256
- uint32_t rtc_reg (rtc_io_desc[ pin]. reg );
260
+ int rtcio_num = rtc_io_number_get (( gpio_num_t ) pin);
257
261
258
- if ( rtc_reg ) // RTC pins PULL settings
259
- {
260
- ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[pin].mux );
261
- ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[pin].pullup | rtc_io_desc[pin].pulldown );
262
+ if (rtcio_num >= 0 ) {
263
+ uint32_t rtc_reg (rtc_io_desc[rtcio_num].reg );
264
+
265
+ if ( rtc_reg ) // RTC pins PULL settings
266
+ {
267
+ ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[rtcio_num].mux );
268
+ ESP_REG (rtc_reg) = ESP_REG (rtc_reg) & ~(rtc_io_desc[rtcio_num].pullup | rtc_io_desc[rtcio_num].pulldown );
269
+ }
262
270
}
263
271
#endif
264
272
0 commit comments