]> git.ipfire.org Git - people/ms/u-boot.git/blame - 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
CommitLineData
48b42616
WD
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
62a3b7dd 10/* if not overridden */
2d8d190c 11#ifndef CONFIG_LED_STATUS_BOARD_SPECIFIC
2eb48ff7 12# if defined(CONFIG_5xx)
48b42616
WD
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 */
19typedef unsigned long led_id_t;
20
21static inline void __led_init (led_id_t mask, int state)
22{
6d0f6bcf 23 volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
48b42616
WD
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)
2d8d190c 33 if (state == CONFIG_LED_STATUS_ON)
48b42616
WD
34 immr->STATUS_LED_DAT &= ~mask;
35 else
36 immr->STATUS_LED_DAT |= mask;
37#else
2d8d190c 38 if (state == CONFIG_LED_STATUS_ON)
48b42616
WD
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
48static inline void __led_toggle (led_id_t mask)
49{
6d0f6bcf 50 ((immap_t *) CONFIG_SYS_IMMR)->STATUS_LED_DAT ^= mask;
48b42616
WD
51}
52
53static inline void __led_set (led_id_t mask, int state)
54{
6d0f6bcf 55 volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
48b42616
WD
56
57#if (STATUS_LED_ACTIVE == 0)
2d8d190c 58 if (state == CONFIG_LED_STATUS_ON)
48b42616
WD
59 immr->STATUS_LED_DAT &= ~mask;
60 else
61 immr->STATUS_LED_DAT |= mask;
62#else
2d8d190c 63 if (state == CONFIG_LED_STATUS_ON)
48b42616
WD
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__ */