@@ -69,6 +69,10 @@ import {
6969 ESP32H2_EFUSE_BLOCK1_ADDR ,
7070 ESP32P4_EFUSE_BLOCK1_ADDR ,
7171 ESP32S31_EFUSE_BLOCK1_ADDR ,
72+ ESP32S31_RTC_CNTL_WDTWPROTECT_REG ,
73+ ESP32S31_RTC_CNTL_WDTCONFIG0_REG ,
74+ ESP32S31_RTC_CNTL_WDTCONFIG1_REG ,
75+ ESP32S31_RTC_CNTL_WDT_WKEY ,
7276 SlipReadError ,
7377 ESP32S2_RTC_CNTL_WDTWPROTECT_REG ,
7478 ESP32S2_RTC_CNTL_WDTCONFIG0_REG ,
@@ -1640,6 +1644,12 @@ export class ESPLoader extends EventTarget {
16401644 WDTCONFIG0_REG = ESP32P4_RTC_CNTL_WDTCONFIG0_REG ;
16411645 WDTCONFIG1_REG = ESP32P4_RTC_CNTL_WDTCONFIG1_REG ;
16421646 WDT_WKEY = ESP32P4_RTC_CNTL_WDT_WKEY ;
1647+ } else if ( this . chipFamily === CHIP_FAMILY_ESP32S31 ) {
1648+ // S31 uses LP_WDT (Low Power Watchdog Timer)
1649+ WDTWPROTECT_REG = ESP32S31_RTC_CNTL_WDTWPROTECT_REG ;
1650+ WDTCONFIG0_REG = ESP32S31_RTC_CNTL_WDTCONFIG0_REG ;
1651+ WDTCONFIG1_REG = ESP32S31_RTC_CNTL_WDTCONFIG1_REG ;
1652+ WDT_WKEY = ESP32S31_RTC_CNTL_WDT_WKEY ;
16431653 } else {
16441654 throw new Error (
16451655 `rtcWdtResetChipSpecific() is not supported for ${ this . chipFamily } ` ,
@@ -1700,12 +1710,13 @@ export class ESPLoader extends EventTarget {
17001710
17011711 // Check if chip supports WDT reset
17021712 // WDT reset is not needed for ESP32-C3
1703- // WDT reset is supported by: ESP32-S2, ESP32-S3, ESP32-P4
1713+ // WDT reset is supported by: ESP32-S2, ESP32-S3, ESP32-P4, ESP32-S31
17041714 // WDT reset is NOT supported by: ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2
17051715 const supportsWdtReset =
17061716 this . chipFamily === CHIP_FAMILY_ESP32S2 ||
17071717 this . chipFamily === CHIP_FAMILY_ESP32S3 ||
1708- this . chipFamily === CHIP_FAMILY_ESP32P4 ;
1718+ this . chipFamily === CHIP_FAMILY_ESP32P4 ||
1719+ this . chipFamily === CHIP_FAMILY_ESP32S31 ;
17091720
17101721 if ( ! supportsWdtReset ) {
17111722 this . logger . debug (
0 commit comments