ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_io_i2c_bus.h
Go to the documentation of this file.
1
55
56#pragma once
57
58#ifdef __cplusplus
59extern "C" {
60#endif
61
62#include <stdint.h>
63
64#include "ra8_err.h"
65#include "ra8_i2c_bus_ops.h"
66
67/* =============================================================================
68 * Interface + handle
69 * =============================================================================
70 */
71
85
101typedef struct {
103 void* ctx;
105
106/* =============================================================================
107 * Public API
108 * =============================================================================
109 */
110
145[[nodiscard]] ra8_err_t ra8_io_i2c_bus_write(const ra8_io_i2c_bus_t* bus,
146 uint8_t addr,
147 const uint8_t* data,
148 uint32_t len,
149 bool send_stop);
150
183[[nodiscard]] ra8_err_t
184ra8_io_i2c_bus_read(const ra8_io_i2c_bus_t* bus, uint8_t addr, uint8_t* data, uint32_t len);
185
220[[nodiscard]] ra8_err_t ra8_io_i2c_bus_transfer(const ra8_io_i2c_bus_t* bus,
221 uint8_t addr,
222 const uint8_t* wr,
223 uint32_t wr_len,
224 uint8_t* rd,
225 uint32_t rd_len);
226
259
260#ifdef __cplusplus
261}
262#endif
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Injected I2C-bus seam consumed by Ring-3 I2C device drivers.
ra8_err_t ra8_io_i2c_bus_as_ops(const ra8_io_i2c_bus_t *bus, ra8_i2c_bus_ops_t *out)
Expose a bound bus through the Ring-3 seam ra8_i2c_bus_ops_t.
struct ra8_io_i2c_bus_iface ra8_io_i2c_bus_iface_t
ra8_err_t ra8_io_i2c_bus_write(const ra8_io_i2c_bus_t *bus, uint8_t addr, const uint8_t *data, uint32_t len, bool send_stop)
Controller write of len bytes to 7-bit address addr.
ra8_err_t ra8_io_i2c_bus_read(const ra8_io_i2c_bus_t *bus, uint8_t addr, uint8_t *data, uint32_t len)
Controller read of len bytes from 7-bit address addr.
ra8_err_t ra8_io_i2c_bus_transfer(const ra8_io_i2c_bus_t *bus, uint8_t addr, const uint8_t *wr, uint32_t wr_len, uint8_t *rd, uint32_t rd_len)
Combined write-then-RESTART-then-read in one bus transaction.
Caller-filled I2C controller-transfer seam (write / read / write-then-read).
Opaque to applications – backends implement this internally and export a binding helper through their...
Caller-allocated I2C-bus handle binding a backend to its context.
const ra8_io_i2c_bus_iface_t * iface
Bound backend vtable (private).
void * ctx
Backend-private context (private).