[components][pm]add pm ops support

This commit is contained in:
EvalZero 2019-06-11 11:33:21 +08:00
parent 6c63ccf982
commit 0008256663
1 changed files with 18 additions and 2 deletions

View File

@ -45,8 +45,8 @@ static int _pm_device_suspend(uint8_t mode)
if (_pm.device_pm[index].ops->suspend != RT_NULL)
{
ret = _pm.device_pm[index].ops->suspend(_pm.device_pm[index].device, mode);
if(ret != RT_EOK)
break;
if (ret != RT_EOK)
break;
}
}
@ -458,6 +458,18 @@ int rt_pm_run_enter(uint8_t mode)
return RT_EOK;
}
#ifdef RT_USING_DEVICE_OPS
const static struct rt_device_ops pm_ops =
{
RT_NULL,
RT_NULL,
RT_NULL,
_rt_pm_device_read,
_rt_pm_device_write,
_rt_pm_device_control,
};
#endif
/**
* This function will initialize power management.
*
@ -479,12 +491,16 @@ void rt_system_pm_init(const struct rt_pm_ops *ops,
device->rx_indicate = RT_NULL;
device->tx_complete = RT_NULL;
#ifdef RT_USING_DEVICE_OPS
device->ops = &pm_ops;
#else
device->init = RT_NULL;
device->open = RT_NULL;
device->close = RT_NULL;
device->read = _rt_pm_device_read;
device->write = _rt_pm_device_write;
device->control = _rt_pm_device_control;
#endif
device->user_data = user_data;
/* register PM device to the system */