Merge pull request #9324 from tannewt/more_esp_deep_sleep
Enable deep sleep on all ESP chips
This commit is contained in:
commit
8dc7364b48
50 changed files with 294 additions and 221 deletions
|
|
@ -407,7 +407,11 @@ ifeq ($(UF2_BOOTLOADER), 1)
|
|||
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE).defaults
|
||||
else
|
||||
ifeq ($(CIRCUITPY_ESP_FLASH_SIZE), 4MB)
|
||||
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2.defaults
|
||||
ifeq ($(CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT), 1)
|
||||
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-uf2.defaults
|
||||
else
|
||||
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-ota-no-uf2.defaults
|
||||
endif
|
||||
else
|
||||
FLASH_SIZE_SDKCONFIG ?= esp-idf-config/sdkconfig-flash-$(CIRCUITPY_ESP_FLASH_SIZE)-no-uf2.defaults
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -7,10 +7,7 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 0
|
||||
|
|
|
|||
|
|
@ -8,9 +8,6 @@ CIRCUITPY_ESP_FLASH_MODE=qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -11,7 +11,4 @@ CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -11,7 +11,4 @@ CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -14,10 +14,7 @@ CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = opi
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
CIRCUITPY_BITMAPFILTER = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -14,7 +14,4 @@ CIRCUITPY_ESP_PSRAM_SIZE = 2MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -8,7 +8,4 @@ CIRCUITPY_ESP_FLASH_FREQ = 80m
|
|||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -13,10 +13,7 @@ CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 40m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_CANIO = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ CIRCUITPY_ESP_PSRAM_SIZE = 4MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 40m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 0
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_AUDIOMP3 = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE=qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -7,10 +7,7 @@ CIRCUITPY_ESP_FLASH_MODE=qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE=dio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE=dio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE=qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 0
|
||||
|
|
|
|||
|
|
@ -8,9 +8,6 @@ CIRCUITPY_ESP_FLASH_FREQ = 80m
|
|||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
SRC_C += pmic/axp192/axp192.c
|
||||
|
|
|
|||
|
|
@ -8,9 +8,6 @@ CIRCUITPY_ESP_FLASH_FREQ = 80m
|
|||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
SRC_C += pmic/axp192/axp192.c
|
||||
|
|
|
|||
|
|
@ -11,7 +11,4 @@ CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = opi
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE=dio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -8,9 +8,6 @@ CIRCUITPY_ESP_FLASH_MODE=dio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
IDF_TARGET = esp32
|
||||
|
|
|
|||
|
|
@ -7,9 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE=qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ=80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE=4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG = 1
|
||||
|
|
|
|||
|
|
@ -9,7 +9,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
|||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -11,7 +11,4 @@ CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -11,7 +11,4 @@ CIRCUITPY_ESP_PSRAM_SIZE = 8MB
|
|||
CIRCUITPY_ESP_PSRAM_MODE = qio
|
||||
CIRCUITPY_ESP_PSRAM_FREQ = 80m
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ CIRCUITPY_ESP_FLASH_MODE = qio
|
|||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
||||
CIRCUITPY_AUDIOMP3 = 0
|
||||
|
|
|
|||
|
|
@ -9,7 +9,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
|||
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
|
||||
# Override partition layout to preserve compatibility because the default has changed.
|
||||
FLASH_SIZE_SDKCONFIG = esp-idf-config/sdkconfig-flash-4MB-no-uf2.defaults
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT = 1
|
||||
|
|
|
|||
|
|
@ -21,7 +21,10 @@
|
|||
// is set. Any memory not allocated by us can be used by the ESP-IDF for heap or other purposes.
|
||||
|
||||
// Use half of RTC_SLOW_MEM or RTC_FAST_MEM.
|
||||
#ifdef CONFIG_IDF_TARGET_ESP32
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32H2)
|
||||
// H2 has 4k of low power RAM
|
||||
#define SLEEP_MEMORY_LENGTH (2 * 1024)
|
||||
#elif defined(CONFIG_IDF_TARGET_ESP32)
|
||||
#define SLEEP_MEMORY_LENGTH (3 * 1024)
|
||||
#else
|
||||
#define SLEEP_MEMORY_LENGTH (4 * 1024)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
|
||||
#include "esp_sleep.h"
|
||||
|
||||
#include "soc/rtc_cntl_reg.h"
|
||||
#include "components/driver/gpio/include/driver/gpio.h"
|
||||
#include "components/driver/uart/include/driver/uart.h"
|
||||
|
||||
|
|
@ -49,7 +48,9 @@ void alarm_reset(void) {
|
|||
alarm_sleep_memory_reset();
|
||||
alarm_pin_pinalarm_reset();
|
||||
alarm_time_timealarm_reset();
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
alarm_touch_touchalarm_reset();
|
||||
#endif
|
||||
#if CIRCUITPY_ESPULP
|
||||
espulp_ulpalarm_reset();
|
||||
#endif
|
||||
|
|
@ -64,9 +65,11 @@ static esp_sleep_wakeup_cause_t _get_wakeup_cause(bool deep_sleep) {
|
|||
if (alarm_time_timealarm_woke_this_cycle()) {
|
||||
return ESP_SLEEP_WAKEUP_TIMER;
|
||||
}
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
if (alarm_touch_touchalarm_woke_this_cycle()) {
|
||||
return ESP_SLEEP_WAKEUP_TOUCHPAD;
|
||||
}
|
||||
#endif
|
||||
#if CIRCUITPY_ESPULP
|
||||
if (espulp_ulpalarm_woke_this_cycle()) {
|
||||
return ESP_SLEEP_WAKEUP_ULP;
|
||||
|
|
@ -99,9 +102,11 @@ mp_obj_t common_hal_alarm_record_wake_alarm(void) {
|
|||
return alarm_pin_pinalarm_record_wake_alarm();
|
||||
}
|
||||
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
case ESP_SLEEP_WAKEUP_TOUCHPAD: {
|
||||
return alarm_touch_touchalarm_record_wake_alarm();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_ESPULP
|
||||
case ESP_SLEEP_WAKEUP_ULP: {
|
||||
|
|
@ -121,7 +126,9 @@ mp_obj_t common_hal_alarm_record_wake_alarm(void) {
|
|||
static void _setup_sleep_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) {
|
||||
alarm_pin_pinalarm_set_alarms(deep_sleep, n_alarms, alarms);
|
||||
alarm_time_timealarm_set_alarms(deep_sleep, n_alarms, alarms);
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
alarm_touch_touchalarm_set_alarm(deep_sleep, n_alarms, alarms);
|
||||
#endif
|
||||
#if CIRCUITPY_ESPULP
|
||||
espulp_ulpalarm_set_alarm(deep_sleep, n_alarms, alarms);
|
||||
#endif
|
||||
|
|
@ -147,10 +154,12 @@ mp_obj_t common_hal_alarm_light_sleep_until_alarms(size_t n_alarms, const mp_obj
|
|||
wake_alarm = alarm_pin_pinalarm_find_triggered_alarm(n_alarms, alarms);
|
||||
break;
|
||||
}
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
case ESP_SLEEP_WAKEUP_TOUCHPAD: {
|
||||
wake_alarm = alarm_touch_touchalarm_find_triggered_alarm(n_alarms, alarms);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#if CIRCUITPY_ESPULP
|
||||
case ESP_SLEEP_WAKEUP_ULP: {
|
||||
wake_alarm = espulp_ulpalarm_find_triggered_alarm(n_alarms, alarms);
|
||||
|
|
@ -182,7 +191,9 @@ void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj_t *ala
|
|||
|
||||
void NORETURN common_hal_alarm_enter_deep_sleep(void) {
|
||||
alarm_pin_pinalarm_prepare_for_deep_sleep();
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
alarm_touch_touchalarm_prepare_for_deep_sleep();
|
||||
#endif
|
||||
#if CIRCUITPY_ESPULP
|
||||
espulp_ulpalarm_prepare_for_deep_sleep();
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@
|
|||
#include "hal/gpio_ll.h"
|
||||
#include "esp_debug_helpers.h"
|
||||
|
||||
#ifdef SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
#include "soc/rtc_cntl_reg.h"
|
||||
#endif
|
||||
|
||||
#include "driver/rtc_io.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
|
||||
|
|
@ -57,8 +61,10 @@ static void gpio_interrupt(void *arg) {
|
|||
|
||||
gpio_ll_get_intr_status(&GPIO, xPortGetCoreID(), (uint32_t *)&pin_31_0_status);
|
||||
gpio_ll_clear_intr_status(&GPIO, pin_31_0_status);
|
||||
#if SOC_GPIO_PIN_COUNT > 32
|
||||
gpio_ll_get_intr_status_high(&GPIO, xPortGetCoreID(), (uint32_t *)&pin_63_32_status);
|
||||
gpio_ll_clear_intr_status_high(&GPIO, pin_63_32_status);
|
||||
#endif
|
||||
|
||||
// disable the interrupts that fired, maybe all of them
|
||||
for (size_t i = 0; i < 32; i++) {
|
||||
|
|
@ -66,9 +72,11 @@ static void gpio_interrupt(void *arg) {
|
|||
if ((pin_31_0_status & mask) != 0) {
|
||||
gpio_ll_intr_disable(&GPIO, i);
|
||||
}
|
||||
#if SOC_GPIO_PIN_COUNT > 32
|
||||
if ((pin_63_32_status & mask) != 0) {
|
||||
gpio_ll_intr_disable(&GPIO, 32 + i);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
port_wake_main_task_from_isr();
|
||||
}
|
||||
|
|
@ -98,22 +106,33 @@ mp_obj_t alarm_pin_pinalarm_record_wake_alarm(void) {
|
|||
uint64_t pin_status = ((uint64_t)pin_63_32_status) << 32 | pin_31_0_status;
|
||||
size_t pin_number = 64;
|
||||
|
||||
#ifdef SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
if (cause == ESP_SLEEP_WAKEUP_EXT0) {
|
||||
pin_number = REG_GET_FIELD(RTC_IO_EXT_WAKEUP0_REG, RTC_IO_EXT_WAKEUP0_SEL);
|
||||
} else {
|
||||
if (cause == ESP_SLEEP_WAKEUP_EXT1) {
|
||||
pin_status = esp_sleep_get_ext1_wakeup_status();
|
||||
}
|
||||
// If the cause is GPIO, we've already snagged pin_status in the interrupt.
|
||||
// We'll only get here if we pretended to deep sleep. Light sleep will
|
||||
// pass in existing objects.
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
if ((pin_status & (1ull << i)) != 0) {
|
||||
pin_number = i;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
if (cause == ESP_SLEEP_WAKEUP_EXT1) {
|
||||
pin_status = esp_sleep_get_ext1_wakeup_status();
|
||||
}
|
||||
#endif
|
||||
#ifdef SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
|
||||
if (cause == ESP_SLEEP_WAKEUP_GPIO) {
|
||||
pin_status = esp_sleep_get_gpio_wakeup_status();
|
||||
}
|
||||
#endif
|
||||
// If the cause is GPIO, we've already snagged pin_status in the interrupt.
|
||||
// We'll only get here if we pretended to deep sleep. Light sleep will
|
||||
// pass in existing objects.
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
if ((pin_status & (1ull << i)) != 0) {
|
||||
pin_number = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#ifdef SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
}
|
||||
#endif
|
||||
|
||||
alarm_pin_pinalarm_obj_t *const alarm = &alarm_wake_alarm.pin_alarm;
|
||||
|
||||
|
|
@ -157,6 +176,135 @@ void alarm_pin_pinalarm_reset(void) {
|
|||
pin_31_0_status = 0;
|
||||
}
|
||||
|
||||
#if defined(SOC_PM_SUPPORT_EXT1_WAKEUP) && !defined(SOC_PM_SUPPORT_EXT0_WAKEUP)
|
||||
static esp_err_t _setup_ext1(size_t low_count, size_t high_count) {
|
||||
esp_err_t result;
|
||||
if (low_count > 0) {
|
||||
result = esp_sleep_enable_ext1_wakeup_io(low_alarms, ESP_EXT1_WAKEUP_ANY_LOW);
|
||||
if (result != ESP_OK) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
if (high_count > 0) {
|
||||
result = esp_sleep_enable_ext1_wakeup_io(high_alarms, ESP_EXT1_WAKEUP_ANY_HIGH);
|
||||
if (result != ESP_OK) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef SOC_PM_SUPPORT_RTC_PERIPH_PD
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||
#endif
|
||||
return ESP_OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
// How to wake from deep sleep by a pin varies a lot across the ESP line and isn't hidden behind
|
||||
// the IDF API. So we change our _setup_deep_sleep() implementation based on what the ESP SoC can
|
||||
// do.
|
||||
#ifdef CONFIG_IDF_TARGET_ESP32
|
||||
static esp_err_t _setup_deep_sleep(size_t low_count, size_t high_count) {
|
||||
if (low_count > 2 && high_count == 0) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on two low pins from deep sleep."));
|
||||
}
|
||||
if (low_count > 1 && high_count > 0) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on one low pin while others alarm high from deep sleep."));
|
||||
}
|
||||
esp_err_t result;
|
||||
if (high_count > 0) {
|
||||
result = esp_sleep_enable_ext1_wakeup_io(high_alarms, ESP_EXT1_WAKEUP_ANY_HIGH);
|
||||
if (result != ESP_OK) {
|
||||
return result;
|
||||
}
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||
}
|
||||
size_t low_pins[2];
|
||||
size_t j = 0;
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
uint64_t mask = 1ull << i;
|
||||
if ((low_alarms & mask) != 0) {
|
||||
low_pins[j++] = i;
|
||||
}
|
||||
if (j == 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (low_count > 1) {
|
||||
if (esp_sleep_enable_ext1_wakeup_io(1ull << low_pins[1], ESP_EXT1_WAKEUP_ALL_LOW) != ESP_OK) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||
}
|
||||
if (low_count > 0) {
|
||||
#ifdef SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
if (esp_sleep_enable_ext0_wakeup(low_pins[0], 0) != ESP_OK) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
#elif defined(SOC_PM_SUPPORT_EXT0_WAKEUP) // S2 and S3
|
||||
static esp_err_t _setup_deep_sleep(size_t low_count, size_t high_count) {
|
||||
if (low_count > 1 && high_count > 1) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on one low pin while others alarm high from deep sleep."));
|
||||
}
|
||||
uint64_t ext1_pin_mask;
|
||||
esp_sleep_ext1_wakeup_mode_t ext1_mode;
|
||||
|
||||
esp_err_t result;
|
||||
// Only use EXT0 if we need to trigger both directions.
|
||||
if (low_count > 0 && high_count > 0) {
|
||||
size_t ext0_pin_number;
|
||||
size_t level;
|
||||
if (low_count == 1) {
|
||||
ext0_pin_number = __builtin_ctzll(low_alarms);
|
||||
level = 0;
|
||||
ext1_pin_mask = high_alarms;
|
||||
ext1_mode = ESP_EXT1_WAKEUP_ANY_HIGH;
|
||||
} else {
|
||||
ext0_pin_number = __builtin_ctzll(high_alarms);
|
||||
level = 1;
|
||||
ext1_pin_mask = low_alarms;
|
||||
ext1_mode = ESP_EXT1_WAKEUP_ANY_LOW;
|
||||
}
|
||||
result = esp_sleep_enable_ext0_wakeup(ext0_pin_number, level);
|
||||
if (result != ESP_OK) {
|
||||
return result;
|
||||
}
|
||||
} else if (low_count > 0) {
|
||||
ext1_pin_mask = low_alarms;
|
||||
ext1_mode = ESP_EXT1_WAKEUP_ANY_LOW;
|
||||
} else {
|
||||
ext1_pin_mask = high_alarms;
|
||||
ext1_mode = ESP_EXT1_WAKEUP_ANY_HIGH;
|
||||
}
|
||||
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||
return esp_sleep_enable_ext1_wakeup_io(ext1_pin_mask, ext1_mode);
|
||||
}
|
||||
#elif defined(SOC_PM_SUPPORT_EXT1_WAKEUP) && defined(SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN)
|
||||
static esp_err_t _setup_deep_sleep(size_t low_count, size_t high_count) {
|
||||
return _setup_ext1(low_count, high_count);
|
||||
}
|
||||
#elif defined(SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP)
|
||||
static esp_err_t _setup_deep_sleep(size_t low_count, size_t high_count) {
|
||||
#ifdef SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
// Don't turn on RTC GPIO if we can use EXT1.
|
||||
if (low_count == 0 || high_count == 0) {
|
||||
return _setup_ext1(low_count, high_count);
|
||||
}
|
||||
#endif
|
||||
esp_err_t result = esp_deep_sleep_enable_gpio_wakeup(low_alarms, ESP_GPIO_WAKEUP_GPIO_LOW);
|
||||
if (result != ESP_OK) {
|
||||
return result;
|
||||
}
|
||||
result = esp_deep_sleep_enable_gpio_wakeup(high_alarms, ESP_GPIO_WAKEUP_GPIO_HIGH);
|
||||
return result;
|
||||
}
|
||||
#else
|
||||
#error "Unsupported deep sleep capabilities."
|
||||
#endif
|
||||
void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_obj_t *alarms) {
|
||||
// Bitmask of wake up settings.
|
||||
size_t high_count = 0;
|
||||
|
|
@ -184,41 +332,10 @@ void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_ob
|
|||
if (high_count == 0 && low_count == 0) {
|
||||
return;
|
||||
}
|
||||
if (deep_sleep && low_count > 2 && high_count == 0) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on two low pins from deep sleep."));
|
||||
}
|
||||
if (deep_sleep && low_count > 1 && high_count > 0) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on one low pin while others alarm high from deep sleep."));
|
||||
}
|
||||
// Only use ext0 and ext1 during deep sleep.
|
||||
if (deep_sleep) {
|
||||
if (high_count > 0) {
|
||||
if (esp_sleep_enable_ext1_wakeup(high_alarms, ESP_EXT1_WAKEUP_ANY_HIGH) != ESP_OK) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||
}
|
||||
size_t low_pins[2];
|
||||
size_t j = 0;
|
||||
for (size_t i = 0; i < 64; i++) {
|
||||
uint64_t mask = 1ull << i;
|
||||
if ((low_alarms & mask) != 0) {
|
||||
low_pins[j++] = i;
|
||||
}
|
||||
if (j == 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (low_count > 1) {
|
||||
if (esp_sleep_enable_ext1_wakeup(1ull << low_pins[1], ESP_EXT1_WAKEUP_ALL_LOW) != ESP_OK) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||
}
|
||||
if (low_count > 0) {
|
||||
if (esp_sleep_enable_ext0_wakeup(low_pins[0], 0) != ESP_OK) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
if (_setup_deep_sleep(low_count, high_count) != ESP_OK) {
|
||||
mp_raise_ValueError(MP_ERROR_TEXT("Can only alarm on RTC IO from deep sleep."));
|
||||
}
|
||||
} else {
|
||||
// Enable GPIO wake up if we're sleeping.
|
||||
|
|
@ -240,7 +357,9 @@ void alarm_pin_pinalarm_set_alarms(bool deep_sleep, size_t n_alarms, const mp_ob
|
|||
continue;
|
||||
}
|
||||
if (rtc_gpio_is_valid_gpio(i)) {
|
||||
#ifdef SOC_PM_SUPPORT_RTC_PERIPH_PD
|
||||
rtc_gpio_deinit(i);
|
||||
#endif
|
||||
}
|
||||
gpio_int_type_t interrupt_mode = GPIO_INTR_DISABLE;
|
||||
gpio_pull_mode_t pull_mode = GPIO_FLOATING;
|
||||
|
|
@ -281,12 +400,22 @@ void alarm_pin_pinalarm_prepare_for_deep_sleep(void) {
|
|||
bool low = (low_alarms & mask) != 0;
|
||||
// The pull direction is opposite from alarm value.
|
||||
if (high) {
|
||||
#ifdef SOC_PM_SUPPORT_RTC_PERIPH_PD
|
||||
rtc_gpio_pullup_dis(i);
|
||||
rtc_gpio_pulldown_en(i);
|
||||
#else
|
||||
gpio_pullup_dis(i);
|
||||
gpio_pulldown_en(i);
|
||||
#endif
|
||||
}
|
||||
if (low) {
|
||||
#ifdef SOC_PM_SUPPORT_RTC_PERIPH_PD
|
||||
rtc_gpio_pullup_en(i);
|
||||
rtc_gpio_pulldown_dis(i);
|
||||
#else
|
||||
gpio_pullup_en(i);
|
||||
gpio_pulldown_dis(i);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,10 @@ LONGINT_IMPL = MPZ
|
|||
# Default to no-psram
|
||||
CIRCUITPY_ESP_PSRAM_SIZE ?= 0
|
||||
|
||||
# New 4MB boards will not have OTA support but more room for alarm, ble and other
|
||||
# newer features.
|
||||
CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT ?= 0
|
||||
|
||||
# Enable more features
|
||||
CIRCUITPY_FULL_BUILD ?= 1
|
||||
|
||||
|
|
@ -18,6 +22,7 @@ CIRCUITPY_SSL_MBEDTLS = 1
|
|||
|
||||
# These modules are implemented in ports/<port>/common-hal:
|
||||
CIRCUITPY_ALARM ?= 1
|
||||
CIRCUITPY_ALARM_TOUCH ?= 0
|
||||
CIRCUITPY_ANALOGBUFIO ?= 1
|
||||
CIRCUITPY_AUDIOBUSIO ?= 1
|
||||
CIRCUITPY_AUDIOBUSIO_PDMIN ?= 0
|
||||
|
|
@ -51,7 +56,9 @@ CIRCUITPY__EVE ?= 1
|
|||
# Conditionally turn off modules/features
|
||||
ifeq ($(IDF_TARGET),esp32)
|
||||
# Modules
|
||||
CIRCUITPY_ALARM_TOUCH = 1
|
||||
CIRCUITPY_RGBMATRIX = 0
|
||||
|
||||
# Features
|
||||
CIRCUITPY_USB_DEVICE = 0
|
||||
|
||||
|
|
@ -60,7 +67,6 @@ else ifeq ($(IDF_TARGET),esp32c2)
|
|||
# C2 ROM spits out the UART at 74880 when connected to a 26mhz crystal! Debug
|
||||
# prints will default to that too.
|
||||
# Modules
|
||||
CIRCUITPY_ALARM = 0
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
CIRCUITPY_ESPULP = 0
|
||||
CIRCUITPY_MEMORYMAP = 0
|
||||
|
|
@ -95,7 +101,6 @@ CIRCUITPY_ESP_USB_SERIAL_JTAG = 0
|
|||
|
||||
else ifeq ($(IDF_TARGET),esp32c3)
|
||||
# Modules
|
||||
CIRCUITPY_ALARM = 0
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
CIRCUITPY_ESPULP = 0
|
||||
CIRCUITPY_MEMORYMAP = 0
|
||||
|
|
@ -116,7 +121,6 @@ CIRCUITPY_ESP_USB_SERIAL_JTAG ?= 1
|
|||
|
||||
else ifeq ($(IDF_TARGET),esp32c6)
|
||||
# Modules
|
||||
CIRCUITPY_ALARM = 0
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
CIRCUITPY_ESPULP = 0
|
||||
CIRCUITPY_MEMORYMAP = 0
|
||||
|
|
@ -136,7 +140,6 @@ CIRCUITPY_ESP_USB_SERIAL_JTAG ?= 1
|
|||
|
||||
else ifeq ($(IDF_TARGET),esp32h2)
|
||||
# Modules
|
||||
CIRCUITPY_ALARM = 0
|
||||
CIRCUITPY_ESPCAMERA = 0
|
||||
CIRCUITPY_ESPULP = 0
|
||||
CIRCUITPY_MEMORYMAP = 0
|
||||
|
|
@ -157,6 +160,7 @@ CIRCUITPY_MAX3421E = 0
|
|||
|
||||
else ifeq ($(IDF_TARGET),esp32s2)
|
||||
# Modules
|
||||
CIRCUITPY_ALARM_TOUCH = 1
|
||||
# No BLE in hw
|
||||
CIRCUITPY_BLEIO = 0
|
||||
|
||||
|
|
@ -164,6 +168,7 @@ CIRCUITPY_ESP_USB_SERIAL_JTAG ?= 0
|
|||
|
||||
else ifeq ($(IDF_TARGET),esp32s3)
|
||||
# Modules
|
||||
CIRCUITPY_ALARM_TOUCH = 1
|
||||
CIRCUITPY_ESP_USB_SERIAL_JTAG ?= 0
|
||||
|
||||
# No room for _bleio on boards with 4MB flash
|
||||
|
|
@ -182,6 +187,19 @@ else
|
|||
CIRCUITPY_DUALBANK ?= 1
|
||||
endif
|
||||
|
||||
# We used to default to OTA partition layout but are moving away from it so that
|
||||
# BLE and alarm can be included. This setting prevents the partition layout from
|
||||
# changing.
|
||||
ifeq ($(CIRCUITPY_LEGACY_4MB_FLASH_LAYOUT), 1)
|
||||
ifeq ($(IDF_TARGET_ARCH), xtensa)
|
||||
CIRCUITPY_ALARM ?= 1
|
||||
else
|
||||
CIRCUITPY_ALARM = 0
|
||||
endif
|
||||
CIRCUITPY_DUALBANK = 1
|
||||
CIRCUITPY_BLEIO = 0
|
||||
endif
|
||||
|
||||
# No room for dualbank or mp3 on boards with 2MB flash
|
||||
ifeq ($(CIRCUITPY_ESP_FLASH_SIZE),2MB)
|
||||
CIRCUITPY_BITMAPFILTER ?= 0
|
||||
|
|
|
|||
|
|
@ -105,7 +105,10 @@ ifeq ($(CIRCUITPY_AESIO),1)
|
|||
SRC_PATTERNS += aesio/%
|
||||
endif
|
||||
ifeq ($(CIRCUITPY_ALARM),1)
|
||||
SRC_PATTERNS += alarm/%
|
||||
SRC_PATTERNS += alarm/__init__.c alarm/SleepMemory.c alarm/pin/% alarm/time/%
|
||||
endif
|
||||
ifeq ($(CIRCUITPY_ALARM_TOUCH),1)
|
||||
SRC_PATTERNS += alarm/touch/%
|
||||
endif
|
||||
ifeq ($(CIRCUITPY_ANALOGBUFIO),1)
|
||||
SRC_PATTERNS += analogbufio/%
|
||||
|
|
|
|||
|
|
@ -95,6 +95,9 @@ CFLAGS += -DCIRCUITPY_AESIO=$(CIRCUITPY_AESIO)
|
|||
CIRCUITPY_ALARM ?= 0
|
||||
CFLAGS += -DCIRCUITPY_ALARM=$(CIRCUITPY_ALARM)
|
||||
|
||||
CIRCUITPY_ALARM_TOUCH ?= $(CIRCUITPY_ALARM)
|
||||
CFLAGS += -DCIRCUITPY_ALARM_TOUCH=$(CIRCUITPY_ALARM_TOUCH)
|
||||
|
||||
CIRCUITPY_ANALOGBUFIO ?= 0
|
||||
CFLAGS += -DCIRCUITPY_ANALOGBUFIO=$(CIRCUITPY_ANALOGBUFIO)
|
||||
|
||||
|
|
|
|||
|
|
@ -60,11 +60,13 @@
|
|||
static void validate_objs_are_alarms(size_t n_args, const mp_obj_t *objs) {
|
||||
for (size_t i = 0; i < n_args; i++) {
|
||||
if (mp_obj_is_type(objs[i], &alarm_pin_pinalarm_type) ||
|
||||
mp_obj_is_type(objs[i], &alarm_time_timealarm_type) ||
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
mp_obj_is_type(objs[i], &alarm_touch_touchalarm_type) ||
|
||||
#endif
|
||||
#if CIRCUITPY_ESPULP
|
||||
mp_obj_is_type(objs[i], &espulp_ulpalarm_type) ||
|
||||
#endif
|
||||
mp_obj_is_type(objs[i], &alarm_touch_touchalarm_type)) {
|
||||
mp_obj_is_type(objs[i], &alarm_time_timealarm_type)) {
|
||||
continue;
|
||||
}
|
||||
mp_raise_TypeError_varg(MP_ERROR_TEXT("Expected a kind of %q"), MP_QSTR_Alarm);
|
||||
|
|
@ -227,6 +229,7 @@ static const mp_obj_module_t alarm_time_module = {
|
|||
.globals = (mp_obj_dict_t *)&alarm_time_globals,
|
||||
};
|
||||
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
static const mp_map_elem_t alarm_touch_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_touch) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TouchAlarm), MP_OBJ_FROM_PTR(&alarm_touch_touchalarm_type) },
|
||||
|
|
@ -238,6 +241,7 @@ static const mp_obj_module_t alarm_touch_module = {
|
|||
.base = { &mp_type_module },
|
||||
.globals = (mp_obj_dict_t *)&alarm_touch_globals,
|
||||
};
|
||||
#endif
|
||||
|
||||
// The module table is mutable because .wake_alarm is a mutable attribute.
|
||||
static mp_map_elem_t alarm_module_globals_table[] = {
|
||||
|
|
@ -252,7 +256,9 @@ static mp_map_elem_t alarm_module_globals_table[] = {
|
|||
|
||||
{ MP_ROM_QSTR(MP_QSTR_pin), MP_OBJ_FROM_PTR(&alarm_pin_module) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_time), MP_OBJ_FROM_PTR(&alarm_time_module) },
|
||||
#if CIRCUITPY_ALARM_TOUCH
|
||||
{ MP_ROM_QSTR(MP_QSTR_touch), MP_OBJ_FROM_PTR(&alarm_touch_module) },
|
||||
#endif
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_SleepMemory), MP_OBJ_FROM_PTR(&alarm_sleep_memory_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_sleep_memory), MP_OBJ_FROM_PTR(&alarm_sleep_memory_obj) },
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@
|
|||
#if CIRCUITPY_BLEIO
|
||||
#include "shared-bindings/_bleio/__init__.h"
|
||||
#include "supervisor/shared/bluetooth/bluetooth.h"
|
||||
#if CIRCUITPY_SERIAL_BLE
|
||||
#include "supervisor/shared/bluetooth/serial.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if CIRCUITPY_TINYUSB || CIRCUITPY_USB_KEYBOARD_WORKFLOW
|
||||
|
|
@ -27,6 +30,7 @@
|
|||
|
||||
#if CIRCUITPY_WEB_WORKFLOW
|
||||
#include "supervisor/shared/web_workflow/web_workflow.h"
|
||||
#include "supervisor/shared/web_workflow/websocket.h"
|
||||
static background_callback_t workflow_background_cb = {NULL, NULL};
|
||||
#endif
|
||||
|
||||
|
|
@ -60,14 +64,27 @@ void supervisor_workflow_request_background(void) {
|
|||
}
|
||||
|
||||
// Return true if host has completed connection to us (such as USB enumeration).
|
||||
// This is used to determine when to pretend to deep sleep.
|
||||
bool supervisor_workflow_active(void) {
|
||||
#if CIRCUITPY_USB_DEVICE
|
||||
// Eventually there might be other non-USB workflows, such as BLE.
|
||||
// tud_ready() checks for usb mounted and not suspended.
|
||||
return tud_ready();
|
||||
#else
|
||||
return false;
|
||||
if (tud_ready()) {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
#if CIRCUITPY_WEB_WORKFLOW
|
||||
if (websocket_connected()) {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
#if CIRCUITPY_SERIAL_BLE
|
||||
if (ble_serial_connected()) {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void supervisor_workflow_start(void) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue