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