# Top-level configuration file for LED strip drivers.

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

menuconfig LED_STRIP
	bool "Light-Emitting Diode (LED) strip drivers"
	help
	  Include LED strip drivers in the system configuration.

if LED_STRIP

module = LED_STRIP
module-str = LED strip
source "subsys/logging/Kconfig.template.log_config"

config LED_STRIP_INIT_PRIORITY
	int "LED strip initialization priority"
	default 90
	help
	  System initialization priority for LED strip drivers.

# Hidden option. The extra byte enables efficient serialization and transmission
# for drivers which require 4 B on wire for every 3 B of color, e.g. APA102, but
# is not normally needed.
config LED_STRIP_RGB_SCRATCH
	bool

source "drivers/led_strip/Kconfig.lpd880x"

source "drivers/led_strip/Kconfig.ws2812"

source "drivers/led_strip/Kconfig.apa102"

source "drivers/led_strip/Kconfig.tlc5971"

endif # LED_STRIP
