14#ifndef ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_H_
15#define ZEPHYR_INCLUDE_DRIVERS_CLOCK_CONTROL_H_
41#define CLOCK_CONTROL_SUBSYS_ALL NULL
131 return api->
on(dev, sys);
150 return api->
off(dev, sys);
182 return api->
async_on(dev, sys, cb, user_data);
229 return api->
get_rate(dev, sys, rate);
259 return api->
set_rate(dev, sys, rate);
static 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.
Definition clock_control.h:218
static 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.
Definition clock_control.h:170
void * clock_control_subsys_rate_t
clock_control_subsys_rate_t is a type to identify a clock controller sub-system rate.
Definition clock_control.h:66
enum clock_control_status(* clock_control_get_status_fn)(const struct device *dev, clock_control_subsys_t sys)
Definition clock_control.h:90
int(* clock_control_async_on_fn)(const struct device *dev, clock_control_subsys_t sys, clock_control_cb_t cb, void *user_data)
Definition clock_control.h:85
void(* clock_control_cb_t)(const struct device *dev, clock_control_subsys_t subsys, void *user_data)
Callback called on clock started.
Definition clock_control.h:74
int(* clock_control_configure_fn)(const struct device *dev, clock_control_subsys_t sys, void *data)
Definition clock_control.h:98
static enum clock_control_status clock_control_get_status(const struct device *dev, clock_control_subsys_t sys)
Get clock status.
Definition clock_control.h:193
static int clock_control_set_rate(const struct device *dev, clock_control_subsys_t sys, clock_control_subsys_rate_t rate)
Set the rate of the clock controlled by the device.
Definition clock_control.h:248
int(* clock_control_get)(const struct device *dev, clock_control_subsys_t sys, uint32_t *rate)
Definition clock_control.h:81
int(* clock_control)(const struct device *dev, clock_control_subsys_t sys)
Definition clock_control.h:78
int(* clock_control_set)(const struct device *dev, clock_control_subsys_t sys, clock_control_subsys_rate_t rate)
Definition clock_control.h:94
void * clock_control_subsys_t
clock_control_subsys_t is a type to identify a clock controller sub-system.
Definition clock_control.h:58
clock_control_status
Current clock status.
Definition clock_control.h:46
static int clock_control_off(const struct device *dev, clock_control_subsys_t sys)
Disable a clock controlled by the device.
Definition clock_control.h:144
static int clock_control_on(const struct device *dev, clock_control_subsys_t sys)
Enable a clock controlled by the device.
Definition clock_control.h:125
static int clock_control_configure(const struct device *dev, clock_control_subsys_t sys, void *data)
Configure a source clock.
Definition clock_control.h:284
@ CLOCK_CONTROL_STATUS_ON
Definition clock_control.h:49
@ CLOCK_CONTROL_STATUS_OFF
Definition clock_control.h:48
@ CLOCK_CONTROL_STATUS_UNKNOWN
Definition clock_control.h:50
@ CLOCK_CONTROL_STATUS_STARTING
Definition clock_control.h:47
#define ENOSYS
Function not implemented.
Definition errno.h:82
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Definition clock_control.h:102
clock_control_set set_rate
Definition clock_control.h:108
clock_control on
Definition clock_control.h:103
clock_control_get_status_fn get_status
Definition clock_control.h:107
clock_control off
Definition clock_control.h:104
clock_control_async_on_fn async_on
Definition clock_control.h:105
clock_control_get get_rate
Definition clock_control.h:106
clock_control_configure_fn configure
Definition clock_control.h:109
Runtime device structure (in ROM) per driver instance.
Definition device.h:412
void * data
Address of the device instance private data.
Definition device.h:422
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:418