在platform_device_register()中调用device_initialize(),
在device_initialize()中调用device_pm_init(),
device_pm_init() 在drivers/base/power/main.c里, 详细如下:
/**
* device_pm_init - Initialize the PM-related part of a device object.
* @dev: Device object being initialized.
*/
void device_pm_init(struct device *dev) // 此函数初始化device的power域
{
dev->power.is_prepared = false;
dev->power.is_suspended = false;
init_completion(&dev->power.completion);
complete_all(&dev->power.completion);
dev->power.wakeup = NULL;
spin_lock_init(&dev->power.lock);
pm_runtime_init