Clock Control¶
Overview¶
The clock control API provides access to clocks in the system, including the ability to turn them on and off.
API Reference¶
- 
group clock_control_interface
- Clock Control Interface. - Defines - 
CLOCK_CONTROL_SUBSYS_ALL¶
 - Typedefs - 
typedef void *clock_control_subsys_t¶
- clock_control_subsys_t is a type to identify a clock controller sub-system. Such data pointed is opaque and relevant only to the clock controller driver instance being used. 
 - 
typedef void (*clock_control_cb_t)(const struct device *dev, clock_control_subsys_t subsys, void *user_data)¶
- Callback called on clock started. - Parameters
- dev – Device structure whose driver controls the clock. 
- subsys – Opaque data representing the clock. 
- user_data – User data. 
 
 
 - 
typedef int (*clock_control)(const struct device *dev, clock_control_subsys_t sys)¶
 - 
typedef int (*clock_control_get)(const struct device *dev, clock_control_subsys_t sys, uint32_t *rate)¶
 - 
typedef int (*clock_control_async_on_fn)(const struct device *dev, clock_control_subsys_t sys, clock_control_cb_t cb, void *user_data)¶
 - 
typedef enum clock_control_status (*clock_control_get_status_fn)(const struct device *dev, clock_control_subsys_t sys)¶
 - Enums - Functions - 
static inline int clock_control_on(const struct device *dev, clock_control_subsys_t sys)¶
- Enable a clock controlled by the device. - On success, the clock is enabled and ready when this function returns. This function may sleep, and thus can only be called from thread context. - Use clock_control_async_on() for non-blocking operation. - Parameters
- dev – Device structure whose driver controls the clock. 
- sys – Opaque data representing the clock. 
 
- Returns
- 0 on success, negative errno on failure. 
 
 - 
static inline int clock_control_off(const struct device *dev, clock_control_subsys_t sys)¶
- Disable a clock controlled by the device. - This function is non-blocking and can be called from any context. On success, the clock is disabled when this function returns. - Parameters
- dev – Device structure whose driver controls the clock 
- sys – Opaque data representing the clock 
 
- Returns
- 0 on success, negative errno on failure. 
 
 - 
static inline int clock_control_async_on(const struct device *dev, clock_control_subsys_t sys, clock_control_cb_t cb, void *user_data)¶
- Request clock to start with notification when clock has been started. - Function is non-blocking and can be called from any context. User callback is called when clock is started. - Parameters
- dev – Device. 
- sys – A pointer to an opaque data representing the sub-system. 
- cb – Callback. 
- user_data – User context passed to the callback. 
 
- Returns
- 0 – if start is successfully initiated. 
- -EALREADY – if clock was already started and is starting or running. 
- -ENOTSUP – If the requested mode of operation is not supported. 
- -ENOSYS – if the interface is not implemented. 
- other – negative errno on vendor specific error. 
 
 
 - 
static inline enum clock_control_status clock_control_get_status(const struct device *dev, clock_control_subsys_t sys)¶
- Get clock status. - Parameters
- dev – Device. 
- sys – A pointer to an opaque data representing the sub-system. 
 
- Returns
- Status. 
 
 - 
static inline int clock_control_get_rate(const struct device *dev, clock_control_subsys_t sys, uint32_t *rate)¶
- Obtain the clock rate of given sub-system. - Parameters
- dev – Pointer to the device structure for the clock controller driver instance 
- sys – A pointer to an opaque data representing the sub-system 
- rate – [out] Subsystem clock rate 
 
 
 - 
struct clock_control_driver_api¶
- #include <clock_control.h>
 
-