18#include "platforms/is_platform.h"
29#pragma push_macro("UART")
30#pragma push_macro("SPI")
31#pragma push_macro("I2S")
97#if defined(FL_IS_STUB) || defined(FL_IS_WASM)
107#elif defined(FL_IS_ESP32)
112#if defined(FL_IS_ESP_32P4) || defined(FL_IS_ESP_32C6) || \
113 defined(FL_IS_ESP_32H2) || defined(FL_IS_ESP_32C5)
114template<>
struct DefaultBus<ClocklessChipset> {
127#if defined(FL_IS_ESP_32S3)
131#elif defined(FL_IS_ESP_32DEV)
137#elif defined(FL_IS_TEENSY_4X)
192 "Bus changed: add the new value to busName() in this file");
198#pragma pop_macro("I2S")
199#pragma pop_macro("SPI")
200#pragma pop_macro("UART")
constexpr int type_rank< T >::value
const char * busName(Bus b) FL_NOEXCEPT
Canonical driver-name string for a Bus value.
Bus
Driver identifier for compile-time bus selection.
@ LPUART
Teensy 4.x iMXRT1062 LPUART (inverted-TX + eDMA) clockless driver.
@ FLEX_IO
Teensy 4.x FlexIO2 driver.
@ I2S_SPI
Original ESP32 native I2S parallel SPI (true SPI chipsets).
@ SPI
Generic SPI clockless driver.
@ PARLIO
ESP32-P4/C6/H2/C5 parallel I/O peripheral.
@ OBJECT_FLED
Teensy 4.x ObjectFLED driver.
@ LCD_RGB
ESP32-P4 LCD RGB peripheral (parallel clockless).
@ LCD_CLOCKLESS
ESP32-S3 LCD_CAM clockless driver (replaces misnamed I2S).
@ I2S
ESP32-S3 LCD_CAM via legacy I80 bus (clockless).
@ BIT_BANG
Portable bit-bang fallback driver.
@ LCD_SPI
ESP32-S3 LCD_CAM SPI driver (true SPI chipsets).
@ RMT
ESP32 RMT peripheral (all ESP32 variants).
@ UART
ESP32 UART driver via wave8 framing.
@ AUTO
Sentinel: defer to DefaultBus<Chipset>::value.
@ STUB
Native/host/test stub driver.
Base definition for an LED controller.
Per-platform default bus for a given chipset family.
#define FL_STATIC_ASSERT(...)
Portable compile-time assertion wrapper.
Clockless chipset configuration (single data pin)
SPI chipset configuration (data + clock pins)