kopia lustrzana https://github.com/espressif/esp-idf
Merge branch 'feature/esp32c5mp_light_sleep_support_stage_1' into 'master'
feat(esp_hw_support): esp32c5mp sleep support (Stage 1: support modem clock) See merge request espressif/esp-idf!31028pull/14089/head
commit
ec9c9413bc
|
@ -251,6 +251,7 @@ void IRAM_ATTR modem_clock_module_mac_reset(periph_module_t module)
|
|||
#if SOC_IEEE802154_SUPPORTED
|
||||
case PERIPH_IEEE802154_MODULE:
|
||||
modem_syscon_ll_reset_zbmac(ctx->hal->syscon_dev);
|
||||
modem_syscon_ll_reset_zbmac_apb(ctx->hal->syscon_dev);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
|
@ -409,10 +410,13 @@ void modem_clock_select_lp_clock_source(periph_module_t module, modem_clock_lpcl
|
|||
default:
|
||||
break;
|
||||
}
|
||||
#if SOC_LIGHT_SLEEP_SUPPORTED // TODO: [ESP32C5] IDF-8643
|
||||
modem_clock_lpclk_src_t last_src = MODEM_CLOCK_instance()->lpclk_src[module - PERIPH_MODEM_MODULE_MIN];
|
||||
#endif
|
||||
MODEM_CLOCK_instance()->lpclk_src[module - PERIPH_MODEM_MODULE_MIN] = src;
|
||||
portEXIT_CRITICAL_SAFE(&MODEM_CLOCK_instance()->lock);
|
||||
|
||||
#if SOC_LIGHT_SLEEP_SUPPORTED // TODO: [ESP32C5] IDF-8643
|
||||
/* The power domain of the low-power clock source required by the modem
|
||||
* module remains powered on during sleep */
|
||||
esp_sleep_pd_domain_t pd_domain = (esp_sleep_pd_domain_t) ( \
|
||||
|
@ -429,13 +433,16 @@ void modem_clock_select_lp_clock_source(periph_module_t module, modem_clock_lpcl
|
|||
: ESP_PD_DOMAIN_MAX);
|
||||
esp_sleep_pd_config(pd_domain, ESP_PD_OPTION_OFF);
|
||||
esp_sleep_pd_config(pu_domain, ESP_PD_OPTION_ON);
|
||||
#endif
|
||||
}
|
||||
|
||||
void modem_clock_deselect_lp_clock_source(periph_module_t module)
|
||||
{
|
||||
assert(IS_MODEM_MODULE(module));
|
||||
portENTER_CRITICAL_SAFE(&MODEM_CLOCK_instance()->lock);
|
||||
#if SOC_LIGHT_SLEEP_SUPPORTED // TODO: [ESP32C5] IDF-8643
|
||||
modem_clock_lpclk_src_t last_src = MODEM_CLOCK_instance()->lpclk_src[module - PERIPH_MODEM_MODULE_MIN];
|
||||
#endif
|
||||
MODEM_CLOCK_instance()->lpclk_src[module - PERIPH_MODEM_MODULE_MIN] = MODEM_CLOCK_LPCLK_SRC_INVALID;
|
||||
switch (module)
|
||||
{
|
||||
|
@ -470,6 +477,7 @@ void modem_clock_deselect_lp_clock_source(periph_module_t module)
|
|||
}
|
||||
portEXIT_CRITICAL_SAFE(&MODEM_CLOCK_instance()->lock);
|
||||
|
||||
#if SOC_LIGHT_SLEEP_SUPPORTED // TODO: [ESP32C5] IDF-8643
|
||||
esp_sleep_pd_domain_t pd_domain = (esp_sleep_pd_domain_t) ( \
|
||||
(last_src == MODEM_CLOCK_LPCLK_SRC_RC_FAST) ? ESP_PD_DOMAIN_RC_FAST \
|
||||
: (last_src == MODEM_CLOCK_LPCLK_SRC_MAIN_XTAL) ? ESP_PD_DOMAIN_XTAL \
|
||||
|
@ -477,4 +485,5 @@ void modem_clock_deselect_lp_clock_source(periph_module_t module)
|
|||
: (last_src == MODEM_CLOCK_LPCLK_SRC_XTAL32K) ? ESP_PD_DOMAIN_XTAL32K \
|
||||
: ESP_PD_DOMAIN_MAX);
|
||||
esp_sleep_pd_config(pd_domain, ESP_PD_OPTION_OFF);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -12,11 +12,311 @@
|
|||
#include <stdbool.h>
|
||||
#include "soc/soc.h"
|
||||
#include "hal/assert.h"
|
||||
#include "modem/modem_lpcon_struct.h"
|
||||
#include "hal/modem_clock_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_test_clk(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->test_conf.clk_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_ble_rtc_timer_slow_osc(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->lp_timer_conf.clk_lp_timer_sel_osc_slow = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_ble_rtc_timer_fast_osc(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->lp_timer_conf.clk_lp_timer_sel_osc_fast = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_ble_rtc_timer_main_xtal(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->lp_timer_conf.clk_lp_timer_sel_xtal = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_ble_rtc_timer_32k_xtal(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->lp_timer_conf.clk_lp_timer_sel_xtal32k = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_ble_rtc_timer_divisor_value(modem_lpcon_dev_t *hw, uint32_t value)
|
||||
{
|
||||
hw->lp_timer_conf.clk_lp_timer_div_num = value;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_ble_rtc_timer_divisor_value(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->lp_timer_conf.clk_lp_timer_div_num;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_coex_lpclk_slow_osc(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->coex_lp_clk_conf.clk_coex_lp_sel_osc_slow = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_coex_lpclk_fast_osc(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->coex_lp_clk_conf.clk_coex_lp_sel_osc_fast = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_coex_lpclk_main_xtal(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->coex_lp_clk_conf.clk_coex_lp_sel_xtal = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_coex_lpclk_32k_xtal(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->coex_lp_clk_conf.clk_coex_lp_sel_xtal32k = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_coex_lpclk_divisor_value(modem_lpcon_dev_t *hw, uint32_t value)
|
||||
{
|
||||
hw->coex_lp_clk_conf.clk_coex_lp_div_num = value;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_coex_lpclk_divisor_value(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->coex_lp_clk_conf.clk_coex_lp_div_num;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_wifi_lpclk_slow_osc(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->wifi_lp_clk_conf.clk_wifipwr_lp_sel_osc_slow = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_wifi_lpclk_fast_osc(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->wifi_lp_clk_conf.clk_wifipwr_lp_sel_osc_fast = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_wifi_lpclk_main_xtal(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->wifi_lp_clk_conf.clk_wifipwr_lp_sel_xtal = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_wifi_lpclk_32k_xtal(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->wifi_lp_clk_conf.clk_wifipwr_lp_sel_xtal32k = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_wifi_lpclk_divisor_value(modem_lpcon_dev_t *hw, uint32_t value)
|
||||
{
|
||||
hw->wifi_lp_clk_conf.clk_wifipwr_lp_div_num = value;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_wifi_lpclk_divisor_value(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->wifi_lp_clk_conf.clk_wifipwr_lp_div_num;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_i2c_master_160m_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
// ESP32C5 Not Support
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_modem_pwr_clk_src_fo(modem_lpcon_dev_t *hw, bool value)
|
||||
{
|
||||
hw->modem_src_clk_conf.modem_pwr_clk_src_fo = value;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_clk_modem_aon_force(modem_lpcon_dev_t *hw, uint32_t value)
|
||||
{
|
||||
hw->modem_src_clk_conf.clk_modem_aon_force = value;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_select_modem_32k_clock_source(modem_lpcon_dev_t *hw, uint32_t src)
|
||||
{
|
||||
hw->modem_32k_clk_conf.clk_modem_32k_sel = src;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_wifipwr_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_wifipwr_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_coex_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_coex_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_i2c_master_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_i2c_mst_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_ble_rtc_timer_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_lp_timer_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_wifipwr_force_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_wifipwr_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_coex_force_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_coex_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_i2c_master_force_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_i2c_mst_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_ble_rtc_timer_force_clock(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_lp_timer_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_wifipwr_icg_bitmap(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_wifipwr_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_wifipwr_icg_bitmap(modem_lpcon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_wifipwr_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_coex_icg_bitmap(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_coex_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_coex_icg_bitmap(modem_lpcon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_coex_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_i2c_master_icg_bitmap(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_i2c_mst_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_i2c_master_icg_bitmap(modem_lpcon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_i2c_mst_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_lp_apb_icg_bitmap(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_lp_apb_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_lp_apb_icg_bitmap(modem_lpcon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_lp_apb_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_reset_wifipwr(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
hw->rst_conf.rst_wifipwr = 1;
|
||||
hw->rst_conf.rst_wifipwr = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_reset_coex(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
hw->rst_conf.rst_coex = 1;
|
||||
hw->rst_conf.rst_coex = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_reset_i2c_master(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
hw->rst_conf.rst_i2c_mst = 1;
|
||||
hw->rst_conf.rst_i2c_mst = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_reset_ble_rtc_timer(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
hw->rst_conf.rst_lp_timer = 1;
|
||||
hw->rst_conf.rst_lp_timer = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_reset_all(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
hw->rst_conf.val = 0xf;
|
||||
hw->rst_conf.val = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_set_pwr_tick_target(modem_lpcon_dev_t *hw, uint32_t val)
|
||||
{
|
||||
hw->tick_conf.modem_pwr_tick_target = val;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_lpcon_ll_get_date(modem_lpcon_dev_t *hw)
|
||||
{
|
||||
return hw->date.val;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_chan_freq_mem(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->apb_mem_sel.chan_freq_mem_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_pbus_mem(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->apb_mem_sel.pbus_mem_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_lpcon_ll_enable_agc_mem(modem_lpcon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->apb_mem_sel.agc_mem_en = en;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -12,11 +12,675 @@
|
|||
#include <stdbool.h>
|
||||
#include "soc/soc.h"
|
||||
#include "hal/assert.h"
|
||||
#include "modem/modem_syscon_struct.h"
|
||||
#include "hal/modem_clock_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_test_clk(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->test_conf.clk_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_pwdet_sar_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.pwdet_sar_clock_ena = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_set_pwdet_clk_div_num(modem_syscon_dev_t *hw, uint32_t div)
|
||||
{
|
||||
hw->clk_conf.pwdet_clk_div_num = div;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_clk_tx_dac_inv(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_tx_dac_inv_ena = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_clk_rx_dac_inv(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_rx_adc_inv_ena = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_clk_pwdet_adc_inv(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_pwdet_adc_inv_ena = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_clk_i2c_mst_sel_160m(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_i2c_mst_sel_160m = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_data_dump_mux_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_data_dump_mux = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_etm_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_etm_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_ieee802154_apb_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_zb_apb_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_ieee802154_mac_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_zbmac_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_modem_sec_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_modem_sec_en = en;
|
||||
hw->clk_conf.clk_modem_sec_ecb_en = en;
|
||||
hw->clk_conf.clk_modem_sec_ccm_en = en;
|
||||
hw->clk_conf.clk_modem_sec_bah_en = en;
|
||||
hw->clk_conf.clk_modem_sec_apb_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_ble_timer_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_ble_timer_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_data_dump_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_data_dump_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_etm_force_clock(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_etm_fo = 1;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_ieee802154_apb_clock_force(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_zbmac_apb_fo = 1;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_ieee802154_mac_clock_force(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_zbmac_fo = 1;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_modem_sec_force_clock(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_modem_sec_fo = 1;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_ble_timer_force_clock(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_ble_timer_fo = 1;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_data_dump_force_clock(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_data_dump_fo = 1;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_syscon_ll_get_ieee802154_icg_bitmap(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_zb_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_set_ieee802154_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_zb_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_syscon_ll_get_fe_icg_bitmap(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_fe_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_set_fe_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_fe_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_syscon_ll_get_bt_icg_bitmap(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_bt_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_set_bt_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_bt_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_syscon_ll_get_wifi_icg_bitmap(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_wifi_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_set_wifi_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_wifi_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_syscon_ll_get_modem_periph_icg_bitmap(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_modem_peri_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_set_modem_periph_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_modem_peri_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_syscon_ll_get_modem_apb_icg_bitmap(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf_power_st.clk_modem_apb_st_map;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_set_modem_apb_icg_bitmap(modem_syscon_dev_t *hw, uint32_t bitmap)
|
||||
{
|
||||
hw->clk_conf_power_st.clk_modem_apb_st_map = bitmap;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_wifibb(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_wifibb = 1;
|
||||
hw->modem_rst_conf.rst_wifibb = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_wifimac(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_wifimac = 1;
|
||||
hw->modem_rst_conf.rst_wifimac = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_fe(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_fe = 1;
|
||||
hw->modem_rst_conf.rst_fe = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_btmac_apb(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_btmac_apb = 1;
|
||||
hw->modem_rst_conf.rst_btmac_apb = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_btmac(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_btmac = 1;
|
||||
hw->modem_rst_conf.rst_btmac = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_btbb_apb(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_btbb_apb = 1;
|
||||
hw->modem_rst_conf.rst_btbb_apb = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_btbb(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_btbb = 1;
|
||||
hw->modem_rst_conf.rst_btbb = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_etm(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_etm = 1;
|
||||
hw->modem_rst_conf.rst_etm = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_zbmac_apb(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_zbmac_apb = 1;
|
||||
hw->modem_rst_conf.rst_zbmac_apb = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_zbmac(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_zbmac = 1;
|
||||
hw->modem_rst_conf.rst_zbmac = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_modem_sec(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_modem_ecb = 1;
|
||||
hw->modem_rst_conf.rst_modem_ccm = 1;
|
||||
hw->modem_rst_conf.rst_modem_bah = 1;
|
||||
hw->modem_rst_conf.rst_modem_sec = 1;
|
||||
hw->modem_rst_conf.rst_modem_ecb = 0;
|
||||
hw->modem_rst_conf.rst_modem_ccm = 0;
|
||||
hw->modem_rst_conf.rst_modem_bah = 0;
|
||||
hw->modem_rst_conf.rst_modem_sec = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_ble_timer(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_ble_timer = 1;
|
||||
hw->modem_rst_conf.rst_ble_timer = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_data_dump(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.rst_data_dump = 1;
|
||||
hw->modem_rst_conf.rst_data_dump = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_all(modem_syscon_dev_t *hw)
|
||||
{
|
||||
hw->modem_rst_conf.val = 0xffffffff;
|
||||
hw->modem_rst_conf.val = 0;
|
||||
}
|
||||
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_clk_conf1_configure(modem_syscon_dev_t *hw, bool en, uint32_t mask)
|
||||
{
|
||||
if(en){
|
||||
hw->clk_conf1.val = hw->clk_conf1.val | mask;
|
||||
} else {
|
||||
hw->clk_conf1.val = hw->clk_conf1.val & ~mask;
|
||||
}
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_clk_wifibb_configure(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
/* Configure
|
||||
clk_wifibb_22m / clk_wifibb_40m / clk_wifibb_44m / clk_wifibb_80m
|
||||
clk_wifibb_40x / clk_wifibb_80x / clk_wifibb_40x1 / clk_wifibb_80x1
|
||||
clk_wifibb_160x1
|
||||
*/
|
||||
modem_syscon_ll_clk_conf1_configure(hw, en, 0x1ff);
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_22m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_22m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_40m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_40m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_44m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_44m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_80m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_80m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_40x_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_40x_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_80x_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_80x_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_40x1_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_40x1_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_80x1_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_80x1_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_160x1_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifibb_160x1_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_480m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1.clk_wifibb_480m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifi_mac_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifimac_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifi_apb_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_wifi_apb_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_20m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_20m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_40m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_40m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_80m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_80m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_160m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_160m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_apb_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_apb_en = en;
|
||||
}
|
||||
|
||||
// The modem_syscon of esp32c5 adds the enablement of the adc clock on the analog front end compared to esp32h2 and esp32c6.
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_adc_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_adc_en = en;
|
||||
}
|
||||
|
||||
// The modem_syscon of esp32c5 adds the enablement of the dac clock on the analog front end compared to esp32h2 and esp32c6.
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_dac_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_dac_en = en;
|
||||
}
|
||||
|
||||
// The modem_syscon of esp32c5 adds the enablement of the analog power detect clock on the analog front end compared to esp32h2 and esp32c6.
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_pwdet_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_fe_pwdet_adc_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_bt_apb_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_bt_apb_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_bt_mac_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_btmac_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_bt_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf1.clk_btbb_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_480m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1.clk_fe_480m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_anamode_40m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1.clk_fe_anamode_40m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_anamode_80m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1.clk_fe_anamode_80m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_anamode_160m_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1.clk_fe_anamode_160m_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_22m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_22m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_40m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_40m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_44m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_44m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_80m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_80m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_40x_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_40x_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_80x_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_80x_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_40x1_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_40x1_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_80x1_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_80x1_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_160x1_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_wifibb_160x1_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifibb_480m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifi_mac_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_wifimac_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_wifi_apb_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf_force_on.clk_wifi_apb_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_20m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_20m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_40m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_40m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_80m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_80m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_160m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_160m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_cal_160m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_cal_160m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_apb_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_apb_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_bt_apb_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_bt_apb_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_bt_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_bt_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_480m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_480m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_anamode_40m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_anamode_40m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_anamode_80m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_anamode_80m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_fe_anamode_160m_force_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
HAL_ASSERT(0 && "not implemented yet");
|
||||
// hw->clk_conf1_force_on.clk_fe_anamode_160m_fo = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline uint32_t modem_syscon_ll_get_date(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->date.val;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
@ -242,6 +242,12 @@ static inline void modem_syscon_ll_reset_zbmac(modem_syscon_dev_t *hw)
|
|||
hw->modem_rst_conf.rst_zbmac = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_zbmac_apb(modem_syscon_dev_t *hw)
|
||||
{
|
||||
// ESP32C6 Not Support
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_modem_sec(modem_syscon_dev_t *hw)
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
@ -151,6 +151,12 @@ static inline void modem_syscon_ll_reset_zbmac(modem_syscon_dev_t *hw)
|
|||
hw->modem_rst_conf.rst_zbmac = 0;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_zbmac_apb(modem_syscon_dev_t *hw)
|
||||
{
|
||||
// ESP32H2 Not Support
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_reset_modem_sec(modem_syscon_dev_t *hw)
|
||||
{
|
||||
|
|
|
@ -19,12 +19,10 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if !CONFIG_IDF_TARGET_ESP32C5
|
||||
typedef struct {
|
||||
modem_syscon_dev_t *syscon_dev;
|
||||
modem_lpcon_dev_t *lpcon_dev;
|
||||
} modem_clock_hal_context_t;
|
||||
#endif
|
||||
|
||||
#if !CONFIG_IDF_TARGET_ESP32H2 //TODO: PM-92
|
||||
void modem_clock_hal_set_clock_domain_icg_bitmap(modem_clock_hal_context_t *hal, modem_clock_domain_t domain, uint32_t bitmap);
|
||||
|
|
|
@ -13,7 +13,7 @@ extern "C" {
|
|||
typedef volatile struct {
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_en : 1;
|
||||
uint32_t clk_en : 1;
|
||||
uint32_t reserved1 : 1;
|
||||
uint32_t reserved2 : 30;
|
||||
};
|
||||
|
@ -21,58 +21,58 @@ typedef volatile struct {
|
|||
} test_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_lp_timer_sel_osc_slow : 1;
|
||||
uint32_t reg_clk_lp_timer_sel_osc_fast : 1;
|
||||
uint32_t reg_clk_lp_timer_sel_xtal : 1;
|
||||
uint32_t reg_clk_lp_timer_sel_xtal32k : 1;
|
||||
uint32_t reg_clk_lp_timer_div_num : 12;
|
||||
uint32_t clk_lp_timer_sel_osc_slow : 1;
|
||||
uint32_t clk_lp_timer_sel_osc_fast : 1;
|
||||
uint32_t clk_lp_timer_sel_xtal : 1;
|
||||
uint32_t clk_lp_timer_sel_xtal32k : 1;
|
||||
uint32_t clk_lp_timer_div_num : 12;
|
||||
uint32_t reserved16 : 16;
|
||||
};
|
||||
uint32_t val;
|
||||
} lp_timer_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_coex_lp_sel_osc_slow : 1;
|
||||
uint32_t reg_clk_coex_lp_sel_osc_fast : 1;
|
||||
uint32_t reg_clk_coex_lp_sel_xtal : 1;
|
||||
uint32_t reg_clk_coex_lp_sel_xtal32k : 1;
|
||||
uint32_t reg_clk_coex_lp_div_num : 12;
|
||||
uint32_t clk_coex_lp_sel_osc_slow : 1;
|
||||
uint32_t clk_coex_lp_sel_osc_fast : 1;
|
||||
uint32_t clk_coex_lp_sel_xtal : 1;
|
||||
uint32_t clk_coex_lp_sel_xtal32k : 1;
|
||||
uint32_t clk_coex_lp_div_num : 12;
|
||||
uint32_t reserved16 : 16;
|
||||
};
|
||||
uint32_t val;
|
||||
} coex_lp_clk_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_wifipwr_lp_sel_osc_slow: 1;
|
||||
uint32_t reg_clk_wifipwr_lp_sel_osc_fast: 1;
|
||||
uint32_t reg_clk_wifipwr_lp_sel_xtal : 1;
|
||||
uint32_t reg_clk_wifipwr_lp_sel_xtal32k: 1;
|
||||
uint32_t reg_clk_wifipwr_lp_div_num : 12;
|
||||
uint32_t clk_wifipwr_lp_sel_osc_slow: 1;
|
||||
uint32_t clk_wifipwr_lp_sel_osc_fast: 1;
|
||||
uint32_t clk_wifipwr_lp_sel_xtal : 1;
|
||||
uint32_t clk_wifipwr_lp_sel_xtal32k: 1;
|
||||
uint32_t clk_wifipwr_lp_div_num : 12;
|
||||
uint32_t reserved16 : 16;
|
||||
};
|
||||
uint32_t val;
|
||||
} wifi_lp_clk_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_modem_aon_force : 2;
|
||||
uint32_t reg_modem_pwr_clk_src_fo : 1;
|
||||
uint32_t clk_modem_aon_force : 2;
|
||||
uint32_t modem_pwr_clk_src_fo : 1;
|
||||
uint32_t reserved3 : 29;
|
||||
};
|
||||
uint32_t val;
|
||||
} modem_src_clk_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_modem_32k_sel : 2;
|
||||
uint32_t reserved2 : 30;
|
||||
uint32_t clk_modem_32k_sel : 2;
|
||||
uint32_t reserved2 : 30;
|
||||
};
|
||||
uint32_t val;
|
||||
} modem_32k_clk_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_wifipwr_en : 1;
|
||||
uint32_t reg_clk_coex_en : 1;
|
||||
uint32_t reg_clk_i2c_mst_en : 1;
|
||||
uint32_t reg_clk_lp_timer_en : 1;
|
||||
uint32_t clk_wifipwr_en : 1;
|
||||
uint32_t clk_coex_en : 1;
|
||||
uint32_t clk_i2c_mst_en : 1;
|
||||
uint32_t clk_lp_timer_en : 1;
|
||||
uint32_t reserved4 : 1;
|
||||
uint32_t reserved5 : 1;
|
||||
uint32_t reserved6 : 1;
|
||||
|
@ -106,11 +106,11 @@ typedef volatile struct {
|
|||
} clk_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_wifipwr_fo : 1;
|
||||
uint32_t reg_clk_coex_fo : 1;
|
||||
uint32_t reg_clk_i2c_mst_fo : 1;
|
||||
uint32_t reg_clk_lp_timer_fo : 1;
|
||||
uint32_t reg_clk_fe_mem_fo : 1;
|
||||
uint32_t clk_wifipwr_fo : 1;
|
||||
uint32_t clk_coex_fo : 1;
|
||||
uint32_t clk_i2c_mst_fo : 1;
|
||||
uint32_t clk_lp_timer_fo : 1;
|
||||
uint32_t clk_fe_mem_fo : 1;
|
||||
uint32_t reserved5 : 1;
|
||||
uint32_t reserved6 : 1;
|
||||
uint32_t reserved7 : 1;
|
||||
|
@ -144,19 +144,19 @@ typedef volatile struct {
|
|||
union {
|
||||
struct {
|
||||
uint32_t reserved0 : 16;
|
||||
uint32_t reg_clk_wifipwr_st_map : 4;
|
||||
uint32_t reg_clk_coex_st_map : 4;
|
||||
uint32_t reg_clk_i2c_mst_st_map : 4;
|
||||
uint32_t reg_clk_lp_apb_st_map : 4;
|
||||
uint32_t clk_wifipwr_st_map : 4;
|
||||
uint32_t clk_coex_st_map : 4;
|
||||
uint32_t clk_i2c_mst_st_map : 4;
|
||||
uint32_t clk_lp_apb_st_map : 4;
|
||||
};
|
||||
uint32_t val;
|
||||
} clk_conf_power_st;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_rst_wifipwr : 1;
|
||||
uint32_t reg_rst_coex : 1;
|
||||
uint32_t reg_rst_i2c_mst : 1;
|
||||
uint32_t reg_rst_lp_timer : 1;
|
||||
uint32_t rst_wifipwr : 1;
|
||||
uint32_t rst_coex : 1;
|
||||
uint32_t rst_i2c_mst : 1;
|
||||
uint32_t rst_lp_timer : 1;
|
||||
uint32_t reserved4 : 1;
|
||||
uint32_t reserved5 : 1;
|
||||
uint32_t reserved6 : 1;
|
||||
|
@ -190,33 +190,33 @@ typedef volatile struct {
|
|||
} rst_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_modem_pwr_tick_target : 6;
|
||||
uint32_t modem_pwr_tick_target : 6;
|
||||
uint32_t reserved6 : 26;
|
||||
};
|
||||
uint32_t val;
|
||||
} tick_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_dc_mem_mode : 3;
|
||||
uint32_t reg_dc_mem_force : 1;
|
||||
uint32_t reg_agc_mem_mode : 3;
|
||||
uint32_t reg_agc_mem_force : 1;
|
||||
uint32_t reg_pbus_mem_mode : 3;
|
||||
uint32_t reg_pbus_mem_force : 1;
|
||||
uint32_t reg_bc_mem_mode : 3;
|
||||
uint32_t reg_bc_mem_force : 1;
|
||||
uint32_t reg_i2c_mst_mem_mode : 3;
|
||||
uint32_t reg_i2c_mst_mem_force : 1;
|
||||
uint32_t reg_chan_freq_mem_mode : 3;
|
||||
uint32_t reg_chan_freq_mem_force : 1;
|
||||
uint32_t reserved24 : 1;
|
||||
uint32_t reserved25 : 1;
|
||||
uint32_t reserved26 : 1;
|
||||
uint32_t reserved27 : 1;
|
||||
uint32_t reserved28 : 1;
|
||||
uint32_t reserved29 : 1;
|
||||
uint32_t reserved30 : 1;
|
||||
uint32_t reserved31 : 1;
|
||||
uint32_t dc_mem_mode : 3;
|
||||
uint32_t dc_mem_force : 1;
|
||||
uint32_t agc_mem_mode : 3;
|
||||
uint32_t agc_mem_force : 1;
|
||||
uint32_t pbus_mem_mode : 3;
|
||||
uint32_t pbus_mem_force : 1;
|
||||
uint32_t bc_mem_mode : 3;
|
||||
uint32_t bc_mem_force : 1;
|
||||
uint32_t i2c_mst_mem_mode : 3;
|
||||
uint32_t i2c_mst_mem_force : 1;
|
||||
uint32_t chan_freq_mem_mode : 3;
|
||||
uint32_t chan_freq_mem_force : 1;
|
||||
uint32_t reserved24 : 1;
|
||||
uint32_t reserved25 : 1;
|
||||
uint32_t reserved26 : 1;
|
||||
uint32_t reserved27 : 1;
|
||||
uint32_t reserved28 : 1;
|
||||
uint32_t reserved29 : 1;
|
||||
uint32_t reserved30 : 1;
|
||||
uint32_t reserved31 : 1;
|
||||
};
|
||||
uint32_t val;
|
||||
} mem_conf;
|
||||
|
@ -224,16 +224,16 @@ typedef volatile struct {
|
|||
uint32_t mem_rf2_aux_ctrl;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_chan_freq_mem_en : 1;
|
||||
uint32_t reg_pbus_mem_en : 1;
|
||||
uint32_t reg_agc_mem_en : 1;
|
||||
uint32_t chan_freq_mem_en : 1;
|
||||
uint32_t pbus_mem_en : 1;
|
||||
uint32_t agc_mem_en : 1;
|
||||
uint32_t reserved3 : 29;
|
||||
};
|
||||
uint32_t val;
|
||||
} apb_mem_sel;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_date : 28;
|
||||
uint32_t date : 28;
|
||||
uint32_t reserved28 : 4;
|
||||
};
|
||||
uint32_t val;
|
||||
|
|
|
@ -13,76 +13,76 @@ extern "C" {
|
|||
typedef volatile struct {
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_en : 1;
|
||||
uint32_t reg_modem_ant_force_sel_bt : 1;
|
||||
uint32_t reg_modem_ant_force_sel_wifi : 1;
|
||||
uint32_t reg_fpga_debug_clkswitch : 1;
|
||||
uint32_t reg_fpga_debug_clk80 : 1;
|
||||
uint32_t reg_fpga_debug_clk40 : 1;
|
||||
uint32_t reg_fpga_debug_clk20 : 1;
|
||||
uint32_t reg_fpga_debug_clk10 : 1;
|
||||
uint32_t reg_modem_mem_mode_force : 1;
|
||||
uint32_t reserved9 : 23;
|
||||
uint32_t clk_en : 1;
|
||||
uint32_t modem_ant_force_sel_bt : 1;
|
||||
uint32_t modem_ant_force_sel_wifi : 1;
|
||||
uint32_t fpga_debug_clkswitch : 1;
|
||||
uint32_t fpga_debug_clk80 : 1;
|
||||
uint32_t fpga_debug_clk40 : 1;
|
||||
uint32_t fpga_debug_clk20 : 1;
|
||||
uint32_t fpga_debug_clk10 : 1;
|
||||
uint32_t modem_mem_mode_force : 1;
|
||||
uint32_t reserved9 : 23;
|
||||
};
|
||||
uint32_t val;
|
||||
} test_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_pwdet_sar_clock_ena : 1;
|
||||
uint32_t reg_pwdet_clk_div_num : 8;
|
||||
uint32_t reg_clk_tx_dac_inv_ena : 1;
|
||||
uint32_t reg_clk_rx_adc_inv_ena : 1;
|
||||
uint32_t reg_clk_pwdet_adc_inv_ena : 1;
|
||||
uint32_t reg_clk_i2c_mst_sel_160m : 1;
|
||||
uint32_t reserved13 : 8;
|
||||
uint32_t reg_clk_data_dump_mux : 1;
|
||||
uint32_t reg_clk_etm_en : 1;
|
||||
uint32_t reg_clk_zb_apb_en : 1;
|
||||
uint32_t reg_clk_zbmac_en : 1;
|
||||
uint32_t reg_clk_modem_sec_ecb_en : 1;
|
||||
uint32_t reg_clk_modem_sec_ccm_en : 1;
|
||||
uint32_t reg_clk_modem_sec_bah_en : 1;
|
||||
uint32_t reg_clk_modem_sec_apb_en : 1;
|
||||
uint32_t reg_clk_modem_sec_en : 1;
|
||||
uint32_t reg_clk_ble_timer_en : 1;
|
||||
uint32_t reg_clk_data_dump_en : 1;
|
||||
uint32_t pwdet_sar_clock_ena : 1;
|
||||
uint32_t pwdet_clk_div_num : 8;
|
||||
uint32_t clk_tx_dac_inv_ena : 1;
|
||||
uint32_t clk_rx_adc_inv_ena : 1;
|
||||
uint32_t clk_pwdet_adc_inv_ena : 1;
|
||||
uint32_t clk_i2c_mst_sel_160m : 1;
|
||||
uint32_t reserved13 : 8;
|
||||
uint32_t clk_data_dump_mux : 1;
|
||||
uint32_t clk_etm_en : 1;
|
||||
uint32_t clk_zb_apb_en : 1;
|
||||
uint32_t clk_zbmac_en : 1;
|
||||
uint32_t clk_modem_sec_ecb_en : 1;
|
||||
uint32_t clk_modem_sec_ccm_en : 1;
|
||||
uint32_t clk_modem_sec_bah_en : 1;
|
||||
uint32_t clk_modem_sec_apb_en : 1;
|
||||
uint32_t clk_modem_sec_en : 1;
|
||||
uint32_t clk_ble_timer_en : 1;
|
||||
uint32_t clk_data_dump_en : 1;
|
||||
};
|
||||
uint32_t val;
|
||||
} clk_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_wifibb_fo : 1;
|
||||
uint32_t reg_clk_wifimac_fo : 1;
|
||||
uint32_t reg_clk_wifi_apb_fo : 1;
|
||||
uint32_t reg_clk_fe_fo : 1;
|
||||
uint32_t reg_clk_fe_apb_fo : 1;
|
||||
uint32_t reg_clk_btbb_fo : 1;
|
||||
uint32_t reg_clk_btmac_fo : 1;
|
||||
uint32_t reg_clk_bt_apb_fo : 1;
|
||||
uint32_t reg_clk_zbmac_fo : 1;
|
||||
uint32_t reg_clk_zbmac_apb_fo : 1;
|
||||
uint32_t clk_wifibb_fo : 1;
|
||||
uint32_t clk_wifimac_fo : 1;
|
||||
uint32_t clk_wifi_apb_fo : 1;
|
||||
uint32_t clk_fe_fo : 1;
|
||||
uint32_t clk_fe_apb_fo : 1;
|
||||
uint32_t clk_btbb_fo : 1;
|
||||
uint32_t clk_btmac_fo : 1;
|
||||
uint32_t clk_bt_apb_fo : 1;
|
||||
uint32_t clk_zbmac_fo : 1;
|
||||
uint32_t clk_zbmac_apb_fo : 1;
|
||||
uint32_t reserved10 : 13;
|
||||
uint32_t reserved23 : 1;
|
||||
uint32_t reserved24 : 1;
|
||||
uint32_t reserved25 : 1;
|
||||
uint32_t reserved26 : 1;
|
||||
uint32_t reserved27 : 1;
|
||||
uint32_t reg_clk_etm_fo : 1;
|
||||
uint32_t reg_clk_modem_sec_fo : 1;
|
||||
uint32_t reg_clk_ble_timer_fo : 1;
|
||||
uint32_t reg_clk_data_dump_fo : 1;
|
||||
uint32_t clk_etm_fo : 1;
|
||||
uint32_t clk_modem_sec_fo : 1;
|
||||
uint32_t clk_ble_timer_fo : 1;
|
||||
uint32_t clk_data_dump_fo : 1;
|
||||
};
|
||||
uint32_t val;
|
||||
} clk_conf_force_on;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reserved0 : 8;
|
||||
uint32_t reg_clk_zb_st_map : 4;
|
||||
uint32_t reg_clk_fe_st_map : 4;
|
||||
uint32_t reg_clk_bt_st_map : 4;
|
||||
uint32_t reg_clk_wifi_st_map : 4;
|
||||
uint32_t reg_clk_modem_peri_st_map : 4;
|
||||
uint32_t reg_clk_modem_apb_st_map : 4;
|
||||
uint32_t clk_zb_st_map : 4;
|
||||
uint32_t clk_fe_st_map : 4;
|
||||
uint32_t clk_bt_st_map : 4;
|
||||
uint32_t clk_wifi_st_map : 4;
|
||||
uint32_t clk_modem_peri_st_map : 4;
|
||||
uint32_t clk_modem_apb_st_map : 4;
|
||||
};
|
||||
uint32_t val;
|
||||
} clk_conf_power_st;
|
||||
|
@ -96,58 +96,58 @@ typedef volatile struct {
|
|||
uint32_t reserved5 : 1;
|
||||
uint32_t reserved6 : 1;
|
||||
uint32_t reserved7 : 1;
|
||||
uint32_t reg_rst_wifibb : 1;
|
||||
uint32_t reg_rst_wifimac : 1;
|
||||
uint32_t reg_rst_fe_pwdet_adc : 1;
|
||||
uint32_t reg_rst_fe_dac : 1;
|
||||
uint32_t reg_rst_fe_adc : 1;
|
||||
uint32_t reg_rst_fe_ahb : 1;
|
||||
uint32_t reg_rst_fe : 1;
|
||||
uint32_t reg_rst_btmac_apb : 1;
|
||||
uint32_t reg_rst_btmac : 1;
|
||||
uint32_t reg_rst_btbb_apb : 1;
|
||||
uint32_t reg_rst_btbb : 1;
|
||||
uint32_t rst_wifibb : 1;
|
||||
uint32_t rst_wifimac : 1;
|
||||
uint32_t rst_fe_pwdet_adc : 1;
|
||||
uint32_t rst_fe_dac : 1;
|
||||
uint32_t rst_fe_adc : 1;
|
||||
uint32_t rst_fe_ahb : 1;
|
||||
uint32_t rst_fe : 1;
|
||||
uint32_t rst_btmac_apb : 1;
|
||||
uint32_t rst_btmac : 1;
|
||||
uint32_t rst_btbb_apb : 1;
|
||||
uint32_t rst_btbb : 1;
|
||||
uint32_t reserved19 : 3;
|
||||
uint32_t reg_rst_etm : 1;
|
||||
uint32_t reg_rst_zbmac_apb : 1;
|
||||
uint32_t reg_rst_zbmac : 1;
|
||||
uint32_t reg_rst_modem_ecb : 1;
|
||||
uint32_t reg_rst_modem_ccm : 1;
|
||||
uint32_t reg_rst_modem_bah : 1;
|
||||
uint32_t rst_etm : 1;
|
||||
uint32_t rst_zbmac_apb : 1;
|
||||
uint32_t rst_zbmac : 1;
|
||||
uint32_t rst_modem_ecb : 1;
|
||||
uint32_t rst_modem_ccm : 1;
|
||||
uint32_t rst_modem_bah : 1;
|
||||
uint32_t reserved28 : 1;
|
||||
uint32_t reg_rst_modem_sec : 1;
|
||||
uint32_t reg_rst_ble_timer : 1;
|
||||
uint32_t reg_rst_data_dump : 1;
|
||||
uint32_t rst_modem_sec : 1;
|
||||
uint32_t rst_ble_timer : 1;
|
||||
uint32_t rst_data_dump : 1;
|
||||
};
|
||||
uint32_t val;
|
||||
} modem_rst_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_clk_wifibb_22m_en : 1;
|
||||
uint32_t reg_clk_wifibb_40m_en : 1;
|
||||
uint32_t reg_clk_wifibb_44m_en : 1;
|
||||
uint32_t reg_clk_wifibb_80m_en : 1;
|
||||
uint32_t reg_clk_wifibb_40x_en : 1;
|
||||
uint32_t reg_clk_wifibb_80x_en : 1;
|
||||
uint32_t reg_clk_wifibb_40x1_en : 1;
|
||||
uint32_t reg_clk_wifibb_80x1_en : 1;
|
||||
uint32_t reg_clk_wifibb_160x1_en : 1;
|
||||
uint32_t reg_clk_wifimac_en : 1;
|
||||
uint32_t reg_clk_wifi_apb_en : 1;
|
||||
uint32_t reg_clk_fe_20m_en : 1;
|
||||
uint32_t reg_clk_fe_40m_en : 1;
|
||||
uint32_t reg_clk_fe_80m_en : 1;
|
||||
uint32_t reg_clk_fe_160m_en : 1;
|
||||
uint32_t reg_clk_fe_apb_en : 1;
|
||||
uint32_t reg_clk_bt_apb_en : 1;
|
||||
uint32_t reg_clk_btbb_en : 1;
|
||||
uint32_t reg_clk_btmac_en : 1;
|
||||
uint32_t reg_clk_fe_pwdet_adc_en : 1;
|
||||
uint32_t reg_clk_fe_adc_en : 1;
|
||||
uint32_t reg_clk_fe_dac_en : 1;
|
||||
uint32_t reserved22 : 1;
|
||||
uint32_t reserved23 : 1;
|
||||
uint32_t reserved24 : 8;
|
||||
uint32_t clk_wifibb_22m_en : 1;
|
||||
uint32_t clk_wifibb_40m_en : 1;
|
||||
uint32_t clk_wifibb_44m_en : 1;
|
||||
uint32_t clk_wifibb_80m_en : 1;
|
||||
uint32_t clk_wifibb_40x_en : 1;
|
||||
uint32_t clk_wifibb_80x_en : 1;
|
||||
uint32_t clk_wifibb_40x1_en : 1;
|
||||
uint32_t clk_wifibb_80x1_en : 1;
|
||||
uint32_t clk_wifibb_160x1_en : 1;
|
||||
uint32_t clk_wifimac_en : 1;
|
||||
uint32_t clk_wifi_apb_en : 1;
|
||||
uint32_t clk_fe_20m_en : 1;
|
||||
uint32_t clk_fe_40m_en : 1;
|
||||
uint32_t clk_fe_80m_en : 1;
|
||||
uint32_t clk_fe_160m_en : 1;
|
||||
uint32_t clk_fe_apb_en : 1;
|
||||
uint32_t clk_bt_apb_en : 1;
|
||||
uint32_t clk_btbb_en : 1;
|
||||
uint32_t clk_btmac_en : 1;
|
||||
uint32_t clk_fe_pwdet_adc_en : 1;
|
||||
uint32_t clk_fe_adc_en : 1;
|
||||
uint32_t clk_fe_dac_en : 1;
|
||||
uint32_t reserved22 : 1;
|
||||
uint32_t reserved23 : 1;
|
||||
uint32_t reserved24 : 8;
|
||||
};
|
||||
uint32_t val;
|
||||
} clk_conf1;
|
||||
|
@ -156,7 +156,7 @@ typedef volatile struct {
|
|||
uint32_t mem_rf2_conf;
|
||||
union {
|
||||
struct {
|
||||
uint32_t reg_date : 28;
|
||||
uint32_t date : 28;
|
||||
uint32_t reserved28 : 4;
|
||||
};
|
||||
uint32_t val;
|
||||
|
|
|
@ -135,6 +135,10 @@ config SOC_ECDSA_SUPPORTED
|
|||
bool
|
||||
default y
|
||||
|
||||
config SOC_MODEM_CLOCK_SUPPORTED
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_XTAL_SUPPORT_40M
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
#define SOC_ECDSA_SUPPORTED 1
|
||||
// #define SOC_KEY_MANAGER_SUPPORTED 1 // TODO: [ESP32C5] IDF-8621
|
||||
// #define SOC_HUK_SUPPORTED 1 // TODO: [ESP32C5] IDF-8617
|
||||
// #define SOC_MODEM_CLOCK_SUPPORTED 1 // TODO: [ESP32C5] IDF-8845
|
||||
#define SOC_MODEM_CLOCK_SUPPORTED 1
|
||||
// #define SOC_PM_SUPPORTED 1 // TODO: [ESP32C5] IDF-8643
|
||||
|
||||
/*-------------------------- XTAL CAPS ---------------------------------------*/
|
||||
|
|
Ładowanie…
Reference in New Issue