Skip to content

Commit 3cb48f1

Browse files
committed
Fix ESP32 OneWire
Fix ESP32 OneWire to work with Core 2.x (#13666)
1 parent cfaf0b2 commit 3cb48f1

File tree

1 file changed

+18
-10
lines changed
  • lib/lib_basic/OneWire-Stickbreaker-20190506-1.1

1 file changed

+18
-10
lines changed

lib/lib_basic/OneWire-Stickbreaker-20190506-1.1/OneWire.h

+18-10
Original file line numberDiff line numberDiff line change
@@ -211,12 +211,16 @@ void directModeInput(IO_REG_TYPE pin)
211211
ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_gpio_desc[pin].pullup | rtc_gpio_desc[pin].pulldown);
212212
}
213213
#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);
215215

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+
}
220224
}
221225
#endif
222226

@@ -253,12 +257,16 @@ void directModeOutput(IO_REG_TYPE pin)
253257
ESP_REG(rtc_reg) = ESP_REG(rtc_reg) & ~(rtc_gpio_desc[pin].pullup | rtc_gpio_desc[pin].pulldown);
254258
}
255259
#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);
257261

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+
}
262270
}
263271
#endif
264272

0 commit comments

Comments
 (0)