esp_hw_support: add modem module mac reset api

This commit is contained in:
wuzhenghui
2023-06-05 10:31:00 +08:00
parent a0dc515143
commit 4196eddff1
7 changed files with 110 additions and 83 deletions

View File

@@ -214,15 +214,34 @@ static void IRAM_ATTR modem_clock_device_disable(modem_clock_context_t *ctx, uin
assert(refs >= 0);
}
void IRAM_ATTR modem_clock_wifi_mac_reset(void)
void IRAM_ATTR modem_clock_module_mac_reset(periph_module_t module)
{
#if SOC_WIFI_SUPPORTED
modem_clock_context_t *ctx = MODEM_CLOCK_instance();
portENTER_CRITICAL_SAFE(&ctx->lock);
//TODO: IDF-5713
modem_syscon_ll_reset_wifimac(ctx->hal->syscon_dev);
portEXIT_CRITICAL_SAFE(&ctx->lock);
switch (module)
{
#if SOC_WIFI_SUPPORTED
case PERIPH_WIFI_MODULE:
modem_syscon_ll_reset_wifimac(ctx->hal->syscon_dev);
break;
#endif
#if SOC_BT_SUPPORTED
case PERIPH_BT_MODULE:
modem_syscon_ll_reset_btmac(ctx->hal->syscon_dev);
modem_syscon_ll_reset_btmac_apb(ctx->hal->syscon_dev);
modem_syscon_ll_reset_ble_timer(ctx->hal->syscon_dev);
modem_syscon_ll_reset_modem_sec(ctx->hal->syscon_dev);
break;
#endif
#if SOC_IEEE802154_SUPPORTED
case PERIPH_IEEE802154_MODULE:
modem_syscon_ll_reset_zbmac(ctx->hal->syscon_dev);
break;
default:
#endif
assert(0);
}
portEXIT_CRITICAL_SAFE(&ctx->lock);
}
#define WIFI_CLOCK_DEPS (BIT(MODEM_CLOCK_WIFI_MAC) | BIT(MODEM_CLOCK_FE) | BIT(MODEM_CLOCK_WIFI_BB) | BIT(MODEM_CLOCK_COEXIST))