esp_hw_support/sleep: fix current leakage when hold digital io during deep sleep

This commit is contained in:
jingli
2022-09-16 20:25:44 +08:00
parent d0e2a8d73c
commit b903a2253b
25 changed files with 485 additions and 24 deletions

View File

@@ -5,6 +5,7 @@
*/
#include "soc/gpio_periph.h"
#include "esp_attr.h"
const uint32_t GPIO_PIN_MUX_REG[] = {
IO_MUX_GPIO0_REG,
@@ -49,6 +50,49 @@ const uint32_t GPIO_PIN_MUX_REG[] = {
IO_MUX_GPIO39_REG,
};
DRAM_ATTR const uint8_t GPIO_PIN_MUX_REG_OFFSET[] = {
0x44,
0x88,
0x40,
0x84,
0x48,
0x6c,
0x60,
0x64,
0x68,
0x54,
0x58,
0x5c,
0x34,
0x38,
0x30,
0x3c,
0x4c,
0x50,
0x70,
0x74,
0x78,
0x7c,
0x80,
0x8c,
0xFF, // 24
0x24,
0x28,
0x2c,
0xFF, // 28
0xFF, // 29
0xFF, // 30
0xFF, // 31
0x1c,
0x20,
0x14,
0x18,
0x04,
0x08,
0x0c,
0x10,
};
_Static_assert(sizeof(GPIO_PIN_MUX_REG) == SOC_GPIO_PIN_COUNT * sizeof(uint32_t), "Invalid size of GPIO_PIN_MUX_REG");
const uint32_t GPIO_HOLD_MASK[] = {