13#include "platforms/shared/spi_types.h"
130 void configureLUT(const u32* set_masks, const u32* clear_masks);
bool isReady() const
Check if device is initialized.
const Config & getConfig() const
Get current configuration.
Result< Transaction > write(const u8 *data, size_t size)
Write data (single stream drives all pins via LUT)
bool waitComplete(u32 timeout_ms=(fl::numeric_limits< u32 >::max)())
Wait for pending transmission to complete.
void configureLUT(const u32 *set_masks, const u32 *clear_masks)
Configure custom LUT (advanced)
bool isBusy() const
Check if transmission is in progress.
ParallelDevice(const Config &config)
Construct parallel device.
void end()
Shutdown hardware and release resources.
fl::optional< fl::task::Error > begin()
Initialize hardware and setup LUT.
fl::unique_ptr< Impl > pImpl
Handle for asynchronous SPI operations.
fl::result< T, SPIError > Result
constexpr common_type_t< T, U > max(T a, U b) FL_NOEXCEPT
SpiParallelMode
Parallel device execution modes.
Base definition for an LED controller.
Promise-based fluent API for FastLED - standalone async primitives.
u32 timer_hz
Timer frequency for ISR mode.
fl::vector< u8 > gpio_pins
GPIO pins (1-32 pins)
SpiParallelMode mode
Execution mode (ISR vs bit-bang)
u8 clock_pin
Clock pin (SCK)
Configuration for parallel GPIO SPI.
Transaction class for asynchronous SPI operations.