Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
#include <zephyr/device.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/atomic.h>
#include <zephyr/sys/iterable_sections.h>
Go to the source code of this file.
Data Structures | |
struct | pm_device_base |
Device PM info. More... | |
struct | pm_device |
Runtime PM info for device with generic PM. More... | |
struct | pm_device_isr |
Runtime PM info for device with synchronous PM. More... | |
Macros | |
#define | PM_DEVICE_ISR_SAFE 1 |
Flag indicating that runtime PM API for the device can be called from any context. | |
#define | PM_DEVICE_DEFINE(dev_id, pm_action_cb, ...) |
Define device PM resources for the given device name. | |
#define | PM_DEVICE_DT_DEFINE(node_id, pm_action_cb, ...) |
Define device PM resources for the given node identifier. | |
#define | PM_DEVICE_DT_INST_DEFINE(idx, pm_action_cb, ...) |
Define device PM resources for the given instance. | |
#define | PM_DEVICE_GET(dev_id) Z_PM_DEVICE_GET(dev_id) |
Obtain a reference to the device PM resources for the given device. | |
#define | PM_DEVICE_DT_GET(node_id) PM_DEVICE_GET(Z_DEVICE_DT_DEV_ID(node_id)) |
Obtain a reference to the device PM resources for the given node. | |
#define | PM_DEVICE_DT_INST_GET(idx) PM_DEVICE_DT_GET(DT_DRV_INST(idx)) |
Obtain a reference to the device PM resources for the given instance. | |
Typedefs | |
typedef int(* | pm_device_action_cb_t) (const struct device *dev, enum pm_device_action action) |
Device PM action callback. | |
typedef bool(* | pm_device_action_failed_cb_t) (const struct device *dev, int err) |
Device PM action failed callback. | |
Enumerations | |
enum | pm_device_state { PM_DEVICE_STATE_ACTIVE , PM_DEVICE_STATE_SUSPENDED , PM_DEVICE_STATE_SUSPENDING , PM_DEVICE_STATE_OFF } |
Device power states. More... | |
enum | pm_device_action { PM_DEVICE_ACTION_SUSPEND , PM_DEVICE_ACTION_RESUME , PM_DEVICE_ACTION_TURN_OFF , PM_DEVICE_ACTION_TURN_ON } |
Device PM actions. More... | |
Functions | |
const char * | pm_device_state_str (enum pm_device_state state) |
Get name of device PM state. | |
int | pm_device_action_run (const struct device *dev, enum pm_device_action action) |
Run a pm action on a device. | |
void | pm_device_children_action_run (const struct device *dev, enum pm_device_action action, pm_device_action_failed_cb_t failure_cb) |
Run a pm action on all children of a device. | |
int | pm_device_state_get (const struct device *dev, enum pm_device_state *state) |
Obtain the power state of a device. | |
static void | pm_device_init_suspended (const struct device *dev) |
Initialize a device state to PM_DEVICE_STATE_SUSPENDED. | |
static void | pm_device_init_off (const struct device *dev) |
Initialize a device state to PM_DEVICE_STATE_OFF. | |
void | pm_device_busy_set (const struct device *dev) |
Mark a device as busy. | |
void | pm_device_busy_clear (const struct device *dev) |
Clear a device busy status. | |
bool | pm_device_is_any_busy (void) |
Check if any device is busy. | |
bool | pm_device_is_busy (const struct device *dev) |
Check if a device is busy. | |
bool | pm_device_wakeup_enable (const struct device *dev, bool enable) |
Enable or disable a device as a wake up source. | |
bool | pm_device_wakeup_is_enabled (const struct device *dev) |
Check if a device is enabled as a wake up source. | |
bool | pm_device_wakeup_is_capable (const struct device *dev) |
Check if a device is wake up capable. | |
bool | pm_device_on_power_domain (const struct device *dev) |
Check if the device is on a switchable power domain. | |
int | pm_device_power_domain_add (const struct device *dev, const struct device *domain) |
Add a device to a power domain. | |
int | pm_device_power_domain_remove (const struct device *dev, const struct device *domain) |
Remove a device from a power domain. | |
bool | pm_device_is_powered (const struct device *dev) |
Check if the device is currently powered. | |
int | pm_device_driver_init (const struct device *dev, pm_device_action_cb_t action_cb) |
Setup a device driver into the lowest valid power mode. | |