]>
git.ipfire.org Git - people/ms/u-boot.git/blob - arch/powerpc/include/asm/status_led.h
4 * MPC8xx/MPC8260/MPC5xx based status led support functions
7 #ifndef __ASM_STATUS_LED_H__
8 #define __ASM_STATUS_LED_H__
10 /* if not overridden */
11 #ifndef CONFIG_LED_STATUS_BOARD_SPECIFIC
12 # if defined(CONFIG_5xx)
15 # error CPU specific Status LED header file missing.
18 /* led_id_t is unsigned long mask */
19 typedef unsigned long led_id_t
;
21 static inline void __led_init (led_id_t mask
, int state
)
23 volatile immap_t
*immr
= (immap_t
*) CONFIG_SYS_IMMR
;
26 immr
->STATUS_LED_PAR
&= ~mask
;
29 immr
->STATUS_LED_ODR
&= ~mask
;
32 #if (STATUS_LED_ACTIVE == 0)
33 if (state
== CONFIG_LED_STATUS_ON
)
34 immr
->STATUS_LED_DAT
&= ~mask
;
36 immr
->STATUS_LED_DAT
|= mask
;
38 if (state
== CONFIG_LED_STATUS_ON
)
39 immr
->STATUS_LED_DAT
|= mask
;
41 immr
->STATUS_LED_DAT
&= ~mask
;
44 immr
->STATUS_LED_DIR
|= mask
;
48 static inline void __led_toggle (led_id_t mask
)
50 ((immap_t
*) CONFIG_SYS_IMMR
)->STATUS_LED_DAT
^= mask
;
53 static inline void __led_set (led_id_t mask
, int state
)
55 volatile immap_t
*immr
= (immap_t
*) CONFIG_SYS_IMMR
;
57 #if (STATUS_LED_ACTIVE == 0)
58 if (state
== CONFIG_LED_STATUS_ON
)
59 immr
->STATUS_LED_DAT
&= ~mask
;
61 immr
->STATUS_LED_DAT
|= mask
;
63 if (state
== CONFIG_LED_STATUS_ON
)
64 immr
->STATUS_LED_DAT
|= mask
;
66 immr
->STATUS_LED_DAT
&= ~mask
;
73 #endif /* __ASM_STATUS_LED_H__ */