mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00: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