]> git.ipfire.org Git - people/ms/u-boot.git/blob - arch/powerpc/include/asm/status_led.h
powerpc, 8260: remove support for mpc8260
[people/ms/u-boot.git] / arch / powerpc / include / asm / status_led.h
1 /*
2 * asm/status_led.h
3 *
4 * MPC8xx/MPC8260/MPC5xx based status led support functions
5 */
6
7 #ifndef __ASM_STATUS_LED_H__
8 #define __ASM_STATUS_LED_H__
9
10 /* if not overridden */
11 #ifndef CONFIG_LED_STATUS_BOARD_SPECIFIC
12 # if defined(CONFIG_5xx)
13 # include <mpc5xx.h>
14 # else
15 # error CPU specific Status LED header file missing.
16 #endif
17
18 /* led_id_t is unsigned long mask */
19 typedef unsigned long led_id_t;
20
21 static inline void __led_init (led_id_t mask, int state)
22 {
23 volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
24
25 #ifdef STATUS_LED_PAR
26 immr->STATUS_LED_PAR &= ~mask;
27 #endif
28 #ifdef STATUS_LED_ODR
29 immr->STATUS_LED_ODR &= ~mask;
30 #endif
31
32 #if (STATUS_LED_ACTIVE == 0)
33 if (state == CONFIG_LED_STATUS_ON)
34 immr->STATUS_LED_DAT &= ~mask;
35 else
36 immr->STATUS_LED_DAT |= mask;
37 #else
38 if (state == CONFIG_LED_STATUS_ON)
39 immr->STATUS_LED_DAT |= mask;
40 else
41 immr->STATUS_LED_DAT &= ~mask;
42 #endif
43 #ifdef STATUS_LED_DIR
44 immr->STATUS_LED_DIR |= mask;
45 #endif
46 }
47
48 static inline void __led_toggle (led_id_t mask)
49 {
50 ((immap_t *) CONFIG_SYS_IMMR)->STATUS_LED_DAT ^= mask;
51 }
52
53 static inline void __led_set (led_id_t mask, int state)
54 {
55 volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
56
57 #if (STATUS_LED_ACTIVE == 0)
58 if (state == CONFIG_LED_STATUS_ON)
59 immr->STATUS_LED_DAT &= ~mask;
60 else
61 immr->STATUS_LED_DAT |= mask;
62 #else
63 if (state == CONFIG_LED_STATUS_ON)
64 immr->STATUS_LED_DAT |= mask;
65 else
66 immr->STATUS_LED_DAT &= ~mask;
67 #endif
68
69 }
70
71 #endif
72
73 #endif /* __ASM_STATUS_LED_H__ */