mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-04 10:30:32 +00:00
f9dc67d18e
Driver for the TI LP5562 4 channel LED controller. Supports independent on/off control of all 4 channels. Supports LED_BLINK on 3 independent channels: blue/green/red. The white channel can blink, but shares the blue channel blink rate. Heavily based on patch originally from Doug Zobel [1]. I have modified it so it matches the DT bindings in the linux tree, and also follows the linux driver implementation more closely. This should address Tom's concerns, and also matches my goal of making the U-Boot driver work with our existing .dts which is known to work in linux. As our boards only have the R,G,B outputs connected, I have not actually tested how the white channel behaves, but the R,G,B work exactly as expected. [1] https://lore.kernel.org/u-boot/1547150757-1561-1-git-send-email-douglas.zobel@climate.com/ Cc: Doug Zobel <douglas.zobel@climate.com> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
423 lines
10 KiB
Text
423 lines
10 KiB
Text
menu "LED Support"
|
|
|
|
config LED
|
|
bool "Enable LED support"
|
|
depends on DM
|
|
help
|
|
Many boards have LEDs which can be used to signal status or alerts.
|
|
U-Boot provides a uclass API to implement this feature. LED drivers
|
|
can provide access to board-specific LEDs. Use of the device tree
|
|
for configuration is encouraged.
|
|
|
|
config LED_BCM6328
|
|
bool "LED Support for BCM6328"
|
|
depends on LED && ARCH_BMIPS
|
|
help
|
|
This option enables support for LEDs connected to the BCM6328
|
|
LED HW controller accessed via MMIO registers.
|
|
HW blinking is supported and up to 24 LEDs can be controlled.
|
|
All LEDs can blink at the same time but the delay is shared, which
|
|
means that if one LED is set to blink at 100ms and then a different
|
|
LED is set to blink at 200ms, both will blink at 200ms.
|
|
|
|
config LED_BCM6358
|
|
bool "LED Support for BCM6358"
|
|
depends on LED && ARCH_BMIPS
|
|
help
|
|
This option enables support for LEDs connected to the BCM6358
|
|
LED HW controller accessed via MMIO registers.
|
|
HW has no blinking capabilities and up to 32 LEDs can be controlled.
|
|
|
|
config LED_BCM6753
|
|
bool "LED Support for BCM6753"
|
|
depends on LED && BCM6855
|
|
help
|
|
This option enables support for LEDs connected to the BCM6753
|
|
HW has blinking and fading capabilities and up to 32 LEDs can be controlled.
|
|
|
|
config LED_BCM6858
|
|
bool "LED Support for BCM6858"
|
|
depends on LED && (BCM6856 || BCM6858 || BCM63158)
|
|
help
|
|
This option enables support for LEDs connected to the BCM6858
|
|
HW has blinking capabilities and up to 32 LEDs can be controlled.
|
|
|
|
config LED_CORTINA
|
|
bool "LED Support for Cortina Access CAxxxx SoCs"
|
|
depends on LED && (CORTINA_PLATFORM)
|
|
help
|
|
This option enables support for LEDs connected to the Cortina
|
|
Access CAxxxx SOCs.
|
|
|
|
config LED_LP5562
|
|
bool "LED Support for LP5562"
|
|
depends on LED && DM_I2C
|
|
help
|
|
This option enables support for LEDs connected to the TI LP5562
|
|
4 channel I2C LED controller. Driver fully supports blink on the
|
|
B/G/R LEDs. White LED can blink, but re-uses the period from blue.
|
|
|
|
config LED_PWM
|
|
bool "LED PWM"
|
|
depends on LED && DM_PWM
|
|
help
|
|
Enable support for LEDs connected to PWM.
|
|
Linux compatible ofdata.
|
|
|
|
config LED_BLINK
|
|
bool "Support LED blinking"
|
|
depends on LED
|
|
help
|
|
Some drivers can support automatic blinking of LEDs with a given
|
|
period, without needing timers or extra code to handle the timing.
|
|
This option enables support for this which adds slightly to the
|
|
code size.
|
|
|
|
config SPL_LED
|
|
bool "Enable LED support in SPL"
|
|
depends on SPL_DM
|
|
help
|
|
The LED subsystem adds a small amount of overhead to the image.
|
|
If this is acceptable and you have a need to use LEDs in SPL,
|
|
enable this option. You will need to enable device tree in SPL
|
|
for this to work.
|
|
|
|
config LED_GPIO
|
|
bool "LED support for GPIO-connected LEDs"
|
|
depends on LED && DM_GPIO
|
|
help
|
|
Enable support for LEDs which are connected to GPIO lines. These
|
|
GPIOs may be on the SoC or some other device which provides GPIOs.
|
|
The GPIO driver must used driver model. LEDs are configured using
|
|
the device tree.
|
|
|
|
config SPL_LED_GPIO
|
|
bool "LED support for GPIO-connected LEDs in SPL"
|
|
depends on SPL_LED && SPL_DM_GPIO
|
|
help
|
|
This option is an SPL-variant of the LED_GPIO option.
|
|
See the help of LED_GPIO for details.
|
|
|
|
config LED_STATUS
|
|
bool "Enable status LED API"
|
|
help
|
|
Allows common u-boot commands to use a board's leds to
|
|
provide status for activities like booting and downloading files.
|
|
|
|
if LED_STATUS
|
|
|
|
# Hidden constants
|
|
|
|
config LED_STATUS_OFF
|
|
int
|
|
default 0
|
|
|
|
config LED_STATUS_BLINKING
|
|
int
|
|
default 1
|
|
|
|
config LED_STATUS_ON
|
|
int
|
|
default 2
|
|
|
|
# Hidden constants end
|
|
|
|
config LED_STATUS_GPIO
|
|
bool "GPIO status LED implementation"
|
|
help
|
|
The status LED can be connected to a GPIO pin. In such cases, the
|
|
gpio_led driver can be used as a status LED backend implementation.
|
|
|
|
config LED_STATUS_BOARD_SPECIFIC
|
|
bool "Specific board"
|
|
default y
|
|
help
|
|
LED support is only for a specific board.
|
|
|
|
comment "LEDs parameters"
|
|
|
|
config LED_STATUS0
|
|
bool "Enable status LED 0"
|
|
|
|
if LED_STATUS0
|
|
|
|
config LED_STATUS_BIT
|
|
int "identification"
|
|
help
|
|
CONFIG_LED_STATUS_BIT is passed into the __led_* functions to identify
|
|
which LED is being acted on. As such, the chosen value must be unique
|
|
with respect to the other CONFIG_LED_STATUS_BIT's. Mapping the value
|
|
to a physical LED is the responsibility of the __led_* function.
|
|
|
|
config LED_STATUS_STATE
|
|
int "initial state"
|
|
range LED_STATUS_OFF LED_STATUS_ON
|
|
default LED_STATUS_OFF
|
|
help
|
|
Should be set one of the following:
|
|
0 - off
|
|
1 - blinking
|
|
2 - on
|
|
|
|
config LED_STATUS_FREQ
|
|
int "blink frequency"
|
|
range 2 10
|
|
default 2
|
|
help
|
|
The LED blink period calculated from LED_STATUS_FREQ:
|
|
LED_STATUS_PERIOD = CONFIG_SYS_HZ/LED_STATUS_FREQ
|
|
Values range: 2 - 10
|
|
|
|
endif # LED_STATUS0
|
|
|
|
config LED_STATUS1
|
|
bool "Enable status LED 1"
|
|
|
|
if LED_STATUS1
|
|
|
|
config LED_STATUS_BIT1
|
|
int "identification"
|
|
help
|
|
CONFIG_LED_STATUS_BIT1 is passed into the __led_* functions to
|
|
identify which LED is being acted on. As such, the chosen value must
|
|
be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
|
|
the value to a physical LED is the responsibility of the __led_*
|
|
function.
|
|
|
|
config LED_STATUS_STATE1
|
|
int "initial state"
|
|
range LED_STATUS_OFF LED_STATUS_ON
|
|
default LED_STATUS_OFF
|
|
help
|
|
Should be set one of the following:
|
|
0 - off
|
|
1 - blinking
|
|
2 - on
|
|
|
|
config LED_STATUS_FREQ1
|
|
int "blink frequency"
|
|
range 2 10
|
|
default 2
|
|
help
|
|
The LED blink period calculated from LED_STATUS_FREQ1:
|
|
LED_STATUS_PERIOD1 = CONFIG_SYS_HZ/LED_STATUS_FREQ1
|
|
Values range: 2 - 10
|
|
|
|
endif # LED_STATUS1
|
|
|
|
config LED_STATUS2
|
|
bool "Enable status LED 2"
|
|
|
|
if LED_STATUS2
|
|
|
|
config LED_STATUS_BIT2
|
|
int "identification"
|
|
help
|
|
CONFIG_LED_STATUS_BIT2 is passed into the __led_* functions to
|
|
identify which LED is being acted on. As such, the chosen value must
|
|
be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
|
|
the value to a physical LED is the responsibility of the __led_*
|
|
function.
|
|
|
|
config LED_STATUS_STATE2
|
|
int "initial state"
|
|
range LED_STATUS_OFF LED_STATUS_ON
|
|
default LED_STATUS_OFF
|
|
help
|
|
Should be set one of the following:
|
|
0 - off
|
|
1 - blinking
|
|
2 - on
|
|
|
|
config LED_STATUS_FREQ2
|
|
int "blink frequency"
|
|
range 2 10
|
|
default 2
|
|
help
|
|
The LED blink period calculated from LED_STATUS_FREQ2:
|
|
LED_STATUS_PERIOD2 = CONFIG_SYS_HZ/LED_STATUS_FREQ2
|
|
Values range: 2 - 10
|
|
|
|
endif # LED_STATUS2
|
|
|
|
config LED_STATUS3
|
|
bool "Enable status LED 3"
|
|
|
|
if LED_STATUS3
|
|
|
|
config LED_STATUS_BIT3
|
|
int "identification"
|
|
help
|
|
CONFIG_LED_STATUS_BIT3 is passed into the __led_* functions to
|
|
identify which LED is being acted on. As such, the chosen value must
|
|
be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
|
|
the value to a physical LED is the responsibility of the __led_*
|
|
function.
|
|
|
|
config LED_STATUS_STATE3
|
|
int "initial state"
|
|
range LED_STATUS_OFF LED_STATUS_ON
|
|
default LED_STATUS_OFF
|
|
help
|
|
Should be set one of the following:
|
|
0 - off
|
|
1 - blinking
|
|
2 - on
|
|
|
|
config LED_STATUS_FREQ3
|
|
int "blink frequency"
|
|
range 2 10
|
|
default 2
|
|
help
|
|
The LED blink period calculated from LED_STATUS_FREQ3:
|
|
LED_STATUS_PERIOD3 = CONFIG_SYS_HZ/LED_STATUS_FREQ3
|
|
Values range: 2 - 10
|
|
|
|
endif # LED_STATUS3
|
|
|
|
config LED_STATUS4
|
|
bool "Enable status LED 4"
|
|
|
|
if LED_STATUS4
|
|
|
|
config LED_STATUS_BIT4
|
|
int "identification"
|
|
help
|
|
CONFIG_LED_STATUS_BIT4 is passed into the __led_* functions to
|
|
identify which LED is being acted on. As such, the chosen value must
|
|
be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
|
|
the value to a physical LED is the responsibility of the __led_*
|
|
function.
|
|
|
|
config LED_STATUS_STATE4
|
|
int "initial state"
|
|
range LED_STATUS_OFF LED_STATUS_ON
|
|
default LED_STATUS_OFF
|
|
help
|
|
Should be set one of the following:
|
|
0 - off
|
|
1 - blinking
|
|
2 - on
|
|
|
|
config LED_STATUS_FREQ4
|
|
int "blink frequency"
|
|
range 2 10
|
|
default 2
|
|
help
|
|
The LED blink period calculated from LED_STATUS_FREQ4:
|
|
LED_STATUS_PERIOD4 = CONFIG_SYS_HZ/LED_STATUS_FREQ4
|
|
Values range: 2 - 10
|
|
|
|
endif # LED_STATUS4
|
|
|
|
config LED_STATUS5
|
|
bool "Enable status LED 5"
|
|
|
|
if LED_STATUS5
|
|
|
|
config LED_STATUS_BIT5
|
|
int "identification"
|
|
help
|
|
CONFIG_LED_STATUS_BIT5 is passed into the __led_* functions to
|
|
identify which LED is being acted on. As such, the chosen value must
|
|
be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
|
|
the value to a physical LED is the responsibility of the __led_*
|
|
function.
|
|
|
|
config LED_STATUS_STATE5
|
|
int "initial state"
|
|
range LED_STATUS_OFF LED_STATUS_ON
|
|
default LED_STATUS_OFF
|
|
help
|
|
Should be set one of the following:
|
|
0 - off
|
|
1 - blinking
|
|
2 - on
|
|
|
|
config LED_STATUS_FREQ5
|
|
int "blink frequency"
|
|
range 2 10
|
|
default 2
|
|
help
|
|
The LED blink period calculated from LED_STATUS_FREQ5:
|
|
LED_STATUS_PERIOD5 = CONFIG_SYS_HZ/LED_STATUS_FREQ5
|
|
Values range: 2 - 10
|
|
|
|
endif # LED_STATUS5
|
|
|
|
config LED_STATUS_BOOT_ENABLE
|
|
bool "Enable BOOT LED"
|
|
help
|
|
Enable to turn an LED on when the board is booting.
|
|
|
|
if LED_STATUS_BOOT_ENABLE
|
|
|
|
config LED_STATUS_BOOT
|
|
int "LED to light when the board is booting"
|
|
help
|
|
Valid enabled LED device number.
|
|
|
|
endif # LED_STATUS_BOOT_ENABLE
|
|
|
|
config LED_STATUS_RED_ENABLE
|
|
bool "Enable red LED"
|
|
help
|
|
Enable red status LED.
|
|
|
|
if LED_STATUS_RED_ENABLE
|
|
|
|
config LED_STATUS_RED
|
|
int "Red LED identification"
|
|
help
|
|
Valid enabled LED device number.
|
|
|
|
endif # LED_STATUS_RED_ENABLE
|
|
|
|
config LED_STATUS_YELLOW_ENABLE
|
|
bool "Enable yellow LED"
|
|
help
|
|
Enable yellow status LED.
|
|
|
|
if LED_STATUS_YELLOW_ENABLE
|
|
|
|
config LED_STATUS_YELLOW
|
|
int "Yellow LED identification"
|
|
help
|
|
Valid enabled LED device number.
|
|
|
|
endif # LED_STATUS_YELLOW_ENABLE
|
|
|
|
config LED_STATUS_BLUE_ENABLE
|
|
bool "Enable blue LED"
|
|
help
|
|
Enable blue status LED.
|
|
|
|
if LED_STATUS_BLUE_ENABLE
|
|
|
|
config LED_STATUS_BLUE
|
|
int "Blue LED identification"
|
|
help
|
|
Valid enabled LED device number.
|
|
|
|
endif # LED_STATUS_BLUE_ENABLE
|
|
|
|
config LED_STATUS_GREEN_ENABLE
|
|
bool "Enable green LED"
|
|
help
|
|
Enable green status LED.
|
|
|
|
if LED_STATUS_GREEN_ENABLE
|
|
|
|
config LED_STATUS_GREEN
|
|
int "Green LED identification"
|
|
help
|
|
Valid enabled LED device number (0-5).
|
|
|
|
endif # LED_STATUS_GREEN_ENABLE
|
|
|
|
config LED_STATUS_CMD
|
|
bool "Enable status LED commands"
|
|
|
|
endif # LED_STATUS
|
|
|
|
endmenu
|