xref: /openbmc/u-boot/doc/README.LED (revision 23ff8633)
1Status LED
2========================================
3
4This README describes the status LED API.
5
6The API is defined by the include file include/status_led.h
7
8The first step is to define CONFIG_STATUS_LED in the board config file.
9
10If the LED support is only for a single board, define CONFIG_BOARD_SPECIFIC_LED
11in the board config file.
12
13At a minimum, these macros must be defined at
14STATUS_LED_BIT
15STATUS_LED_STATE
16STATUS_LED_PERIOD
17
18If there are multiple status LED's define
19STATUS_LED_BIT<n>
20STATUS_LED_STATE<n>
21STATUS_LED_PERIOD<n>
22
23Where <n> can a integer 1 through 3.
24
25STATUS_LED_BIT is passed into the __led_* functions to identify which LED is
26being acted on.  As such, the value choose must be unique with with respect to
27the other STATUS_LED_BIT's.  Mapping the value to a physical LED is the
28reponsiblity of the __led_* function.
29
30STATUS_LED_STATE is the initial state of the LED. It should be set to one of
31these values: STATUS_LED_OFF or STATUS_LED_ON.
32
33STATUS_LED_PERIOD is how long is the LED blink period.  This usually set to
34(CONFIG_SYS_HZ / <N>) where <N> is the frequency of the blink. Typical values
35range from 2 to 10.
36
37Some other LED macros
38
39STATUS_LED_BOOT is the LED to light when the board is booting.  This must be a
40valid STATUS_LED_BIT value.
41
42STATUS_LED_RED is the red LED.  It is used signal errors. This must be a valid
43STATUS_LED_BIT value. Other similar color LED's are STATUS_LED_YELLOW and
44STATUS_LED_BLUE.
45
46These board must define these functions
47
48__led_init is called once to initialize the LED to STATUS_LED_STATE. One time
49start up code should be placed here.
50
51__led_set is called to change the state of the LED.
52
53__led_toggle is called to toggle the current state of the LED.
54
55Colour LED
56========================================
57
58Colour LED's are at present only used by ARM.
59
60The functions names explain their purpose.
61
62coloured_LED_init
63red_LED_on
64red_LED_off
65green_LED_on
66green_LED_off
67yellow_LED_on
68yellow_LED_off
69blue_LED_on
70blue_LED_off
71
72These are weakly defined in arch/arm/lib/board.c to noops. Where applicable, define
73these functions in the board specific source.
74
75TBD : Describe older board dependent macros similar to what is done for
76CONFIG_TQM8xxL.
77
78TBD : Describe general support via asm/status_led.h
79