nuttx/drivers/leds/Kconfig
Diego Herranz e1e89b925f drivers/leds/ws2812: Revert SPI frequency change
0c3db448bb
added the option to generate the waveforms to drive ws2812 and similar LEDs using different
hardware (e.g. RP2040 PIO instead of SPI).

For that new mode, the concept of CONFIG_WS2812_FREQUENCY is different. Instead of
the SPI frequency (commonly a few MHz), it is the frequency of the actual output waveform
(commonly 400 or 800 kHz).

There was an attempt to express the SPI frequency divided by 10, but it's not actually the
case either (it would be divided by 8).

I think it is clearer to explain in Kconfig what CONFIG_WS2812_FREQUENCY means for each mode
and go back to the previous behaviour for the original SPI mode (also to avoid breaking
out-of-tree boards).
2022-08-13 10:01:28 -07:00

161 lines
4.4 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menu "LED Support"
config USERLED
bool "LED driver"
default n
---help---
Enable standard user LED upper half driver.
if USERLED
config USERLED_LOWER
bool "Generic Lower Half LED Driver"
default n
depends on ARCH_HAVE_LEDS
---help---
If the board supports the standard LED interfaces as
defined in include/nuttx/board.h header file, then this
standard LED lower half driver might be usable.
In order for this generic driver to be usable:
1. The board implementation must provide the LED
interfaces as defined in include/nuttx/board.h
If your board does not meet these requirements, then the
userled_lower.c file can still be copied to your your
board src/ directory and modified for your specific board
requirements.
config USERLED_LOWER_READSTATE
bool "LED Driver Read Actual Pin State"
default n
depends on USERLED_LOWER
---help---
Extends the standard LED interface as defined in the
include/nuttx/board.h header file with a function that
checks the actual state of the pin controlling the LED,
which can be used to find malfunctioning LEDs.
endif # USERLED
config LEDS_APA102
bool "APA102 LED Strip"
default n
select SPI
---help---
Enable support for the APA102 LED Strip driver.
config LEDS_MAX7219
bool "MAX7219 Numeric Display"
default n
select SPI
---help---
Enable support for the MAX7219 to control 7-segment displays.
config RGBLED
bool "RGB LED Driver Support"
default n
---help---
This selection enables building of the "upper-half" RGB LED driver.
See include/nuttx/rgbled.h for further PWM driver information.
config RGBLED_INVERT
bool "Invert RGB LED Output"
depends on RGBLED
default n
---help---
If the board has a common anode RGB LED (a LOW output turns ON
each LED), this selection inverts the outputs so that the
colors are displayed correctly.
config RGBLED_LIGHTNESS_CORRECTION
bool "Apply Lightness Correction"
depends on RGBLED
default n
---help---
This selection enables an approximate CIE 1931 lightness
correction which helps the RGB LED visually fade and blend
in a more linear, smooth, and visually appealing fashion.
config PCA9635PW
bool "PCA9635PW I2C LED Driver"
default n
select I2C
---help---
Enable support for the NXP PCA9635PW LED driver which can be
utilized to drive up to 16 LED's.
config NCP5623C
bool "NCP5623C I2C LED Driver"
default n
select I2C
---help---
Enable support for the onsemi NCP5623C LED driver which can be
utilized to drive up to 3 LED's.
config WS2812
bool "WS2812 LED Driver"
default n
select SPI
---help---
Enable support for the Worldsemi WS2812 LED driver which commonly
found in LED strips.
NOTE: Depening on the board slected this device may require
exclusive use of an SPI bus as ws2812 LEDs have no CS or
RESET line.
# NOTE: Once the older SPI driver is migrated to the new model
# we should remove the "select SPI" in the above config.
config WS2812_NON_SPI_DRIVER
bool "Support the new non-SPI WS2812 driver."
default n
depends on WS2812
---help---
The original driver used SPI hardware to clock bits to the
pixels. The driver is being re-designed to support other
implementations. Selecting this option builds the new
model driver.
config WS2812_LED_COUNT
int "Number of ws2812s connected."
default 1
range 1 65535
depends on WS2812
---help---
The number of ws2812s chained to this port. Although the
driver allows up to 65,535 ws2812s the practical limit will
depend on processor speed and other resources.
config WS2812_HAS_WHITE
bool "ws2812s have white LED."
default n
depends on WS2812
---help---
Some ws2812 work-alike chips have a white LED in addition
to the standard red, green, and blue LEDs. This option
enables support for such chips. Note that the driver does
not support chains with a mix of RGB and RGBW pixels.
config WS2812_FREQUENCY
int "WS2812 Bit Frequency (Hz)"
default 800000
depends on WS2812
---help---
Frequency in Hz.
On SPI mode (WS2812_NON_SPI_DRIVER not selected), this is
the SPI frequency (commonly a few MHz) to generate the required
waveforms to represent a 0/1 symbol.
On non SPI mode (WS2812_NON_SPI_DRIVER selected), this should be set
to the bit frequency of the ws2812s being used. Newer chips use an
800 kHz bit frequency (the default); although, some older chips run
at 400 kHz.
endmenu # LED Support