72typedef enum : uint16_t {
89typedef enum : uint32_t {
98typedef enum : uint8_t {
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Minimal FAT12/FAT16/FAT32 filesystem adapter (read + write).
Typed Port / Pin Constants for the RA8D2 IOPORT Module.
ra8_port_pin_t
Packed (port << 8) | pin pin identifier.
ra8_err_t ra8_sdmmc_spi_transport_sci(uint8_t sci_channel, uint32_t pclk_hz, const ra8_sdmmc_spi_sci_pins_t *pins, ra8_sdmmc_spi_transport_t *out)
Build the standard EK-RA8D2 SCI Simple-SPI transport for an SD card.
ra8_sdmmc_spi_limits_t
Block-I/O size constants.
@ k_ra8_sdmmc_spi_block_size
512-byte block (SD spec PHY v9 section 7.2.2).
@ k_ra8_sdmmc_spi_csd_response_len
CMD9 CSD register payload bytes.
@ k_ra8_sdmmc_spi_cmd_frame_bytes
1 cmd-byte + 4 arg-bytes + 1 CRC-byte.
ra8_sdmmc_spi_clock_t
Canonical SPI clock rates used by ra8_sdmmc_spi_init.
@ k_ra8_sdmmc_spi_clock_data_hz
Default-speed data clock.
@ k_ra8_sdmmc_spi_clock_init_hz
Mandatory init clock floor.
uint8_t ra8_sdmmc_spi_crc7(const uint8_t *data, uint32_t len)
Compute the SD-spec CRC7 over an arbitrary byte run.
ra8_err_t(* ra8_sdmmc_spi_xfer_fn_t)(void *ctx, const uint8_t *tx, uint8_t *rx, uint32_t len)
Exchange len bytes full-duplex on the SPI bus.
ra8_err_t ra8_sdmmc_spi_read_blocks(uint32_t lba, uint8_t *buf, uint32_t count)
Read count contiguous 512-byte blocks in one CMD18 transaction.
ra8_err_t ra8_sdmmc_spi_erase_blocks(uint32_t lba, uint32_t count)
Bulk-erase count blocks at lba, guaranteeing a zero read-back.
ra8_err_t ra8_sdmmc_spi_write_block(uint32_t lba, const uint8_t *buf)
Write one 512-byte block at logical block address lba.
ra8_err_t ra8_sdmmc_spi_read_block(uint32_t lba, uint8_t *buf)
Read one 512-byte block at logical block address lba.
ra8_err_t(* ra8_sdmmc_spi_cs_fn_t)(void *ctx, bool asserted)
Drive the chip-select line of the SD card.
ra8_err_t ra8_sdmmc_spi_get_capacity(uint32_t *out_blocks)
Return the card capacity in 512-byte blocks.
ra8_err_t ra8_sdmmc_spi_init(const ra8_sdmmc_spi_transport_t *transport)
Run the SD SPI-mode identification sequence on a card.
ra8_err_t(* ra8_sdmmc_spi_set_clock_fn_t)(void *ctx, uint32_t hz)
Set the SPI clock frequency.
ra8_err_t ra8_sdmmc_spi_write_blocks(uint32_t lba, const uint8_t *buf, uint32_t count)
Write count contiguous 512-byte blocks in one CMD25 transaction.
ra8_err_t ra8_sdmmc_spi_deinit(void)
Tear down the driver and release the transport binding.
ra8_err_t ra8_sdmmc_spi_get_card_type(ra8_sdmmc_spi_card_type_t *out_type)
Return the detected card type.
uint16_t ra8_sdmmc_spi_crc16(const uint8_t *data, uint32_t len)
Compute the SD-spec CRC16-CCITT over an arbitrary byte run.
ra8_sdmmc_spi_card_type_t
Detected SD card capacity / addressing class.
@ k_ra8_sdmmc_spi_type_sdhc
SDHC / SDXC v2.x (block-addressed).
@ k_ra8_sdmmc_spi_type_sdv2
SD v2.x SC (byte-addressed).
@ k_ra8_sdmmc_spi_type_unknown
Not yet probed / probe failed.
@ k_ra8_sdmmc_spi_type_sdv1
SD v1.x (byte-addressed).
ra8_err_t ra8_sdmmc_spi_bind_fs_backend(ra8_fs_backend_t *out_backend)
Populate an ra8_fs_backend_t that mounts onto this SD driver.
Block-device interface that ra8_fs runs on top of.
The four bus pins of an SCI Simple-SPI SD slot.
ra8_port_pin_t copi
Controller-Out / Peripheral-In pin (COPIn).
ra8_port_pin_t sck
SPI clock pin (routed to SCKn).
ra8_port_pin_t cipo
Controller-In / Peripheral-Out pin (CIPOn).
ra8_port_pin_t cs
Chip-select pin, driven as a GPIO output.
Driver-to-bus binding (Dependency Inversion seam).
void * ctx
Caller context.
ra8_sdmmc_spi_set_clock_fn_t set_clock
Set the bus clock.
ra8_sdmmc_spi_xfer_fn_t xfer
Exchange bytes.
ra8_sdmmc_spi_cs_fn_t cs
Drive chip select.