e1e89b925f
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).
161 lines
4.4 KiB
Plaintext
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
|