Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
device_runtime.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2015 Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_PM_DEVICE_RUNTIME_H_
8#define ZEPHYR_INCLUDE_PM_DEVICE_RUNTIME_H_
9
10#include <device.h>
11#include <kernel.h>
12#include <sys/atomic.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
26#ifdef CONFIG_PM_DEVICE_RUNTIME
27
40void pm_device_enable(const struct device *dev);
41
53void pm_device_disable(const struct device *dev);
54
71int pm_device_get_async(const struct device *dev);
72
86int pm_device_get(const struct device *dev);
87
104int pm_device_put_async(const struct device *dev);
105
119int pm_device_put(const struct device *dev);
120
135int pm_device_wait(const struct device *dev, k_timeout_t timeout);
136
137#else
138static inline void pm_device_enable(const struct device *dev) { }
139static inline void pm_device_disable(const struct device *dev) { }
140static inline int pm_device_get(const struct device *dev) { return -ENOSYS; }
141static inline int pm_device_get_async(const struct device *dev) { return -ENOSYS; }
142static inline int pm_device_put(const struct device *dev) { return -ENOSYS; }
143static inline int pm_device_put_async(const struct device *dev) { return -ENOSYS; }
144static inline int pm_device_wait(const struct device *dev,
145 k_timeout_t timeout) { return -ENOSYS; }
146#endif
147
150#endif /* ZEPHYR_INCLUDE_PM_DEVICE_RUNTIME_H_ */
ZTEST_BMEM int timeout
Definition: main.c:31
static int pm_device_wait(const struct device *dev, k_timeout_t timeout)
Definition: device_runtime.h:144
static int pm_device_put(const struct device *dev)
Definition: device_runtime.h:142
static int pm_device_get_async(const struct device *dev)
Definition: device_runtime.h:141
static int pm_device_put_async(const struct device *dev)
Definition: device_runtime.h:143
static int pm_device_get(const struct device *dev)
Definition: device_runtime.h:140
static void pm_device_disable(const struct device *dev)
Definition: device_runtime.h:139
static void pm_device_enable(const struct device *dev)
Definition: device_runtime.h:138
#define ENOSYS
Definition: errno.h:83
Runtime device structure (in ROM) per driver instance.
Definition: device.h:367
Kernel timeout type.
Definition: sys_clock.h:65