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)
122#if defined(FL_IS_TEENSY_4X)
124template<>
struct BusInstanceCount<
Bus::
SPI> {
static constexpr fl::u8 value = 4; };
126#elif defined(FL_IS_ESP_32S3)
130#elif defined(FL_IS_ESP_32C6)
134#elif defined(FL_IS_ESP_32DEV)
141#elif defined(FL_IS_ARM_LPC_845)
143#elif defined(FL_IS_RP2350)
147#elif defined(FL_IS_RP2040)
173#if defined(FL_IS_TEENSY_4X)
175 return which == 0 ?
"OBJECT_FLED" :
"FLEX_IO";
176#elif defined(FL_IS_RP2040) || defined(FL_IS_RP2350)
178 if (which == 0)
return "PIO0";
179 if (which == 1)
return "PIO1";
180 #if defined(FL_IS_RP2350)
181 if (which == 2)
return "PIO2";
183 return "FLEX_IO_UNAVAILABLE";
184#elif defined(FL_IS_ESP32)
185#if FASTLED_HAS_PARLIO
189#elif FASTLED_HAS_LCD_SPI || FASTLED_HAS_LCD_CAM_CLOCKLESS
191 return spi ?
"LCD_SPI" :
"LCD_CLOCKLESS";
192#elif FASTLED_HAS_I2S_SPI || FASTLED_HAS_I2S_LED
194 return spi ?
"I2S_SPI" :
"I2S";
214#if defined(FL_IS_RP2040) || defined(FL_IS_RP2350)
216 return which == 0 ?
"SPI0" :
"SPI1";
223#if defined(FL_IS_RP2040) || defined(FL_IS_RP2350)
224 return which == 0 ?
"UART0" :
"UART1";
225#elif defined(FL_IS_TEENSY_4X)
237 "Bus changed: update busName() and busDriverName()");
241#pragma pop_macro("I2S")
242#pragma pop_macro("SPI")
243#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)