57 lines
1.6 KiB
Plaintext
57 lines
1.6 KiB
Plaintext
# Copyright (c) 2017 Linaro Limited
|
|
# Copyright (c) 2019 Nordic Semiconductor ASA
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# The following blog post is an excellent resource about pulse timing:
|
|
#
|
|
# https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/
|
|
|
|
menuconfig WS2812_STRIP
|
|
bool "WS2812 (and compatible) LED strip driver"
|
|
help
|
|
Enable LED strip driver for daisy chains of WS2812-ish (or WS2812B,
|
|
WS2813, SK6812, Everlight B1414, or compatible) devices.
|
|
|
|
choice WS2812_STRIP_DRIVER
|
|
prompt "Driver backend"
|
|
default WS2812_STRIP_SPI
|
|
depends on WS2812_STRIP
|
|
|
|
config WS2812_STRIP_SPI
|
|
bool "SPI driver"
|
|
depends on SPI
|
|
help
|
|
The SPI driver is portable, but requires significantly more
|
|
memory (1 byte of overhead per bit of pixel data).
|
|
|
|
config WS2812_STRIP_I2S
|
|
bool "I2S driver"
|
|
depends on I2S
|
|
help
|
|
Uses the I2S peripheral, memory usage is 4 bytes per color,
|
|
times the number of pixels. A few more for the start and end
|
|
delay. The reset delay has a coarse resolution of ~20us.
|
|
|
|
config WS2812_STRIP_GPIO
|
|
bool "GPIO driver"
|
|
# Only an Cortex-M0 inline assembly implementation for the nRF51
|
|
# is supported currently.
|
|
depends on SOC_SERIES_NRF51X
|
|
select LED_STRIP_RGB_SCRATCH
|
|
help
|
|
The GPIO driver does bit-banging with inline assembly,
|
|
and is not available on all SoCs.
|
|
|
|
Note that this driver is not compatible with the Everlight B1414
|
|
controller.
|
|
|
|
config WS2812_STRIP_RPI_PICO_PIO
|
|
bool "Raspberry Pi Pico PIO"
|
|
depends on DT_HAS_WORLDSEMI_WS2812_RPI_PICO_PIO_ENABLED
|
|
select PICOSDK_USE_PIO
|
|
help
|
|
Use the PIO feature available on RaspberryPi Pico devices.
|
|
|
|
endchoice
|