feat(modem): add phy retention related api

This commit is contained in:
cjin
2026-09-04 10:27:25 +08:00
parent a79519d844
commit 3c875310d1
15 changed files with 245 additions and 55 deletions
+38 -2
View File
@@ -47,13 +47,21 @@ void pau_hal_set_regdma_entry_link_addr(pau_hal_context_t *hal, pau_regdma_link_
#define pau_hal_set_regdma_modem_link_addr(hal, addr) pau_ll_set_regdma_wifimac_link_addr((hal)->dev, (addr))
#endif
/**
* @brief Wait until regdma completes
*
* @param hal regdma hal context
*/
void pau_hal_regdma_wait_done(pau_hal_context_t *hal);
/**
* @brief Start transmission on regdma modem link
*
* @param hal regdma hal context
* @param backup_or_restore false:restore true:backup
* @param blocking software wait till regdma completes
*/
void pau_hal_start_regdma_modem_link(pau_hal_context_t *hal, bool backup_or_restore);
void pau_hal_start_regdma_modem_link(pau_hal_context_t *hal, bool backup_or_restore, bool blocking);
/**
* @brief Stop transmission on regdma modem link
@@ -68,8 +76,9 @@ void pau_hal_stop_regdma_modem_link(pau_hal_context_t *hal);
*
* @param hal regdma hal context
* @param backup_or_restore false: restore, true: backup
* @param blocking software wait till regdma completes
*/
void pau_hal_start_regdma_wifimac_link(pau_hal_context_t *hal, bool backup_or_restore);
void pau_hal_start_regdma_wifimac_link(pau_hal_context_t *hal, bool backup_or_restore, bool blocking);
/**
* @brief Stop transmission on regdma WiFi MAC SEL link
@@ -78,6 +87,33 @@ void pau_hal_start_regdma_wifimac_link(pau_hal_context_t *hal, bool backup_or_re
*/
void pau_hal_stop_regdma_wifimac_link(pau_hal_context_t *hal);
#endif
/**
* @brief Enable regdma done interrupt
*
* @param hal regdma hal context
*/
#define pau_hal_regdma_done_int_enable(hal) pau_ll_set_regdma_backup_done_intr_enable((hal)->dev, true)
/**
* @brief Disable regdma done interrupt
*
* @param hal regdma hal context
*/
#define pau_hal_regdma_done_int_disable(hal) pau_ll_set_regdma_backup_done_intr_enable((hal)->dev, false)
/**
* @brief Get regdma done interrupt status
*
* @param hal regdma hal context
*/
bool pau_hal_get_regdma_done_status(pau_hal_context_t *hal);
/**
* @brief Clear regdma done interrupt status
*
* @param hal regdma hal context
*/
#define pau_hal_clear_regdma_backup_done_intr_state(hal) pau_ll_clear_regdma_backup_done_intr_state((hal)->dev)
#endif
#if SOC_PM_RETENTION_SW_TRIGGER_REGDMA