# 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_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
