|
|
@@ -38,6 +38,8 @@
|
|
|
#include "esp_private/wifi_os_adapter.h"
|
|
|
#include "esp_private/wifi.h"
|
|
|
#include "esp_phy_init.h"
|
|
|
+#include "soc/dport_reg.h"
|
|
|
+#include "soc/syscon_reg.h"
|
|
|
#include "driver/periph_ctrl.h"
|
|
|
#include "nvs.h"
|
|
|
#include "os.h"
|
|
|
@@ -408,6 +410,22 @@ static void IRAM_ATTR timer_arm_us_wrapper(void *ptimer, uint32_t us, bool repea
|
|
|
ets_timer_arm_us(ptimer, us, repeat);
|
|
|
}
|
|
|
|
|
|
+static void wifi_reset_mac_wrapper(void)
|
|
|
+{
|
|
|
+ DPORT_SET_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_MAC_RST);
|
|
|
+ DPORT_CLEAR_PERI_REG_MASK(DPORT_CORE_RST_EN_REG, DPORT_MAC_RST);
|
|
|
+}
|
|
|
+
|
|
|
+static void wifi_clock_enable_wrapper(void)
|
|
|
+{
|
|
|
+ periph_module_enable(PERIPH_WIFI_MODULE);
|
|
|
+}
|
|
|
+
|
|
|
+static void wifi_clock_disable_wrapper(void)
|
|
|
+{
|
|
|
+ periph_module_disable(PERIPH_WIFI_MODULE);
|
|
|
+}
|
|
|
+
|
|
|
static int get_time_wrapper(void *t)
|
|
|
{
|
|
|
return os_get_time(t);
|
|
|
@@ -576,8 +594,9 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
|
|
|
._timer_done = timer_done_wrapper,
|
|
|
._timer_setfn = timer_setfn_wrapper,
|
|
|
._timer_arm_us = timer_arm_us_wrapper,
|
|
|
- ._periph_module_enable = periph_module_enable,
|
|
|
- ._periph_module_disable = periph_module_disable,
|
|
|
+ ._wifi_reset_mac = wifi_reset_mac_wrapper,
|
|
|
+ ._wifi_clock_enable = wifi_clock_enable_wrapper,
|
|
|
+ ._wifi_clock_disable = wifi_clock_disable_wrapper,
|
|
|
._esp_timer_get_time = esp_timer_get_time,
|
|
|
._nvs_set_i8 = nvs_set_i8,
|
|
|
._nvs_get_i8 = nvs_get_i8,
|