mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 00:51:42 +01:00 
			
		
		
		
	feat(uart): support uart module sleep retention on c6/h2/p4
This commit is contained in:
		@@ -396,6 +396,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)
 | 
			
		||||
{
 | 
			
		||||
    LP_AON.gpio_hold0.gpio_hold0 |= GPIO_HOLD_MASK[gpio_num];
 | 
			
		||||
@@ -407,6 +408,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)
 | 
			
		||||
{
 | 
			
		||||
    LP_AON.gpio_hold0.gpio_hold0 &= ~GPIO_HOLD_MASK[gpio_num];
 | 
			
		||||
 
 | 
			
		||||
@@ -61,6 +61,10 @@ extern "C" {
 | 
			
		||||
#define UART_LL_PCR_REG_GET(hw, reg_suffix, field_suffix)  \
 | 
			
		||||
    (((hw) == &UART0) ? PCR.uart0_##reg_suffix.uart0_##field_suffix : PCR.uart1_##reg_suffix.uart1_##field_suffix)
 | 
			
		||||
 | 
			
		||||
// 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 : -1)
 | 
			
		||||
 | 
			
		||||
// Define UART interrupts
 | 
			
		||||
typedef enum {
 | 
			
		||||
    UART_INTR_RXFIFO_FULL      = (0x1 << 0),
 | 
			
		||||
@@ -704,7 +708,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.
 | 
			
		||||
@@ -771,7 +775,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.
 | 
			
		||||
@@ -1102,7 +1106,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