#
# Copyright (c) 2018 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig WS2812B_SW
	bool "Enable WS2812B software-based LED strip driver"
	# Only an Cortex-M0 inline assembly implementation for the nRF51
	# is supported currently.
	depends on SOC_SERIES_NRF51X
	help
	  A software-based (bit-banging) LED strip driver for daisy
	  chains of WS2812B devices. This driver implements the signal
	  sending with software-based bit-banging. If a more efficient
	  option, such as SPI, is available, another driver is recommended
	  to be used.

if WS2812B_SW

config WS2812B_SW_NAME
	string "Driver name"
	default "ws2812b_sw"
	help
	  Device name for WS2812B LED strip.

config WS2812B_SW_GPIO_NAME
	string "GPIO port that the LED strip is connected to"
	default GPIO_NRF5_P0_DEV_NAME if SOC_FAMILY_NRF
	help
	  GPIO port name.

config WS2812B_SW_GPIO_PIN
	int "GPIO pin that the LED strip is connected to"
	default 3 if BOARD_BBC_MICROBIT # P0
	help
	  GPIO pin number that the LED strip is connected to.

endif
