]> git.ipfire.org Git - thirdparty/u-boot.git/blame - include/status_led.h
colibri_imx6: switch to zimage
[thirdparty/u-boot.git] / include / status_led.h
CommitLineData
83d290c5 1/* SPDX-License-Identifier: GPL-2.0+ */
c609719b 2/*
04a85b3b 3 * (C) Copyright 2000-2004
c609719b 4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
c609719b
WD
5 */
6
7/*
8 * The purpose of this code is to signal the operational status of a
9 * target which usually boots over the network; while running in
10 * PCBoot, a status LED is blinking. As soon as a valid BOOTP reply
11 * message has been received, the LED is turned off. The Linux
12 * kernel, once it is running, will start blinking the LED again,
13 * with another frequency.
14 */
15
16#ifndef _STATUS_LED_H_
17#define _STATUS_LED_H_
18
2d8d190c
UM
19#ifdef CONFIG_LED_STATUS
20
21#define LED_STATUS_PERIOD (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ)
22#ifdef CONFIG_LED_STATUS1
23#define LED_STATUS_PERIOD1 (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ1)
24#endif /* CONFIG_LED_STATUS1 */
25#ifdef CONFIG_LED_STATUS2
26#define LED_STATUS_PERIOD2 (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ2)
27#endif /* CONFIG_LED_STATUS2 */
28#ifdef CONFIG_LED_STATUS3
29#define LED_STATUS_PERIOD3 (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ3)
30#endif /* CONFIG_LED_STATUS3 */
31#ifdef CONFIG_LED_STATUS4
32#define LED_STATUS_PERIOD4 (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ4)
33#endif /* CONFIG_LED_STATUS4 */
34#ifdef CONFIG_LED_STATUS5
35#define LED_STATUS_PERIOD5 (CONFIG_SYS_HZ / CONFIG_LED_STATUS_FREQ5)
36#endif /* CONFIG_LED_STATUS5 */
c609719b 37
13cfbe51 38void status_led_init(void);
c609719b
WD
39void status_led_tick (unsigned long timestamp);
40void status_led_set (int led, int state);
41
c609719b 42/***** MVS v1 **********************************************************/
5b8e76c3 43#if (defined(CONFIG_MVS) && CONFIG_MVS < 2)
c609719b
WD
44# define STATUS_LED_PAR im_ioport.iop_pdpar
45# define STATUS_LED_DIR im_ioport.iop_pddir
46# undef STATUS_LED_ODR
47# define STATUS_LED_DAT im_ioport.iop_pddat
48
c609719b
WD
49# define STATUS_LED_ACTIVE 1 /* LED on for bit == 1 */
50
c609719b
WD
51/***** Someone else defines these *************************************/
52#elif defined(STATUS_LED_PAR)
c609719b
WD
53 /*
54 * ADVICE: Define in your board configuration file rather than
55 * filling this file up with lots of custom board stuff.
56 */
57
2d8d190c 58#elif defined(CONFIG_LED_STATUS_BOARD_SPECIFIC)
566a494f
HS
59/* led_id_t is unsigned long mask */
60typedef unsigned long led_id_t;
61
62extern void __led_toggle (led_id_t mask);
63extern void __led_init (led_id_t mask, int state);
64extern void __led_set (led_id_t mask, int state);
a8eeaf2f 65void __led_blink(led_id_t mask, int freq);
c609719b
WD
66#else
67# error Status LED configuration missing
68#endif
69/************************************************************************/
70
2d8d190c 71#ifndef CONFIG_LED_STATUS_BOARD_SPECIFIC
48b42616
WD
72# include <asm/status_led.h>
73#endif
74
2d8d190c 75#endif /* CONFIG_LED_STATUS */
c5d4001a 76
de74b9ee 77/*
bd86220f 78 * Coloured LEDs API
de74b9ee 79 */
bd86220f 80#ifndef __ASSEMBLY__
c5d4001a
JH
81void coloured_LED_init(void);
82void red_led_on(void);
83void red_led_off(void);
84void green_led_on(void);
85void green_led_off(void);
86void yellow_led_on(void);
87void yellow_led_off(void);
88void blue_led_on(void);
89void blue_led_off(void);
bd86220f
PP
90#else
91 .extern LED_init
2d3be7c4
JK
92 .extern red_led_on
93 .extern red_led_off
94 .extern yellow_led_on
95 .extern yellow_led_off
96 .extern green_led_on
97 .extern green_led_off
98 .extern blue_led_on
99 .extern blue_led_off
bd86220f
PP
100#endif
101
c609719b 102#endif /* _STATUS_LED_H_ */