Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.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
 Device PM info. More...
 

Macros

#define PM_DEVICE_DEFINE(dev_id, pm_action_cb)    Z_PM_DEVICE_DEFINE(DT_INVALID_NODE, 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.
 
void pm_device_state_lock (const struct device *dev)
 Lock current device state.
 
void pm_device_state_unlock (const struct device *dev)
 Unlock the current device state.
 
bool pm_device_state_is_locked (const struct device *dev)
 Check if the device pm is locked.
 
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.