ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_io_spi_bus_spi_b.h File Reference

SPI_B backend binder for the ra8_io SPI-bus facade. More...

#include <stdint.h>
#include "ra8_err.h"
#include "ra8_io_spi_bus.h"
Include dependency graph for ra8_io_spi_bus_spi_b.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

ra8_err_t ra8_io_spi_bus_bind_spi_b (ra8_io_spi_bus_t *bus, uint8_t channel)
 Bind bus to SPI_B channel channel.

Detailed Description

SPI_B backend binder for the ra8_io SPI-bus facade.

Tag
[Ring 4 / PAL] {World: NS}

Binds a caller-owned ra8_io_spi_bus_t to the dedicated SPI_B block via thin trampolines to ra8_spi_xfer8 / ra8_spi_write_read / ra8_spi_set_clock (ra8_spi.h, unmodified). The channel must already be initialised through ra8_spi_init – the facade owns transfers only, never bring-up, so the caller keeps full control of mode, bit-rate, and chip-select routing.

Since
0.1.0

Definition in file ra8_io_spi_bus_spi_b.h.

Function Documentation

◆ ra8_io_spi_bus_bind_spi_b()

ra8_err_t ra8_io_spi_bus_bind_spi_b ( ra8_io_spi_bus_t * bus,
uint8_t channel )
nodiscard

Bind bus to SPI_B channel channel.

Installs the SPI_B trampoline vtable and records the channel in the handle context. No hardware is touched: initialise the channel with ra8_spi_init(channel, ...) (before or after binding) and route the pins yourself.

Parameters
[in,out]busCaller-owned handle to bind (non-NULL).
[in]channelSPI_B channel index (0 or 1).
Returns
ra8_err_t Error code.
Return values
k_ra8_okbus now dispatches to ra8_spi_*.
k_ra8_err_null_ptrbus was NULL.
k_ra8_err_invalid_argchannel is out of range.
Precondition
bus points to writable storage.
channel < 2 (the RA8D2 has SPI0 and SPI1).
Postcondition
On success bus->iface is non-NULL and every ra8_io_spi_bus_* call forwards to SPI_B channel channel.
On failure bus is left unmodified.
Note
Thread-safe (writes only the caller's handle).
See also
ra8_io_spi_bus_bind_sci_spi The SCI Simple-SPI twin.
Since
0.1.0

Definition at line 143 of file ra8_io_spi_bus_spi_b.c.

References ra8_io_spi_bus_t::ctx, ra8_io_spi_bus_t::iface, k_ra8_err_invalid_arg, k_ra8_ok, k_ra8_spi_b_channel_count, RA8_CHECK_NULL_PTR, s_spi_b_iface, and s_tag.

Referenced by ep_bringup_panel_bus().