mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-03 22:08:28 +00:00 
			
		
		
		
	feat(esp_hw_support): support esp32p4 gpio wakeup deepsleep
This commit is contained in:
		@@ -62,7 +62,11 @@ typedef enum {
 | 
				
			|||||||
#define RTC_EXT1_TRIG_EN            0
 | 
					#define RTC_EXT1_TRIG_EN            0
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define RTC_GPIO_TRIG_EN            PMU_GPIO_WAKEUP_EN      //!< GPIO wakeup
 | 
					#if SOC_LP_IO_HAS_INDEPENDENT_WAKEUP_SOURCE
 | 
				
			||||||
 | 
					#define RTC_GPIO_TRIG_EN            (PMU_GPIO_WAKEUP_EN | PMU_LP_GPIO_WAKEUP_EN)      //!< GPIO & LP_GPIO wakeup
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define RTC_GPIO_TRIG_EN            (PMU_GPIO_WAKEUP_EN)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if SOC_LP_TIMER_SUPPORTED
 | 
					#if SOC_LP_TIMER_SUPPORTED
 | 
				
			||||||
#define RTC_TIMER_TRIG_EN           PMU_LP_TIMER_WAKEUP_EN  //!< Timer wakeup
 | 
					#define RTC_TIMER_TRIG_EN           PMU_LP_TIMER_WAKEUP_EN  //!< Timer wakeup
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -217,8 +217,8 @@ typedef struct {
 | 
				
			|||||||
    uint32_t ext0_rtc_gpio_num : 5;
 | 
					    uint32_t ext0_rtc_gpio_num : 5;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#if SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
 | 
					#if SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
 | 
				
			||||||
    uint32_t gpio_wakeup_mask : 8;  // 8 is the maximum RTCIO number in all chips that support GPIO wakeup
 | 
					    uint32_t gpio_wakeup_mask : SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT;  // Only RTC_GPIO supports wakeup deepsleep
 | 
				
			||||||
    uint32_t gpio_trigger_mode : 8;
 | 
					    uint32_t gpio_trigger_mode : SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    uint32_t sleep_time_adjustment;
 | 
					    uint32_t sleep_time_adjustment;
 | 
				
			||||||
    uint32_t ccount_ticks_record;
 | 
					    uint32_t ccount_ticks_record;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -311,6 +311,10 @@ config SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK
 | 
				
			|||||||
    int
 | 
					    int
 | 
				
			||||||
    default 0
 | 
					    default 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT
 | 
				
			||||||
 | 
					    int
 | 
				
			||||||
 | 
					    default 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
					config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
				
			||||||
    hex
 | 
					    hex
 | 
				
			||||||
    default 0x00000000001FFFC0
 | 
					    default 0x00000000001FFFC0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -135,6 +135,7 @@
 | 
				
			|||||||
#define SOC_GPIO_OUT_RANGE_MAX          20
 | 
					#define SOC_GPIO_OUT_RANGE_MAX          20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5)
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5)
 | 
				
			||||||
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT      (6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_6~GPIO_NUM_20)
 | 
					// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_6~GPIO_NUM_20)
 | 
				
			||||||
#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x00000000001FFFC0ULL
 | 
					#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x00000000001FFFC0ULL
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -403,6 +403,10 @@ config SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK
 | 
				
			|||||||
    int
 | 
					    int
 | 
				
			||||||
    default 0
 | 
					    default 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT
 | 
				
			||||||
 | 
					    int
 | 
				
			||||||
 | 
					    default 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
					config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
				
			||||||
    hex
 | 
					    hex
 | 
				
			||||||
    default 0x00000000003FFFC0
 | 
					    default 0x00000000003FFFC0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -173,6 +173,7 @@
 | 
				
			|||||||
#define SOC_GPIO_OUT_RANGE_MAX          21
 | 
					#define SOC_GPIO_OUT_RANGE_MAX          21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5)
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5)
 | 
				
			||||||
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT      (6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_6~GPIO_NUM_21)
 | 
					// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_6~GPIO_NUM_21)
 | 
				
			||||||
#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x00000000003FFFC0ULL
 | 
					#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x00000000003FFFC0ULL
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -499,6 +499,10 @@ config SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK
 | 
				
			|||||||
    int
 | 
					    int
 | 
				
			||||||
    default 0
 | 
					    default 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT
 | 
				
			||||||
 | 
					    int
 | 
				
			||||||
 | 
					    default 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
					config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
				
			||||||
    hex
 | 
					    hex
 | 
				
			||||||
    default 0x000000007FFFFF00
 | 
					    default 0x000000007FFFFF00
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -203,6 +203,7 @@
 | 
				
			|||||||
#define SOC_GPIO_OUT_RANGE_MAX          30
 | 
					#define SOC_GPIO_OUT_RANGE_MAX          30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6 | BIT7)
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6 | BIT7)
 | 
				
			||||||
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT      (8)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_8~GPIO_NUM_30)
 | 
					// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_8~GPIO_NUM_30)
 | 
				
			||||||
#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x000000007FFFFF00ULL
 | 
					#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x000000007FFFFF00ULL
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -587,6 +587,10 @@ config SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
 | 
				
			|||||||
    bool
 | 
					    bool
 | 
				
			||||||
    default y
 | 
					    default y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config SOC_LP_IO_HAS_INDEPENDENT_WAKEUP_SOURCE
 | 
				
			||||||
 | 
					    bool
 | 
				
			||||||
 | 
					    default y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config SOC_GPIO_VALID_GPIO_MASK
 | 
					config SOC_GPIO_VALID_GPIO_MASK
 | 
				
			||||||
    hex
 | 
					    hex
 | 
				
			||||||
    default 0x007FFFFFFFFFFFFF
 | 
					    default 0x007FFFFFFFFFFFFF
 | 
				
			||||||
@@ -603,6 +607,10 @@ config SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK
 | 
				
			|||||||
    int
 | 
					    int
 | 
				
			||||||
    default 0
 | 
					    default 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT
 | 
				
			||||||
 | 
					    int
 | 
				
			||||||
 | 
					    default 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
					config SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 | 
				
			||||||
    hex
 | 
					    hex
 | 
				
			||||||
    default 0x007FFFFFFFFF0000
 | 
					    default 0x007FFFFFFFFF0000
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -232,6 +232,7 @@
 | 
				
			|||||||
#define SOC_GPIO_SUPPORT_RTC_INDEPENDENT    (1)
 | 
					#define SOC_GPIO_SUPPORT_RTC_INDEPENDENT    (1)
 | 
				
			||||||
// GPIO0~15 on ESP32P4 can support chip deep sleep wakeup
 | 
					// GPIO0~15 on ESP32P4 can support chip deep sleep wakeup
 | 
				
			||||||
#define SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP   (1)
 | 
					#define SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP   (1)
 | 
				
			||||||
 | 
					#define SOC_LP_IO_HAS_INDEPENDENT_WAKEUP_SOURCE   (1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SOC_GPIO_VALID_GPIO_MASK        (0x007FFFFFFFFFFFFF)
 | 
					#define SOC_GPIO_VALID_GPIO_MASK        (0x007FFFFFFFFFFFFF)
 | 
				
			||||||
#define SOC_GPIO_VALID_OUTPUT_GPIO_MASK SOC_GPIO_VALID_GPIO_MASK
 | 
					#define SOC_GPIO_VALID_OUTPUT_GPIO_MASK SOC_GPIO_VALID_GPIO_MASK
 | 
				
			||||||
@@ -240,6 +241,7 @@
 | 
				
			|||||||
#define SOC_GPIO_OUT_RANGE_MAX          54
 | 
					#define SOC_GPIO_OUT_RANGE_MAX          54
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | 0xFFFF)
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK        (0ULL | 0xFFFF)
 | 
				
			||||||
 | 
					#define SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT      (16)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_16~GPIO_NUM_54)
 | 
					// digital I/O pad powered by VDD3P3_CPU or VDD_SPI(GPIO_NUM_16~GPIO_NUM_54)
 | 
				
			||||||
#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x007FFFFFFFFF0000ULL
 | 
					#define SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK 0x007FFFFFFFFF0000ULL
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user