22#include "platforms/shared/spi_types.h"
118 template<
typename... Spans>
153template<
typename T =
void>
Spi() FL_NO_EXCEPT
Default constructor - creates device in error state.
spi::MultiLaneDevice * get() FL_NO_EXCEPT
Get access to underlying device (for advanced operations)
bool ok() const FL_NO_EXCEPT
Check if device was created and initialized successfully.
WriteResult write(Spans &&... lanes) FL_NO_EXCEPT
Write multiple lanes in parallel (variadic template)
SPIError error() const FL_NO_EXCEPT
Get error code (only meaningful if !ok())
fl::unique_ptr< spi::MultiLaneDevice > device
const spi::MultiLaneDevice * get() const FL_NO_EXCEPT
bool wait(u32 timeout_ms=0xFFFFFFFF) FL_NO_EXCEPT
Wait for async write operation to complete.
SPI Device - RAII wrapper for multi-lane SPI.
Multi-lane SPI device (1-8 independent LED strips)
Handle for asynchronous SPI operations.
SPI Device class for single-channel communication.
Configuration structure for SPI communication.
Lane class for multi-lane SPI devices.
Multi-lane SPI device for 2-8 independent LED strips.
constexpr T && forward(typename remove_reference< T >::type &t) FL_NO_EXCEPT
fl::result< T, SPIError > Result
spi_output_mode_t
SPI output mode for multi-lane devices.
@ SPI_HW
Use DMA-capable hardware (Async or Sync), supports 1/2/4/8 lanes depending on platform.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
spi::Transaction SpiTransaction
@ NOT_INITIALIZED
Object not initialized.
spi::Result< T > SpiResult
Base definition for an LED controller.
Configuration for SPI device (supports 1-8 lanes)
Result of a write operation.
Transaction class for asynchronous SPI operations.
Result type for SPI write operations.