1 // Copyright 2020 Espressif Systems (Shanghai) PTE LTD 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #pragma once 16 17 #include "hal/gpio_types.h" 18 #include "hal/rtc_cntl_ll.h" 19 #if !CONFIG_IDF_TARGET_ESP32C3 20 #include "hal/rtc_io_ll.h" 21 #endif 22 23 #define RTC_HAL_DMA_LINK_NODE_SIZE (16) 24 25 #if SOC_PM_SUPPORT_EXT_WAKEUP 26 27 #define rtc_hal_ext1_get_wakeup_pins() rtc_cntl_ll_ext1_get_wakeup_pins() 28 29 #define rtc_hal_ext1_set_wakeup_pins(mask, mode) rtc_cntl_ll_ext1_set_wakeup_pins(mask, mode) 30 31 #define rtc_hal_ext1_clear_wakeup_pins() rtc_cntl_ll_ext1_clear_wakeup_pins() 32 33 #endif 34 35 #if SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP 36 37 #define rtc_hal_gpio_get_wakeup_pins() rtc_cntl_ll_gpio_get_wakeup_pins() 38 39 #define rtc_hal_gpio_clear_wakeup_pins() rtc_cntl_ll_gpio_clear_wakeup_pins() 40 41 #define rtc_hal_gpio_set_wakeup_pins() rtc_cntl_ll_gpio_set_wakeup_pins() 42 43 #endif 44 45 #define rtc_hal_set_wakeup_timer(ticks) rtc_cntl_ll_set_wakeup_timer(ticks) 46 47 void * rtc_cntl_hal_dma_link_init(void *elem, void *buff, int size, void *next); 48 49 void rtc_cntl_hal_enable_cpu_retention(void *addr); 50 51 #define rtc_cntl_hal_disable_cpu_retention() rtc_cntl_ll_disable_cpu_retention() 52 53 /* 54 * Enable wakeup from ULP coprocessor. 55 */ 56 #define rtc_hal_ulp_wakeup_enable() rtc_cntl_ll_ulp_wakeup_enable() 57