2025-10-10 16:07:00 +08:00

62 lines
1.2 KiB
C
Executable File

#include <common/bk_include.h>
#include "arm_arch.h"
#include <common/sys_config.h>
#include "bk_drv_model.h"
#include "bk_pm_model.h"
#include <os/mem.h>
#include <os/str.h>
//#include "bk_mcu_ps.h"
//#include "bk_rf_ps.h"
DRV_PM_S dev_pm_table[PM_ID_MAX] = {
{0},
};
UINT32 dev_pm_init(void)
{
extern void mac_ps_pm_init(void);
extern void rf_ps_pm_init(void);
extern void flash_ps_pm_init(void);
extern void ble_ps_pm_init(void);
os_memset(dev_pm_table, 0, sizeof(dev_pm_table));
#if (!(CONFIG_SOC_BK7256XX && CONFIG_SYS_CPU1))
mac_ps_pm_init();
rf_ps_pm_init();
flash_ps_pm_init();
#endif
#if (!CONFIG_SOC_BK7271) && (!(CONFIG_SOC_BK7256XX && CONFIG_SYS_CPU1))
#if CONFIG_BLUETOOTH
ble_ps_pm_init();
#endif
#endif
return 0;
}
int dev_pm_register(UINT32 id, char *name, DEV_PM_OPS_PTR pmptr)
{
if (id > PM_ID_MAX)
return -1;
dev_pm_table[id].name = name;
dev_pm_table[id].ops = pmptr;
dev_pm_table[id].state = PM_USABLE;
return 0;
}
UINT32 dev_pm_unregister(UINT32 id)
{
if (id > PM_ID_MAX)
return -1;
dev_pm_table[id].name = NULL;
dev_pm_table[id].ops = NULL;
dev_pm_table[id].state = PM_UNUSABLE;
return 0;
}