xref: /OK3568_Linux_fs/u-boot/drivers/led/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunmenu "LED Support"
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunconfig LED
4*4882a593Smuzhiyun	bool "Enable LED support"
5*4882a593Smuzhiyun	depends on DM
6*4882a593Smuzhiyun	help
7*4882a593Smuzhiyun	  Many boards have LEDs which can be used to signal status or alerts.
8*4882a593Smuzhiyun	  U-Boot provides a uclass API to implement this feature. LED drivers
9*4882a593Smuzhiyun	  can provide access to board-specific LEDs. Use of the device tree
10*4882a593Smuzhiyun	  for configuration is encouraged.
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunconfig LED_BCM6328
13*4882a593Smuzhiyun	bool "LED Support for BCM6328"
14*4882a593Smuzhiyun	depends on LED && ARCH_BMIPS
15*4882a593Smuzhiyun	help
16*4882a593Smuzhiyun	  This option enables support for LEDs connected to the BCM6328
17*4882a593Smuzhiyun	  LED HW controller accessed via MMIO registers.
18*4882a593Smuzhiyun	  HW blinking is supported and up to 24 LEDs can be controlled.
19*4882a593Smuzhiyun	  All LEDs can blink at the same time but the delay is shared, which
20*4882a593Smuzhiyun	  means that if one LED is set to blink at 100ms and then a different
21*4882a593Smuzhiyun	  LED is set to blink at 200ms, both will blink at 200ms.
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunconfig LED_BCM6358
24*4882a593Smuzhiyun	bool "LED Support for BCM6358"
25*4882a593Smuzhiyun	depends on LED && ARCH_BMIPS
26*4882a593Smuzhiyun	help
27*4882a593Smuzhiyun	  This option enables support for LEDs connected to the BCM6358
28*4882a593Smuzhiyun	  LED HW controller accessed via MMIO registers.
29*4882a593Smuzhiyun	  HW has no blinking capabilities and up to 32 LEDs can be controlled.
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunconfig LED_BLINK
32*4882a593Smuzhiyun	bool "Support LED blinking"
33*4882a593Smuzhiyun	depends on LED
34*4882a593Smuzhiyun	help
35*4882a593Smuzhiyun	  Some drivers can support automatic blinking of LEDs with a given
36*4882a593Smuzhiyun	  period, without needing timers or extra code to handle the timing.
37*4882a593Smuzhiyun	  This option enables support for this which adds slightly to the
38*4882a593Smuzhiyun	  code size.
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunconfig SPL_LED
41*4882a593Smuzhiyun	bool "Enable LED support in SPL"
42*4882a593Smuzhiyun	depends on SPL && SPL_DM
43*4882a593Smuzhiyun	help
44*4882a593Smuzhiyun	  The LED subsystem adds a small amount of overhead to the image.
45*4882a593Smuzhiyun	  If this is acceptable and you have a need to use LEDs in SPL,
46*4882a593Smuzhiyun	  enable this option. You will need to enable device tree in SPL
47*4882a593Smuzhiyun	  for this to work.
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunconfig LED_GPIO
50*4882a593Smuzhiyun	bool "LED support for GPIO-connected LEDs"
51*4882a593Smuzhiyun	depends on LED && DM_GPIO
52*4882a593Smuzhiyun	help
53*4882a593Smuzhiyun	  Enable support for LEDs which are connected to GPIO lines. These
54*4882a593Smuzhiyun	  GPIOs may be on the SoC or some other device which provides GPIOs.
55*4882a593Smuzhiyun	  The GPIO driver must used driver model. LEDs are configured using
56*4882a593Smuzhiyun	  the device tree.
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunconfig SPL_LED_GPIO
59*4882a593Smuzhiyun	bool "LED support for GPIO-connected LEDs in SPL"
60*4882a593Smuzhiyun        depends on SPL_LED && DM_GPIO
61*4882a593Smuzhiyun	help
62*4882a593Smuzhiyun	  This option is an SPL-variant of the LED_GPIO option.
63*4882a593Smuzhiyun	  See the help of LED_GPIO for details.
64*4882a593Smuzhiyun
65*4882a593Smuzhiyunconfig LED_STATUS
66*4882a593Smuzhiyun	bool "Enable status LED API"
67*4882a593Smuzhiyun	help
68*4882a593Smuzhiyun	  Allows common u-boot commands to use a board's leds to
69*4882a593Smuzhiyun	  provide status for activities like booting and downloading files.
70*4882a593Smuzhiyun
71*4882a593Smuzhiyunif LED_STATUS
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun# Hidden constants
74*4882a593Smuzhiyun
75*4882a593Smuzhiyunconfig LED_STATUS_OFF
76*4882a593Smuzhiyun	int
77*4882a593Smuzhiyun	default 0
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig LED_STATUS_BLINKING
80*4882a593Smuzhiyun	int
81*4882a593Smuzhiyun	default 1
82*4882a593Smuzhiyun
83*4882a593Smuzhiyunconfig LED_STATUS_ON
84*4882a593Smuzhiyun	int
85*4882a593Smuzhiyun	default 2
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun# Hidden constants end
88*4882a593Smuzhiyun
89*4882a593Smuzhiyunconfig LED_STATUS_GPIO
90*4882a593Smuzhiyun	bool "GPIO status LED implementation"
91*4882a593Smuzhiyun	help
92*4882a593Smuzhiyun	  The status LED can be connected to a GPIO pin. In such cases, the
93*4882a593Smuzhiyun	  gpio_led driver can be used as a status LED backend implementation.
94*4882a593Smuzhiyun
95*4882a593Smuzhiyunconfig LED_STATUS_BOARD_SPECIFIC
96*4882a593Smuzhiyun	bool "Specific board"
97*4882a593Smuzhiyun	default y
98*4882a593Smuzhiyun	help
99*4882a593Smuzhiyun	  LED support is only for a specific board.
100*4882a593Smuzhiyun
101*4882a593Smuzhiyuncomment "LEDs parameters"
102*4882a593Smuzhiyun
103*4882a593Smuzhiyunconfig LED_STATUS0
104*4882a593Smuzhiyun	bool "Enable status LED 0"
105*4882a593Smuzhiyun
106*4882a593Smuzhiyunif LED_STATUS0
107*4882a593Smuzhiyun
108*4882a593Smuzhiyunconfig LED_STATUS_BIT
109*4882a593Smuzhiyun	int "identification"
110*4882a593Smuzhiyun	help
111*4882a593Smuzhiyun	  CONFIG_LED_STATUS_BIT is passed into the __led_* functions to identify
112*4882a593Smuzhiyun	  which LED is being acted on.  As such, the chosen value must be unique
113*4882a593Smuzhiyun	  with respect to the other CONFIG_LED_STATUS_BIT's. Mapping the value
114*4882a593Smuzhiyun	  to a physical LED is the responsibility of the __led_* function.
115*4882a593Smuzhiyun
116*4882a593Smuzhiyunconfig LED_STATUS_STATE
117*4882a593Smuzhiyun	int "initial state"
118*4882a593Smuzhiyun	range LED_STATUS_OFF LED_STATUS_ON
119*4882a593Smuzhiyun	default LED_STATUS_OFF
120*4882a593Smuzhiyun	help
121*4882a593Smuzhiyun	  Should be set one of the following:
122*4882a593Smuzhiyun	  0 - off
123*4882a593Smuzhiyun	  1 - blinking
124*4882a593Smuzhiyun	  2 - on
125*4882a593Smuzhiyun
126*4882a593Smuzhiyunconfig LED_STATUS_FREQ
127*4882a593Smuzhiyun	int "blink frequency"
128*4882a593Smuzhiyun	range 2 10
129*4882a593Smuzhiyun	default 2
130*4882a593Smuzhiyun	help
131*4882a593Smuzhiyun	  The LED blink period calculated from LED_STATUS_FREQ:
132*4882a593Smuzhiyun	  LED_STATUS_PERIOD = CONFIG_SYS_HZ/LED_STATUS_FREQ
133*4882a593Smuzhiyun	  Values range: 2 - 10
134*4882a593Smuzhiyun
135*4882a593Smuzhiyunendif # LED_STATUS0
136*4882a593Smuzhiyun
137*4882a593Smuzhiyunconfig LED_STATUS1
138*4882a593Smuzhiyun	bool "Enable status LED 1"
139*4882a593Smuzhiyun
140*4882a593Smuzhiyunif LED_STATUS1
141*4882a593Smuzhiyun
142*4882a593Smuzhiyunconfig LED_STATUS_BIT1
143*4882a593Smuzhiyun	int "identification"
144*4882a593Smuzhiyun	help
145*4882a593Smuzhiyun	  CONFIG_LED_STATUS_BIT1 is passed into the __led_* functions to
146*4882a593Smuzhiyun	  identify which LED is being acted on.  As such, the chosen value must
147*4882a593Smuzhiyun	  be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
148*4882a593Smuzhiyun	  the value to a physical LED is the responsibility of the __led_*
149*4882a593Smuzhiyun	  function.
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunconfig LED_STATUS_STATE1
152*4882a593Smuzhiyun	int "initial state"
153*4882a593Smuzhiyun	range LED_STATUS_OFF LED_STATUS_ON
154*4882a593Smuzhiyun	default LED_STATUS_OFF
155*4882a593Smuzhiyun	help
156*4882a593Smuzhiyun	  Should be set one of the following:
157*4882a593Smuzhiyun	  0 - off
158*4882a593Smuzhiyun	  1 - blinking
159*4882a593Smuzhiyun	  2 - on
160*4882a593Smuzhiyun
161*4882a593Smuzhiyunconfig LED_STATUS_FREQ1
162*4882a593Smuzhiyun	int "blink frequency"
163*4882a593Smuzhiyun	range 2 10
164*4882a593Smuzhiyun	default 2
165*4882a593Smuzhiyun	help
166*4882a593Smuzhiyun	  The LED blink period calculated from LED_STATUS_FREQ1:
167*4882a593Smuzhiyun	  LED_STATUS_PERIOD1 = CONFIG_SYS_HZ/LED_STATUS_FREQ1
168*4882a593Smuzhiyun	  Values range: 2 - 10
169*4882a593Smuzhiyun
170*4882a593Smuzhiyunendif # LED_STATUS1
171*4882a593Smuzhiyun
172*4882a593Smuzhiyunconfig LED_STATUS2
173*4882a593Smuzhiyun	bool "Enable status LED 2"
174*4882a593Smuzhiyun
175*4882a593Smuzhiyunif LED_STATUS2
176*4882a593Smuzhiyun
177*4882a593Smuzhiyunconfig LED_STATUS_BIT2
178*4882a593Smuzhiyun	int "identification"
179*4882a593Smuzhiyun	help
180*4882a593Smuzhiyun	  CONFIG_LED_STATUS_BIT2 is passed into the __led_* functions to
181*4882a593Smuzhiyun	  identify which LED is being acted on.  As such, the chosen value must
182*4882a593Smuzhiyun	  be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
183*4882a593Smuzhiyun	  the value to a physical LED is the responsibility of the __led_*
184*4882a593Smuzhiyun	  function.
185*4882a593Smuzhiyun
186*4882a593Smuzhiyunconfig LED_STATUS_STATE2
187*4882a593Smuzhiyun	int "initial state"
188*4882a593Smuzhiyun	range LED_STATUS_OFF LED_STATUS_ON
189*4882a593Smuzhiyun	default LED_STATUS_OFF
190*4882a593Smuzhiyun	help
191*4882a593Smuzhiyun	  Should be set one of the following:
192*4882a593Smuzhiyun	  0 - off
193*4882a593Smuzhiyun	  1 - blinking
194*4882a593Smuzhiyun	  2 - on
195*4882a593Smuzhiyun
196*4882a593Smuzhiyunconfig LED_STATUS_FREQ2
197*4882a593Smuzhiyun	int "blink frequency"
198*4882a593Smuzhiyun	range 2 10
199*4882a593Smuzhiyun	default 2
200*4882a593Smuzhiyun	help
201*4882a593Smuzhiyun	  The LED blink period calculated from LED_STATUS_FREQ2:
202*4882a593Smuzhiyun	  LED_STATUS_PERIOD2 = CONFIG_SYS_HZ/LED_STATUS_FREQ2
203*4882a593Smuzhiyun	  Values range: 2 - 10
204*4882a593Smuzhiyun
205*4882a593Smuzhiyunendif # LED_STATUS2
206*4882a593Smuzhiyun
207*4882a593Smuzhiyunconfig LED_STATUS3
208*4882a593Smuzhiyun	bool "Enable status LED 3"
209*4882a593Smuzhiyun
210*4882a593Smuzhiyunif LED_STATUS3
211*4882a593Smuzhiyun
212*4882a593Smuzhiyunconfig LED_STATUS_BIT3
213*4882a593Smuzhiyun	int "identification"
214*4882a593Smuzhiyun	help
215*4882a593Smuzhiyun	  CONFIG_LED_STATUS_BIT3 is passed into the __led_* functions to
216*4882a593Smuzhiyun	  identify which LED is being acted on.  As such, the chosen value must
217*4882a593Smuzhiyun	  be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
218*4882a593Smuzhiyun	  the value to a physical LED is the responsibility of the __led_*
219*4882a593Smuzhiyun	  function.
220*4882a593Smuzhiyun
221*4882a593Smuzhiyunconfig LED_STATUS_STATE3
222*4882a593Smuzhiyun	int "initial state"
223*4882a593Smuzhiyun	range LED_STATUS_OFF LED_STATUS_ON
224*4882a593Smuzhiyun	default LED_STATUS_OFF
225*4882a593Smuzhiyun	help
226*4882a593Smuzhiyun	  Should be set one of the following:
227*4882a593Smuzhiyun	  0 - off
228*4882a593Smuzhiyun	  1 - blinking
229*4882a593Smuzhiyun	  2 - on
230*4882a593Smuzhiyun
231*4882a593Smuzhiyunconfig LED_STATUS_FREQ3
232*4882a593Smuzhiyun	int "blink frequency"
233*4882a593Smuzhiyun	range 2 10
234*4882a593Smuzhiyun	default 2
235*4882a593Smuzhiyun	help
236*4882a593Smuzhiyun	  The LED blink period calculated from LED_STATUS_FREQ3:
237*4882a593Smuzhiyun	  LED_STATUS_PERIOD3 = CONFIG_SYS_HZ/LED_STATUS_FREQ3
238*4882a593Smuzhiyun	  Values range: 2 - 10
239*4882a593Smuzhiyun
240*4882a593Smuzhiyunendif # LED_STATUS3
241*4882a593Smuzhiyun
242*4882a593Smuzhiyunconfig LED_STATUS4
243*4882a593Smuzhiyun	bool "Enable status LED 4"
244*4882a593Smuzhiyun
245*4882a593Smuzhiyunif LED_STATUS4
246*4882a593Smuzhiyun
247*4882a593Smuzhiyunconfig LED_STATUS_BIT4
248*4882a593Smuzhiyun	int "identification"
249*4882a593Smuzhiyun	help
250*4882a593Smuzhiyun	  CONFIG_LED_STATUS_BIT4 is passed into the __led_* functions to
251*4882a593Smuzhiyun	  identify which LED is being acted on.  As such, the chosen value must
252*4882a593Smuzhiyun	  be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
253*4882a593Smuzhiyun	  the value to a physical LED is the responsibility of the __led_*
254*4882a593Smuzhiyun	  function.
255*4882a593Smuzhiyun
256*4882a593Smuzhiyunconfig LED_STATUS_STATE4
257*4882a593Smuzhiyun	int "initial state"
258*4882a593Smuzhiyun	range LED_STATUS_OFF LED_STATUS_ON
259*4882a593Smuzhiyun	default LED_STATUS_OFF
260*4882a593Smuzhiyun	help
261*4882a593Smuzhiyun	  Should be set one of the following:
262*4882a593Smuzhiyun	  0 - off
263*4882a593Smuzhiyun	  1 - blinking
264*4882a593Smuzhiyun	  2 - on
265*4882a593Smuzhiyun
266*4882a593Smuzhiyunconfig LED_STATUS_FREQ4
267*4882a593Smuzhiyun	int "blink frequency"
268*4882a593Smuzhiyun	range 2 10
269*4882a593Smuzhiyun	default 2
270*4882a593Smuzhiyun	help
271*4882a593Smuzhiyun	  The LED blink period calculated from LED_STATUS_FREQ4:
272*4882a593Smuzhiyun	  LED_STATUS_PERIOD4 = CONFIG_SYS_HZ/LED_STATUS_FREQ4
273*4882a593Smuzhiyun	  Values range: 2 - 10
274*4882a593Smuzhiyun
275*4882a593Smuzhiyunendif # LED_STATUS4
276*4882a593Smuzhiyun
277*4882a593Smuzhiyunconfig LED_STATUS5
278*4882a593Smuzhiyun	bool "Enable status LED 5"
279*4882a593Smuzhiyun
280*4882a593Smuzhiyunif LED_STATUS5
281*4882a593Smuzhiyun
282*4882a593Smuzhiyunconfig LED_STATUS_BIT5
283*4882a593Smuzhiyun	int "identification"
284*4882a593Smuzhiyun	help
285*4882a593Smuzhiyun	  CONFIG_LED_STATUS_BIT5 is passed into the __led_* functions to
286*4882a593Smuzhiyun	  identify which LED is being acted on.  As such, the chosen value must
287*4882a593Smuzhiyun	  be unique with respect to the other CONFIG_LED_STATUS_BIT's. Mapping
288*4882a593Smuzhiyun	  the value to a physical LED is the responsibility of the __led_*
289*4882a593Smuzhiyun	  function.
290*4882a593Smuzhiyun
291*4882a593Smuzhiyunconfig LED_STATUS_STATE5
292*4882a593Smuzhiyun	int "initial state"
293*4882a593Smuzhiyun	range LED_STATUS_OFF LED_STATUS_ON
294*4882a593Smuzhiyun	default LED_STATUS_OFF
295*4882a593Smuzhiyun	help
296*4882a593Smuzhiyun	  Should be set one of the following:
297*4882a593Smuzhiyun	  0 - off
298*4882a593Smuzhiyun	  1 - blinking
299*4882a593Smuzhiyun	  2 - on
300*4882a593Smuzhiyun
301*4882a593Smuzhiyunconfig LED_STATUS_FREQ5
302*4882a593Smuzhiyun	int "blink frequency"
303*4882a593Smuzhiyun	range 2 10
304*4882a593Smuzhiyun	default 2
305*4882a593Smuzhiyun	help
306*4882a593Smuzhiyun	  The LED blink period calculated from LED_STATUS_FREQ5:
307*4882a593Smuzhiyun	  LED_STATUS_PERIOD5 = CONFIG_SYS_HZ/LED_STATUS_FREQ5
308*4882a593Smuzhiyun	  Values range: 2 - 10
309*4882a593Smuzhiyun
310*4882a593Smuzhiyunendif # LED_STATUS5
311*4882a593Smuzhiyun
312*4882a593Smuzhiyunconfig LED_STATUS_BOOT_ENABLE
313*4882a593Smuzhiyun	bool "Enable BOOT LED"
314*4882a593Smuzhiyun	help
315*4882a593Smuzhiyun	  Enable to turn an LED on when the board is booting.
316*4882a593Smuzhiyun
317*4882a593Smuzhiyunif LED_STATUS_BOOT_ENABLE
318*4882a593Smuzhiyun
319*4882a593Smuzhiyunconfig LED_STATUS_BOOT
320*4882a593Smuzhiyun	int "LED to light when the board is booting"
321*4882a593Smuzhiyun	help
322*4882a593Smuzhiyun	  Valid enabled LED device number.
323*4882a593Smuzhiyun
324*4882a593Smuzhiyunendif # LED_STATUS_BOOT_ENABLE
325*4882a593Smuzhiyun
326*4882a593Smuzhiyunconfig LED_STATUS_RED_ENABLE
327*4882a593Smuzhiyun	bool "Enable red LED"
328*4882a593Smuzhiyun	help
329*4882a593Smuzhiyun	  Enable red status LED.
330*4882a593Smuzhiyun
331*4882a593Smuzhiyunif LED_STATUS_RED_ENABLE
332*4882a593Smuzhiyun
333*4882a593Smuzhiyunconfig LED_STATUS_RED
334*4882a593Smuzhiyun	int "Red LED identification"
335*4882a593Smuzhiyun	help
336*4882a593Smuzhiyun	  Valid enabled LED device number.
337*4882a593Smuzhiyun
338*4882a593Smuzhiyunendif # LED_STATUS_RED_ENABLE
339*4882a593Smuzhiyun
340*4882a593Smuzhiyunconfig LED_STATUS_YELLOW_ENABLE
341*4882a593Smuzhiyun	bool "Enable yellow LED"
342*4882a593Smuzhiyun	help
343*4882a593Smuzhiyun	  Enable yellow status LED.
344*4882a593Smuzhiyun
345*4882a593Smuzhiyunif LED_STATUS_YELLOW_ENABLE
346*4882a593Smuzhiyun
347*4882a593Smuzhiyunconfig LED_STATUS_YELLOW
348*4882a593Smuzhiyun	int "Yellow LED identification"
349*4882a593Smuzhiyun	help
350*4882a593Smuzhiyun	  Valid enabled LED device number.
351*4882a593Smuzhiyun
352*4882a593Smuzhiyunendif # LED_STATUS_YELLOW_ENABLE
353*4882a593Smuzhiyun
354*4882a593Smuzhiyunconfig LED_STATUS_BLUE_ENABLE
355*4882a593Smuzhiyun	bool "Enable blue LED"
356*4882a593Smuzhiyun	help
357*4882a593Smuzhiyun	  Enable blue status LED.
358*4882a593Smuzhiyun
359*4882a593Smuzhiyunif LED_STATUS_BLUE_ENABLE
360*4882a593Smuzhiyun
361*4882a593Smuzhiyunconfig LED_STATUS_BLUE
362*4882a593Smuzhiyun	int "Blue LED identification"
363*4882a593Smuzhiyun	help
364*4882a593Smuzhiyun	  Valid enabled LED device number.
365*4882a593Smuzhiyun
366*4882a593Smuzhiyunendif # LED_STATUS_BLUE_ENABLE
367*4882a593Smuzhiyun
368*4882a593Smuzhiyunconfig LED_STATUS_GREEN_ENABLE
369*4882a593Smuzhiyun	bool "Enable green LED"
370*4882a593Smuzhiyun	help
371*4882a593Smuzhiyun	  Enable green status LED.
372*4882a593Smuzhiyun
373*4882a593Smuzhiyunif LED_STATUS_GREEN_ENABLE
374*4882a593Smuzhiyun
375*4882a593Smuzhiyunconfig LED_STATUS_GREEN
376*4882a593Smuzhiyun	int "Green LED identification"
377*4882a593Smuzhiyun	help
378*4882a593Smuzhiyun	  Valid enabled LED device number (0-5).
379*4882a593Smuzhiyun
380*4882a593Smuzhiyunendif # LED_STATUS_GREEN_ENABLE
381*4882a593Smuzhiyun
382*4882a593Smuzhiyunconfig LED_STATUS_CMD
383*4882a593Smuzhiyun	bool "Enable status LED commands"
384*4882a593Smuzhiyun
385*4882a593Smuzhiyunendif # LED_STATUS
386*4882a593Smuzhiyun
387*4882a593Smuzhiyunendmenu
388