ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_io_spi_bus.h
Go to the documentation of this file.
1
53
54#pragma once
55
56#ifdef __cplusplus
57extern "C" {
58#endif
59
60#include <stdint.h>
61
62#include "ra8_err.h"
63#include "ra8_spi.h"
64#include "ra8_spi_bus_ops.h"
65
66/* =============================================================================
67 * Interface + handle
68 * =============================================================================
69 */
70
84
100typedef struct {
102 void* ctx;
104
105/* =============================================================================
106 * Public API
107 * =============================================================================
108 */
109
140[[nodiscard]] ra8_err_t ra8_io_spi_bus_xfer8(const ra8_io_spi_bus_t* bus, uint8_t tx, uint8_t* rx);
141
180 const void* tx,
181 void* rx,
182 uint32_t len,
183 ra8_spi_bit_width_t width);
184
212[[nodiscard]] ra8_err_t
213ra8_io_spi_bus_set_clock(const ra8_io_spi_bus_t* bus, uint32_t baud_hz, uint32_t pclk_hz);
214
247
248#ifdef __cplusplus
249}
250#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
ra8_err_t ra8_io_spi_bus_xfer8(const ra8_io_spi_bus_t *bus, uint8_t tx, uint8_t *rx)
Full-duplex single-byte exchange on the bound bus.
ra8_err_t ra8_io_spi_bus_write_read(const ra8_io_spi_bus_t *bus, const void *tx, void *rx, uint32_t len, ra8_spi_bit_width_t width)
Full-duplex multi-frame transfer on the bound bus.
ra8_err_t ra8_io_spi_bus_set_clock(const ra8_io_spi_bus_t *bus, uint32_t baud_hz, uint32_t pclk_hz)
Re-program the bound bus bit-rate without reconfiguring.
struct ra8_io_spi_bus_iface ra8_io_spi_bus_iface_t
ra8_err_t ra8_io_spi_bus_as_ops(const ra8_io_spi_bus_t *bus, ra8_spi_bus_ops_t *out)
Expose a bound bus through the Ring-3 seam ra8_spi_bus_ops_t.
SPI_B controller driver (RA8D2 Type-B SPI peripheral).
ra8_spi_bit_width_t
Per-frame bit width for multi-byte transfers.
Definition ra8_spi.h:84
Injected SPI-bus seam consumed by Ring-3 SPI device drivers.
Opaque to applications – backends implement this internally and export a binding helper through their...
Caller-allocated SPI-bus handle binding a backend to its context.
void * ctx
Backend-private context (private).
const ra8_io_spi_bus_iface_t * iface
Bound backend vtable (private).
Caller-filled SPI transfer seam: one full-duplex byte exchange.