mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
feat(modem_clock): separate bt sec apb clock and add to bt apb module
This commit is contained in:
@@ -13,7 +13,6 @@
|
||||
/* Clock dependency definitions */
|
||||
#define BT_APB_CLOCK_DEPS ( MODEM_CLOCKS( BT_APB, ETM ) )
|
||||
#define BLE_CLOCK_DEPS ( MODEM_CLOCKS( BLE_MAC, BT_I154_COMMON_BB, ETM, COEXIST, BT_APB ) )
|
||||
#define BT_APB_CLOCK_DEPS ( MODEM_CLOCKS( BT_APB, ETM ) )
|
||||
#define IEEE802154_CLOCK_DEPS ( MODEM_CLOCKS( 802154_MAC, BT_I154_COMMON_BB, ETM, COEXIST, BT_APB ) )
|
||||
#define COEXIST_CLOCK_DEPS ( MODEM_CLOCKS( COEXIST ) )
|
||||
#define I2C_ANA_MST_CLOCK_DEPS ( MODEM_CLOCKS( I2C_MASTER ) )
|
||||
@@ -66,6 +65,22 @@ static esp_err_t IRAM_ATTR modem_clock_ble_mac_check_enable(modem_clock_context_
|
||||
#endif
|
||||
|
||||
static void IRAM_ATTR modem_clock_bt_apb_configure(modem_clock_context_t *ctx, bool enable)
|
||||
{
|
||||
modem_syscon_ll_enable_bt_apb_clock(ctx->hal->syscon_dev, enable);
|
||||
modem_syscon_ll_enable_modem_sec_apb_clock(ctx->hal->syscon_dev, enable);
|
||||
}
|
||||
|
||||
#if CONFIG_ESP_MODEM_CLOCK_ENABLE_CHECKING
|
||||
static esp_err_t IRAM_ATTR modem_clock_bt_apb_check_enable(modem_clock_context_t *ctx)
|
||||
{
|
||||
bool all_clock_enabled = true;
|
||||
all_clock_enabled &= modem_syscon_ll_bt_apb_clock_is_enabled(ctx->hal->syscon_dev);
|
||||
all_clock_enabled &= modem_syscon_ll_modem_sec_apb_clock_is_enabled(ctx->hal->syscon_dev);
|
||||
return all_clock_enabled ? ESP_OK : ESP_FAIL;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void IRAM_ATTR modem_clock_ble_i154_bb_configure(modem_clock_context_t *ctx, bool enable)
|
||||
{
|
||||
modem_syscon_ll_enable_bt_apb_clock(ctx->hal->syscon_dev, enable);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/* Clock dependency definitions */
|
||||
#define WIFI_CLOCK_DEPS ( MODEM_CLOCKS( WIFI_MAC, WIFI_APB, WIFI_BB, WIFI_BB_44M, COEXIST, WIFI_BB_80X1, SOC_PLL_SOURCE_CG ) )
|
||||
#define BLE_CLOCK_DEPS ( MODEM_CLOCKS( BLE_MAC, BT_I154_COMMON_BB, ETM, COEXIST, WIFI_BB_80X1, SOC_PLL_SOURCE_CG, BT_APB ) )
|
||||
#define BT_APB_CLOCK_DEPS ( MODEM_CLOCKS( BT_APB, ETM ) )
|
||||
#define BT_APB_CLOCK_DEPS ( MODEM_CLOCKS( BT_APB, ETM, WIFI_BB_80X1, SOC_PLL_SOURCE_CG ) )
|
||||
#define IEEE802154_CLOCK_DEPS ( MODEM_CLOCKS( 802154_MAC, BT_I154_COMMON_BB, ETM, COEXIST, WIFI_BB_80X1, SOC_PLL_SOURCE_CG, BT_APB ) )
|
||||
#define COEXIST_CLOCK_DEPS ( MODEM_CLOCKS( COEXIST, SOC_PLL_SOURCE_CG ) )
|
||||
#define I2C_ANA_MST_CLOCK_DEPS ( MODEM_CLOCKS( I2C_MASTER ) )
|
||||
@@ -121,12 +121,16 @@ static esp_err_t IRAM_ATTR modem_clock_ble_mac_check_enable(modem_clock_context_
|
||||
static void IRAM_ATTR modem_clock_bt_apb_configure(modem_clock_context_t *ctx, bool enable)
|
||||
{
|
||||
modem_syscon_ll_enable_bt_apb_clock(ctx->hal->syscon_dev, enable);
|
||||
modem_syscon_ll_enable_modem_sec_apb_clock(ctx->hal->syscon_dev, enable);
|
||||
}
|
||||
|
||||
#if CONFIG_ESP_MODEM_CLOCK_ENABLE_CHECKING
|
||||
static esp_err_t IRAM_ATTR modem_clock_bt_apb_check_enable(modem_clock_context_t *ctx)
|
||||
{
|
||||
return modem_syscon_ll_bt_apb_clock_is_enabled(ctx->hal->syscon_dev) ? ESP_OK : ESP_FAIL;
|
||||
bool all_clock_enabled = true;
|
||||
all_clock_enabled &= modem_syscon_ll_bt_apb_clock_is_enabled(ctx->hal->syscon_dev);
|
||||
all_clock_enabled &= modem_syscon_ll_modem_sec_apb_clock_is_enabled(ctx->hal->syscon_dev);
|
||||
return all_clock_enabled ? ESP_OK : ESP_FAIL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -122,7 +122,6 @@ static inline void modem_syscon_ll_enable_modem_sec_clock(modem_syscon_dev_t *hw
|
||||
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))
|
||||
@@ -131,8 +130,19 @@ static inline bool modem_syscon_ll_modem_sec_clock_is_enabled(modem_syscon_dev_t
|
||||
return hw->clk_conf.clk_modem_sec_en &&
|
||||
hw->clk_conf.clk_modem_sec_ecb_en &&
|
||||
hw->clk_conf.clk_modem_sec_ccm_en &&
|
||||
hw->clk_conf.clk_modem_sec_bah_en &&
|
||||
hw->clk_conf.clk_modem_sec_apb_en;
|
||||
hw->clk_conf.clk_modem_sec_bah_en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_modem_sec_apb_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_modem_sec_apb_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline bool modem_syscon_ll_modem_sec_apb_clock_is_enabled(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf.clk_modem_sec_apb_en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
|
||||
@@ -122,7 +122,6 @@ static inline void modem_syscon_ll_enable_modem_sec_clock(modem_syscon_dev_t *hw
|
||||
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))
|
||||
@@ -131,8 +130,19 @@ static inline bool modem_syscon_ll_modem_sec_clock_is_enabled(modem_syscon_dev_t
|
||||
return hw->clk_conf.clk_modem_sec_en &&
|
||||
hw->clk_conf.clk_modem_sec_ecb_en &&
|
||||
hw->clk_conf.clk_modem_sec_ccm_en &&
|
||||
hw->clk_conf.clk_modem_sec_bah_en &&
|
||||
hw->clk_conf.clk_modem_sec_apb_en;
|
||||
hw->clk_conf.clk_modem_sec_bah_en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline void modem_syscon_ll_enable_modem_sec_apb_clock(modem_syscon_dev_t *hw, bool en)
|
||||
{
|
||||
hw->clk_conf.clk_modem_sec_apb_en = en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
static inline bool modem_syscon_ll_modem_sec_apb_clock_is_enabled(modem_syscon_dev_t *hw)
|
||||
{
|
||||
return hw->clk_conf.clk_modem_sec_apb_en;
|
||||
}
|
||||
|
||||
__attribute__((always_inline))
|
||||
|
||||
Reference in New Issue
Block a user