Currently device PM API consists of the suspend() and resume() hooks implemented by the drivers. In addition to suspend and resume, devices would also need to be set to other power states e.g. a state in which the peripherals can be clock gated. To achieve this, the following needs to be done.
1. Define new device power states
2. Update the device PM API - create a function that can be used to set the different device PM states.
3. Use this function in place of the suspend/resume hooks in drivers that implement PM support.
The existing device PM API will be replaced by the new API and will be marked as deprecated.