mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 20:41:14 +00:00
feat(uart): support uart module sleep retention on c6/h2/p4
This commit is contained in:
@@ -473,6 +473,7 @@ static inline void gpio_ll_get_drive_capability(gpio_dev_t *hw, uint32_t gpio_nu
|
||||
* @param hw Peripheral GPIO hardware instance address.
|
||||
* @param gpio_num GPIO number, only support output GPIOs
|
||||
*/
|
||||
__attribute__((always_inline))
|
||||
static inline void gpio_ll_hold_en(gpio_dev_t *hw, uint32_t gpio_num)
|
||||
{
|
||||
uint64_t bit_mask = 1ULL << gpio_num;
|
||||
@@ -498,6 +499,7 @@ static inline void gpio_ll_hold_en(gpio_dev_t *hw, uint32_t gpio_num)
|
||||
* @param hw Peripheral GPIO hardware instance address.
|
||||
* @param gpio_num GPIO number, only support output GPIOs
|
||||
*/
|
||||
__attribute__((always_inline))
|
||||
static inline void gpio_ll_hold_dis(gpio_dev_t *hw, uint32_t gpio_num)
|
||||
{
|
||||
uint64_t bit_mask = 1ULL << gpio_num;
|
||||
|
@@ -45,6 +45,13 @@ extern "C" {
|
||||
#define UART_LL_FSM_IDLE (0x0)
|
||||
#define UART_LL_FSM_TX_WAIT_SEND (0xf)
|
||||
|
||||
// UART sleep retention module
|
||||
#define UART_LL_SLEEP_RETENTION_MODULE_ID(uart_num) ((uart_num == UART_NUM_0) ? SLEEP_RETENTION_MODULE_UART0 : \
|
||||
(uart_num == UART_NUM_1) ? SLEEP_RETENTION_MODULE_UART1 : \
|
||||
(uart_num == UART_NUM_2) ? SLEEP_RETENTION_MODULE_UART2 : \
|
||||
(uart_num == UART_NUM_3) ? SLEEP_RETENTION_MODULE_UART3 : \
|
||||
(uart_num == UART_NUM_4) ? SLEEP_RETENTION_MODULE_UART4 : -1)
|
||||
|
||||
// Define UART interrupts
|
||||
typedef enum {
|
||||
UART_INTR_RXFIFO_FULL = (0x1 << 0),
|
||||
@@ -817,7 +824,7 @@ FORCE_INLINE_ATTR void uart_ll_set_tx_idle_num(uart_dev_t *hw, uint32_t idle_num
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Configure the transmiter to send break chars.
|
||||
* @brief Configure the transmitter to send break chars.
|
||||
*
|
||||
* @param hw Beginning address of the peripheral registers.
|
||||
* @param break_num The number of the break chars need to be send.
|
||||
@@ -884,7 +891,7 @@ FORCE_INLINE_ATTR void uart_ll_get_hw_flow_ctrl(uart_dev_t *hw, uart_hw_flowcont
|
||||
* @brief Configure the software flow control.
|
||||
*
|
||||
* @param hw Beginning address of the peripheral registers.
|
||||
* @param flow_ctrl The UART sofware flow control settings.
|
||||
* @param flow_ctrl The UART software flow control settings.
|
||||
* @param sw_flow_ctrl_en Set true to enable software flow control, otherwise set it false.
|
||||
*
|
||||
* @return None.
|
||||
@@ -1215,7 +1222,7 @@ FORCE_INLINE_ATTR bool uart_ll_is_hw_cts_en(uart_dev_t *hw)
|
||||
* @brief Configure TX signal loop back to RX module, just for the testing purposes
|
||||
*
|
||||
* @param hw Beginning address of the peripheral registers.
|
||||
* @param loop_back_en Set ture to enable the loop back function, else set it false.
|
||||
* @param loop_back_en Set true to enable the loop back function, else set it false.
|
||||
*
|
||||
* @return None
|
||||
*/
|
||||
|
Reference in New Issue
Block a user