| # 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" |
| select LED_STRIP_RGB_SCRATCH |
| 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 |
| 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. |
| |
| endchoice |