Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
3.7.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
device.h File Reference

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.