mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 14:38:58 +00:00
status_led: Kconfig migration - introduction
Move all of the status LED feature to drivers/led/Kconfig. doc/README.LED updated to reflect the Kconfig implementation. Tested boards: CL-SOM-AM57x, CM-T335 Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
This commit is contained in:
parent
3788b451e3
commit
79267edd10
3 changed files with 355 additions and 34 deletions
8
README
8
README
|
@ -2033,7 +2033,7 @@ The following options need to be configured:
|
|||
|
||||
A byte containing the id of the VLAN.
|
||||
|
||||
- Status LED: CONFIG_STATUS_LED
|
||||
- Status LED: CONFIG_LED_STATUS
|
||||
|
||||
Several configurations allow to display the current
|
||||
status using a LED. For instance, the LED will blink
|
||||
|
@ -2041,15 +2041,15 @@ The following options need to be configured:
|
|||
soon as a reply to a BOOTP request was received, and
|
||||
start blinking slow once the Linux kernel is running
|
||||
(supported by a status LED driver in the Linux
|
||||
kernel). Defining CONFIG_STATUS_LED enables this
|
||||
kernel). Defining CONFIG_LED_STATUS enables this
|
||||
feature in U-Boot.
|
||||
|
||||
Additional options:
|
||||
|
||||
CONFIG_GPIO_LED
|
||||
CONFIG_LED_STATUS_GPIO
|
||||
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. Define CONFIG_GPIO_LED
|
||||
status LED backend implementation. Define CONFIG_LED_STATUS_GPIO
|
||||
to include the gpio_led driver in the U-Boot binary.
|
||||
|
||||
CONFIG_GPIO_LED_INVERTED_TABLE
|
||||
|
|
|
@ -5,48 +5,48 @@ This README describes the status LED API.
|
|||
|
||||
The API is defined by the include file include/status_led.h
|
||||
|
||||
The first step is to define CONFIG_STATUS_LED in the board config file.
|
||||
The first step is to enable CONFIG_LED_STATUS in menuconfig:
|
||||
> Device Drivers > LED Support.
|
||||
|
||||
If the LED support is only for a single board, define CONFIG_BOARD_SPECIFIC_LED
|
||||
in the board config file.
|
||||
If the LED support is only for specific board, enable
|
||||
CONFIG_LED_STATUS_BOARD_SPECIFIC in the menuconfig.
|
||||
|
||||
At a minimum, these macros must be defined at
|
||||
STATUS_LED_BIT
|
||||
STATUS_LED_STATE
|
||||
STATUS_LED_PERIOD
|
||||
Status LEDS 0 to 5 are enabled by the following configurations at menuconfig:
|
||||
CONFIG_STATUS_LED0, CONFIG_STATUS_LED1, ... CONFIG_STATUS_LED5
|
||||
|
||||
If there are multiple status LED's define
|
||||
STATUS_LED_BIT<n>
|
||||
STATUS_LED_STATE<n>
|
||||
STATUS_LED_PERIOD<n>
|
||||
The following should be configured for each of the enabled LEDs:
|
||||
CONFIG_STATUS_LED_BIT<n>
|
||||
CONFIG_STATUS_LED_STATE<n>
|
||||
CONFIG_STATUS_LED_FREQ<n>
|
||||
Where <n> is an integer 1 through 5 (empty for 0).
|
||||
|
||||
Where <n> can a integer 1 through 3.
|
||||
|
||||
STATUS_LED_BIT is passed into the __led_* functions to identify which LED is
|
||||
being acted on. As such, the value choose must be unique with with respect to
|
||||
the other STATUS_LED_BIT's. Mapping the value to a physical LED is the
|
||||
CONFIG_STATUS_LED_BIT is passed into the __led_* functions to identify which LED
|
||||
is being acted on. As such, the value choose must be unique with with respect to
|
||||
the other CONFIG_STATUS_LED_BIT's. Mapping the value to a physical LED is the
|
||||
reponsiblity of the __led_* function.
|
||||
|
||||
STATUS_LED_STATE is the initial state of the LED. It should be set to one of
|
||||
these values: STATUS_LED_OFF or STATUS_LED_ON.
|
||||
CONFIG_STATUS_LED_STATE is the initial state of the LED. It should be set to one
|
||||
of these values: CONFIG_LED_STATUS_OFF or CONFIG_LED_STATUS_ON.
|
||||
|
||||
STATUS_LED_PERIOD is how long is the LED blink period. This usually set to
|
||||
(CONFIG_SYS_HZ / <N>) where <N> is the frequency of the blink. Typical values
|
||||
range from 2 to 10.
|
||||
CONFIG_STATUS_LED_FREQ determines the LED blink frequency.
|
||||
Values range from 2 to 10.
|
||||
|
||||
Some other LED macros
|
||||
---------------------
|
||||
|
||||
STATUS_LED_BOOT is the LED to light when the board is booting. This must be a
|
||||
valid STATUS_LED_BIT value.
|
||||
CONFIG_STATUS_LED_BOOT is the LED to light when the board is booting.
|
||||
This must be a valid LED number (0-5).
|
||||
|
||||
STATUS_LED_RED is the red LED. It is used signal errors. This must be a valid
|
||||
STATUS_LED_BIT value. Other similar color LED's are STATUS_LED_YELLOW and
|
||||
STATUS_LED_BLUE.
|
||||
CONFIG_STATUS_LED_RED is the red LED. It is used to signal errors. This must be
|
||||
a valid LED number (0-5). Other similar color LED's macros are
|
||||
CONFIG_STATUS_LED_GREEN, CONFIG_STATUS_LED_YELLOW and CONFIG_STATUS_LED_BLUE.
|
||||
|
||||
These board must define these functions
|
||||
General LED functions
|
||||
---------------------
|
||||
The following functions should be defined:
|
||||
|
||||
__led_init is called once to initialize the LED to STATUS_LED_STATE. One time
|
||||
start up code should be placed here.
|
||||
__led_init is called once to initialize the LED to CONFIG_STATUS_LED_STATE.
|
||||
One time start up code should be placed here.
|
||||
|
||||
__led_set is called to change the state of the LED.
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@ config SPL_LED
|
|||
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
|
||||
|
@ -34,4 +33,326 @@ config SPL_LED_GPIO
|
|||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue