13#ifndef ZEPHYR_INCLUDE_DRIVERS_SYSCON_H_
14#define ZEPHYR_INCLUDE_DRIVERS_SYSCON_H_
99static inline int z_impl_syscon_get_base(
const struct device *dev,
uintptr_t *addr)
133 return api->
read(dev, reg, val);
159 return api->
write(dev, reg, val);
187static inline int z_impl_syscon_update_bits(
const struct device *dev,
uint32_t reg,
210static inline int z_impl_syscon_get_size(
const struct device *dev,
size_t *size)
229#include <zephyr/syscalls/syscon.h>
#define DEVICE_API_GET(_class, _dev)
Expands to the pointer of a device's API for a given class.
Definition device.h:1425
int syscon_get_base(const struct device *dev, uintptr_t *addr)
Get the syscon base address.
int syscon_get_size(const struct device *dev, size_t *size)
Get the size of the syscon register in bytes.
int syscon_update_bits(const struct device *dev, uint32_t reg, uint32_t mask, uint32_t val)
Atomically update bits in a syscon register.
int(* syscon_api_get_base)(const struct device *dev, uintptr_t *addr)
@def_driverbackendgroup{SYSCON, syscon_interface}
Definition syscon.h:43
int(* syscon_api_read_reg)(const struct device *dev, uint32_t reg, uint32_t *val)
Read a single register.
Definition syscon.h:49
int(* syscon_api_write_reg)(const struct device *dev, uint32_t reg, uint32_t val)
Write a single register.
Definition syscon.h:55
int syscon_write_reg(const struct device *dev, uint32_t reg, uint32_t val)
Write to syscon register.
int syscon_read_reg(const struct device *dev, uint32_t reg, uint32_t *val)
Read from syscon register.
int(* syscon_api_update_bits)(const struct device *dev, uint32_t reg, uint32_t mask, uint32_t val)
Atomically update bits in a register.
Definition syscon.h:61
int(* syscon_api_get_size)(const struct device *dev, size_t *size)
Get the size of the syscon register region.
Definition syscon.h:68
#define ENOSYS
Function not implemented.
Definition errno.h:82
#define NULL
Definition iar_missing_defs.h:20
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINTPTR_TYPE__ uintptr_t
Definition stdint.h:105
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
const void * api
Address of the API structure exposed by the device instance.
Definition device.h:519
@driver_ops{SYSCON}
Definition syscon.h:73
syscon_api_get_base get_base
@driver_ops_optional Get the syscon base address.
Definition syscon.h:81
syscon_api_read_reg read
@driver_ops_optional Read from syscon register.
Definition syscon.h:75
syscon_api_get_size get_size
@driver_ops_optional Get the size of the syscon register in bytes.
Definition syscon.h:83
syscon_api_update_bits update_bits
@driver_ops_optional Atomically update bits in a syscon register.
Definition syscon.h:79
syscon_api_write_reg write
@driver_ops_optional Write to syscon register.
Definition syscon.h:77