/************************************************* File name : hal_interface_pmu.c Module : hal pmu library interface typedefs Author : Version : Created on : 2020-10-20 Description : Data structure and function definitions required by the pmu interface Modify History: 1. Date: Author: Modification: 2020-10-20 amir.liang create *************************************************/ #include "pal.h" #include "hal_interface_pmu.h" #include "hal_product_config.h" #ifndef HAL_CFG_PMU_TYPE #error HAL_CFG_PMU_TYPE undefined !!! Go to "hal_gernerate_product_config_h.sh" settings #endif #if (HAL_CFG_PMU_TYPE == HAL_CFG_PMU_TYPE_MCU) #include "pmu_stm32.h" #elif (HAL_CFG_PMU_TYPE == HAL_CFG_PMU_TYPE_6441) #include "pmu_atbm6441.h" #endif static ST_HAL_PMU_INTERFACE gHalPmuInterface[] = { #if (HAL_CFG_PMU_TYPE == HAL_CFG_PMU_TYPE_MCU) { .pfnInit = stm32_pmu_init, .pfnDeinit = stm32_pmu_deinit, .pfnGetFwVersion = stm32_pmu_get_fw_ver, .pfnSetWifiEnable = stm32_pmu_set_wifi_enable, .pfnGetWifiEnable = stm32_pmu_get_wifi_enable, #if (HAL_CFG_WIFI_TYPE == HAL_CFG_WIFI_TYPE_6441) .pfnRestAP = stm32_pmu_reset_wifi, #else .pfnRestAP = stm32_pmu_reset_ap, #endif .pfnResetWifi = stm32_pmu_reset_wifi, .pfnRestAPOta = stm32_pmu_reset_ap_by_ota, .pfnPowerOffAP = stm32_pmu_poweroff_ap, .pfnSetTime = stm32_pmu_set_time, .pfnGetTime = stm32_pmu_get_time, .pfnSetWakeUpDelay = stm32_pmu_set_wakeup_delay, .pfnSyncMode = stm32_pmu_sync_state, .pfnGetWakeupReason = stm32_pmu_get_wakeup_reason, .pfnSetMcuHeartbeatEnable = stm32_pmu_SetMcuHeartbeatEnable, }, #elif (HAL_CFG_PMU_TYPE == HAL_CFG_PMU_TYPE_6441) { .pfnInit = atbm6441_pmu_init, .pfnDeinit = atbm6441_pmu_deinit, .pfnGetFwVersion = NULL, .pfnSetWifiEnable = NULL, .pfnGetWifiEnable = NULL, .pfnRestAP = atbm6441_pmu_reset_ap, .pfnResetWifi = NULL, .pfnRestAPOta = atbm6441_pmu_reset_ap_by_ota, .pfnPowerOffAP = NULL, .pfnSetTime = NULL, .pfnGetTime = NULL, .pfnSetWakeUpDelay = NULL, .pfnSyncMode = NULL, .pfnGetWakeupReason = atbm6441_pmu_get_wakeup_reason, .pfnSetMcuHeartbeatEnable = NULL, }, #endif }; ST_HAL_PMU_INTERFACE* HAL_PMU_GetInterface(int32_t channel) { #if (HAL_CFG_PMU_TYPE == HAL_TYPE_NONE) return NULL; #else HAL_ITF_INDEX idx = HAL_SELF; if ( channel == HAL_CHANNEL_SELF ) { idx = HAL_SELF; } else { // 需要从NV获取通道号Channel对应的设备类型对应的hal //idx = HAL_REMOTE_SUB1G; return NULL; } return &gHalPmuInterface[idx]; #endif }