Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
regmap.h File Reference

Helpers for reading and writing device register lists through RTIO. More...

#include <zephyr/rtio/rtio.h>

Go to the source code of this file.

Data Structures

struct  rtio_regs
 A structure to describe a list of not-consecutive memory chunks for RTIO operations. More...
struct  rtio_regs::rtio_regs_list
 Description of a single memory chunk. More...

Enumerations

enum  rtio_bus_type { RTIO_BUS_I2C , RTIO_BUS_SPI , RTIO_BUS_I3C }
 bus type More...

Functions

static bool rtio_is_spi (rtio_bus_type bus_type)
 check if bus is SPI
static bool rtio_is_i2c (rtio_bus_type bus_type)
 check if bus is I2C
static bool rtio_is_i3c (rtio_bus_type bus_type)
 check if bus is I3C
static void rtio_read_regs_async (struct rtio *r, struct rtio_iodev *iodev, rtio_bus_type bus_type, struct rtio_regs *regs, struct rtio_iodev_sqe *iodev_sqe, const struct device *dev, rtio_callback_t complete_op_cb)
 Create a chain of SQEs representing a bus transaction to read a reg.

Detailed Description

Helpers for reading and writing device register lists through RTIO.

Enumeration Type Documentation

◆ rtio_bus_type

bus type

RTIO works on top of a RTIO enabled bus, Some RTIO ops require a bus-related handling (e.g. rtio_read_regs_async)

Enumerator
RTIO_BUS_I2C 

I2C bus.

RTIO_BUS_SPI 

SPI bus.

RTIO_BUS_I3C 

I3C bus.

Function Documentation

◆ rtio_is_i2c()

bool rtio_is_i2c ( rtio_bus_type bus_type)
inlinestatic

check if bus is I2C

Parameters
bus_typeType of bus (I2C, SPI, I3C)
Returns
true if bus type is I2C

◆ rtio_is_i3c()

bool rtio_is_i3c ( rtio_bus_type bus_type)
inlinestatic

check if bus is I3C

Parameters
bus_typeType of bus (I2C, SPI, I3C)
Returns
true if bus type is I3C

◆ rtio_is_spi()

bool rtio_is_spi ( rtio_bus_type bus_type)
inlinestatic

check if bus is SPI

Parameters
bus_typeType of bus (I2C, SPI, I3C)
Returns
true if bus type is SPI

◆ rtio_read_regs_async()

void rtio_read_regs_async ( struct rtio * r,
struct rtio_iodev * iodev,
rtio_bus_type bus_type,
struct rtio_regs * regs,
struct rtio_iodev_sqe * iodev_sqe,
const struct device * dev,
rtio_callback_t complete_op_cb )
inlinestatic

Create a chain of SQEs representing a bus transaction to read a reg.

The RTIO-enabled bus driver is instrumented to perform bus read ops for each register in the list.

Usage:

struct rtio_regs regs;
struct rtio_reg_list regs_list[] = {{regs_addr1, mem_addr_1, mem_len_1},
{regs_addr2, mem_addr_2, mem_len_2},
...
};
regs.rtio_regs_list = regs_list;
regs.rtio_regs_num = ARRAY_SIZE(regs_list);
iodev,
&regs,
sqe,
dev,
op_cb);
#define ARRAY_SIZE(array)
Number of elements in the given array.
Definition util.h:118
static void rtio_read_regs_async(struct rtio *r, struct rtio_iodev *iodev, rtio_bus_type bus_type, struct rtio_regs *regs, struct rtio_iodev_sqe *iodev_sqe, const struct device *dev, rtio_callback_t complete_op_cb)
Create a chain of SQEs representing a bus transaction to read a reg.
Definition regmap.h:119
@ RTIO_BUS_SPI
SPI bus.
Definition regmap.h:51
A structure to describe a list of not-consecutive memory chunks for RTIO operations.
Definition regmap.h:26
struct rtio_regs::rtio_regs_list * rtio_regs_list
Array of rtio_regs_num memory chunks.
An RTIO context containing what can be viewed as a pair of queues.
Definition rtio.h:71
Parameters
rRTIO context
iodevIO device
bus_typeType of bus (I2C, SPI, I3C)
regspointer to list of registers to be read. Raise proper bit in case of SPI bus
iodev_sqeIODEV submission for the await op
devpointer to the device structure
complete_op_cbcallback routine at the end of op