1# Copyright (c) 2017 Linaro Limited
2# Copyright (c) 2019 Nordic Semiconductor ASA
3#
4# SPDX-License-Identifier: Apache-2.0
5
6# The following blog post is an excellent resource about pulse timing:
7#
8# https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/
9
10config WS2812_STRIP_SPI
11	bool "WS2812 LED strip SPI driver"
12	default y
13	depends on DT_HAS_WORLDSEMI_WS2812_SPI_ENABLED
14	select SPI if $(dt_compat_on_bus,$(DT_COMPAT_WORLDSEMI_WS2812_SPI),spi)
15	help
16	  Enable driver for WS2812 (and compatibles) LED strip using SPI.
17	  The SPI driver is portable, but requires significantly more
18	  memory (1 byte of overhead per bit of pixel data).
19
20config WS2812_STRIP_I2S
21	bool "WS2812 LED strip I2S driver"
22	default y
23	depends on DT_HAS_WORLDSEMI_WS2812_I2S_ENABLED
24	select I2S if $(dt_compat_on_bus,$(DT_COMPAT_WORLDSEMI_WS2812_I2S),i2s)
25	help
26	  Enable driver for WS2812 (and compatibles) LED strip using I2S.
27	  Uses the I2S peripheral, memory usage is 4 bytes per color,
28	  times the number of pixels. A few more for the start and end
29	  delay. The reset delay has a coarse resolution of ~20us.
30
31config WS2812_STRIP_GPIO
32	bool "WS2812 LED strip GPIO driver"
33	# Only an Cortex-M0 inline assembly implementation for the nRF51
34	# is supported currently.
35	default y
36	depends on DT_HAS_WORLDSEMI_WS2812_GPIO_ENABLED
37	depends on SOC_SERIES_NRF51X
38	select LED_STRIP_RGB_SCRATCH
39	help
40	  Enable driver for WS2812 (and compatibles) LED strip directly controlling with GPIO.
41	  The GPIO driver does bit-banging with inline assembly,
42	  and is not available on all SoCs.
43
44	  Note that this driver is not compatible with the Everlight B1414
45	  controller.
46
47config WS2812_STRIP_RPI_PICO_PIO
48	bool "WS2812 LED strip Raspberry Pi Pico PIO driver"
49	default y
50	depends on DT_HAS_WORLDSEMI_WS2812_RPI_PICO_PIO_ENABLED
51	select PICOSDK_USE_PIO
52	help
53	  Enable driver for WS2812 (and compatibles) LED strip using
54	  the RaspberryPi Pico's PIO.
55