Logical device drivers in conjunction with processor component implement low power features of a target microcontroller. Each LDD component define two methods related to the low power capability - SetOperationMode() and GetDriverState(). For more details, refer to the documentation of components.
In the example above, DPM (Dynamic Power Manager) task may opt to care for a selected number of peripherals for graceful power mode change (for example, FEC, CAN) and rest of the peripheral drivers need not know the power mode change. When opted for informing a peripheral device driver, the DPM can build a semaphore object for low power acknowledgement from the device drivers. When all such acknowledgements arrive (ie. Semaphore count equals zero) the processor can be placed into a wait/sleep power mode. In the future, with silicon design modifications, these semaphores can be implemented in the hardware and as a result a much faster power mode change can be expected. There is no DPM in typical bare-metal applications the DPM task is implemented. In this case, DPM is substituted by a user application code.