10#include "platforms/is_platform.h"
14#pragma push_macro("UART")
15#pragma push_macro("SPI")
16#pragma push_macro("I2S")
41#if defined(FL_IS_STUB) || defined(FL_IS_WASM)
51#elif defined(FL_IS_ESP32)
53#if defined(FL_IS_ESP_32P4) || defined(FL_IS_ESP_32C6) || \
54 defined(FL_IS_ESP_32H2) || defined(FL_IS_ESP_32C5)
55template<>
struct DefaultBus<ClocklessChipset> {
64#if defined(FL_IS_ESP_32S3) || defined(FL_IS_ESP_32DEV) || \
65 defined(FL_IS_ESP_32P4) || defined(FL_IS_ESP_32C6) || \
66 defined(FL_IS_ESP_32H2) || defined(FL_IS_ESP_32C5)
76#elif defined(FL_IS_TEENSY_4X)
86#elif defined(FL_IS_ARM_LPC)
93#if defined(FL_IS_ARM_LPC_845) && FASTLED_LPC_UART_DMA
104#if defined(FL_IS_ARM_LPC_845) || defined(FL_IS_ARM_LPC_804)
110#elif defined(FL_IS_RP2040) || defined(FL_IS_RP2350)
116#elif defined(FL_IS_ESP8266)
138#if defined(FL_IS_TEENSY_4X)
140template<>
struct BusInstanceCount<
Bus::
SPI> {
static constexpr fl::u8 value = 4; };
142#elif defined(FL_IS_ESP_32S3)
146#elif defined(FL_IS_ESP_32C6)
150#elif defined(FL_IS_ESP_32DEV)
157#elif defined(FL_IS_ARM_LPC_845)
159#elif defined(FL_IS_RP2350)
163#elif defined(FL_IS_RP2040)
189#if defined(FL_IS_TEENSY_4X)
191 return which == 0 ?
"OBJECT_FLED" :
"FLEX_IO";
192#elif defined(FL_IS_ESP8266)
198#elif defined(FL_IS_RP2040) || defined(FL_IS_RP2350)
200 if (which == 0)
return "PIO0";
201 if (which == 1)
return "PIO1";
202 #if defined(FL_IS_RP2350)
203 if (which == 2)
return "PIO2";
205 return "FLEX_IO_UNAVAILABLE";
206#elif defined(FL_IS_ESP32)
207#if FASTLED_HAS_PARLIO
211#elif FASTLED_HAS_LCD_SPI || FASTLED_HAS_LCD_CAM_CLOCKLESS
213 return spi ?
"LCD_SPI" :
"LCD_CLOCKLESS";
214#elif FASTLED_HAS_I2S_SPI || FASTLED_HAS_I2S_LED
216 return spi ?
"I2S_SPI" :
"I2S";
236#if defined(FL_IS_RP2040) || defined(FL_IS_RP2350)
238 return which == 0 ?
"SPI0" :
"SPI1";
245#if defined(FL_IS_RP2040) || defined(FL_IS_RP2350)
246 return which == 0 ?
"UART0" :
"UART1";
247#elif defined(FL_IS_TEENSY_4X)
259 "Bus changed: update busName() and busDriverName()");
263#pragma pop_macro("I2S")
264#pragma pop_macro("SPI")
265#pragma pop_macro("UART")
Zero-filled feature macros for portable bus selection.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
constexpr int type_rank< T >::value
const char * busName(Bus b, fl::u8 which=0) FL_NO_EXCEPT
const char * busDriverName(Bus b, fl::u8 which=0, bool spi=false) FL_NO_EXCEPT
Concrete ChannelManager driver name for a portable bus.
Bus
Portable public bus selector.
Base definition for an LED controller.
#define FL_STATIC_ASSERT(...)
Portable compile-time assertion wrapper.
static constexpr fl::u8 value
Clockless chipset configuration (single data pin)
SPI chipset configuration (data + clock pins)