Merge pull request #9324 from tannewt/more_esp_deep_sleep

Enable deep sleep on all ESP chips
This commit is contained in:
Dan Halbert 2024-06-17 23:05:01 -04:00 committed by GitHub
commit 8dc7364b48
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
50 changed files with 294 additions and 221 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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
}
}
}

View file

@ -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

View file

@ -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/%

View file

@ -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)

View file

@ -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) },

View file

@ -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) {