Zephyr API Documentation  3.0.0
A Scalable Open Source RTOS
3.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
device.h File Reference
#include <device.h>
#include <kernel.h>
#include <sys/atomic.h>

Go to the source code of this file.

Macros

#define PM_DEVICE_DEFINE(dev_name, pm_action_cb)    Z_PM_DEVICE_DEFINE(DT_INVALID_NODE, dev_name, pm_action_cb)
 
#define PM_DEVICE_DT_DEFINE(node_id, pm_action_cb)
 
#define PM_DEVICE_DT_INST_DEFINE(idx, pm_action_cb)
 
#define PM_DEVICE_GET(dev_name)    Z_PM_DEVICE_GET(dev_name)
 Obtain a reference to the device PM resources for the given device. More...
 
#define PM_DEVICE_DT_GET(node_id)    PM_DEVICE_GET(Z_DEVICE_DT_DEV_NAME(node_id))
 Obtain a reference to the device PM resources for the given node. More...
 
#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. More...
 

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 ,
  PM_DEVICE_ACTION_FORCE_SUSPEND
}
 Device PM actions. More...
 

Functions

const char * pm_device_state_str (enum pm_device_state state)
 Get name of device PM state. More...
 
int pm_device_state_set (const struct device *dev, enum pm_device_state state)
 Set the power state of a device. More...
 
int pm_device_state_get (const struct device *dev, enum pm_device_state *state)
 Obtain the power state of a device. More...
 
int pm_device_action_run (const struct device *dev, enum pm_device_action action)
 Run a pm action on a device. More...
 
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. More...
 
void pm_device_busy_set (const struct device *dev)
 Mark a device as busy. More...
 
void pm_device_busy_clear (const struct device *dev)
 Clear a device busy status. More...
 
bool pm_device_is_any_busy (void)
 Check if any device is busy. More...
 
bool pm_device_is_busy (const struct device *dev)
 Check if a device is busy. More...
 
bool pm_device_wakeup_enable (struct device *dev, bool enable)
 Enable or disable a device as a wake up source. More...
 
bool pm_device_wakeup_is_enabled (const struct device *dev)
 Check if a device is enabled as a wake up source. More...
 
bool pm_device_wakeup_is_capable (const struct device *dev)
 Check if a device is wake up capable. More...
 
void pm_device_state_lock (const struct device *dev)
 Lock current device state. More...
 
void pm_device_state_unlock (const struct device *dev)
 Unlock the current device state. More...
 
bool pm_device_state_is_locked (const struct device *dev)
 Check if the device pm is locked. More...
 
bool pm_device_on_power_domain (const struct device *dev)
 Check if the device is on a switchable power domain. More...
 
static void device_busy_set (const struct device *dev)
 
static void device_busy_clear (const struct device *dev)
 Clear busy status of a device. More...
 
static int device_any_busy_check (void)
 Check if any device is busy. More...
 
static int device_busy_check (const struct device *dev)
 Check if a device is busy. More...