mirror of
https://github.com/esphome/esphome.git
synced 2025-09-02 11:22:24 +01:00
[deep_sleep] Fix ESP32-C6 compilation error with gpio_deep_sleep_hold_en() (#10345)
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
#ifdef USE_ESP32
|
#ifdef USE_ESP32
|
||||||
|
#include "soc/soc_caps.h"
|
||||||
#include "driver/gpio.h"
|
#include "driver/gpio.h"
|
||||||
#include "deep_sleep_component.h"
|
#include "deep_sleep_component.h"
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
@@ -83,7 +84,11 @@ void DeepSleepComponent::deep_sleep_() {
|
|||||||
}
|
}
|
||||||
gpio_sleep_set_direction(gpio_pin, GPIO_MODE_INPUT);
|
gpio_sleep_set_direction(gpio_pin, GPIO_MODE_INPUT);
|
||||||
gpio_hold_en(gpio_pin);
|
gpio_hold_en(gpio_pin);
|
||||||
|
#if !SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP
|
||||||
|
// Some ESP32 variants support holding a single GPIO during deep sleep without this function
|
||||||
|
// For those variants, gpio_hold_en() is sufficient to hold the pin state during deep sleep
|
||||||
gpio_deep_sleep_hold_en();
|
gpio_deep_sleep_hold_en();
|
||||||
|
#endif
|
||||||
bool level = !this->wakeup_pin_->is_inverted();
|
bool level = !this->wakeup_pin_->is_inverted();
|
||||||
if (this->wakeup_pin_mode_ == WAKEUP_PIN_MODE_INVERT_WAKEUP && this->wakeup_pin_->digital_read()) {
|
if (this->wakeup_pin_mode_ == WAKEUP_PIN_MODE_INVERT_WAKEUP && this->wakeup_pin_->digital_read()) {
|
||||||
level = !level;
|
level = !level;
|
||||||
@@ -120,7 +125,11 @@ void DeepSleepComponent::deep_sleep_() {
|
|||||||
}
|
}
|
||||||
gpio_sleep_set_direction(gpio_pin, GPIO_MODE_INPUT);
|
gpio_sleep_set_direction(gpio_pin, GPIO_MODE_INPUT);
|
||||||
gpio_hold_en(gpio_pin);
|
gpio_hold_en(gpio_pin);
|
||||||
|
#if !SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP
|
||||||
|
// Some ESP32 variants support holding a single GPIO during deep sleep without this function
|
||||||
|
// For those variants, gpio_hold_en() is sufficient to hold the pin state during deep sleep
|
||||||
gpio_deep_sleep_hold_en();
|
gpio_deep_sleep_hold_en();
|
||||||
|
#endif
|
||||||
bool level = !this->wakeup_pin_->is_inverted();
|
bool level = !this->wakeup_pin_->is_inverted();
|
||||||
if (this->wakeup_pin_mode_ == WAKEUP_PIN_MODE_INVERT_WAKEUP && this->wakeup_pin_->digital_read()) {
|
if (this->wakeup_pin_mode_ == WAKEUP_PIN_MODE_INVERT_WAKEUP && this->wakeup_pin_->digital_read()) {
|
||||||
level = !level;
|
level = !level;
|
||||||
|
5
tests/components/deep_sleep/test.esp32-c6-idf.yaml
Normal file
5
tests/components/deep_sleep/test.esp32-c6-idf.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
substitutions:
|
||||||
|
wakeup_pin: GPIO4
|
||||||
|
|
||||||
|
<<: !include common.yaml
|
||||||
|
<<: !include common-esp32.yaml
|
5
tests/components/deep_sleep/test.esp32-s2-idf.yaml
Normal file
5
tests/components/deep_sleep/test.esp32-s2-idf.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
substitutions:
|
||||||
|
wakeup_pin: GPIO4
|
||||||
|
|
||||||
|
<<: !include common.yaml
|
||||||
|
<<: !include common-esp32.yaml
|
5
tests/components/deep_sleep/test.esp32-s3-idf.yaml
Normal file
5
tests/components/deep_sleep/test.esp32-s3-idf.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
substitutions:
|
||||||
|
wakeup_pin: GPIO4
|
||||||
|
|
||||||
|
<<: !include common.yaml
|
||||||
|
<<: !include common-esp32.yaml
|
Reference in New Issue
Block a user