3 * linux/arch/arm/mach-sa1100/leds-frodo.c
5 * Author: Abraham van der Merwe <abraham@2d3d.co.za>
7 * This file contains the 2d3D, Inc. SA-1110 Development Board LED
12 * - led6 - toggles state every 50 timer interrupts (Heartbeat)
13 * - led7 - on if system is not idle (CPU load)
16 #include <linux/config.h>
17 #include <linux/init.h>
19 #include <asm/hardware.h>
21 #include <asm/system.h>
25 #define led6_on() frodo_cpld_set (FRODO_CPLD_GENERAL,FRODO_LED2)
26 #define led6_off() frodo_cpld_clear (FRODO_CPLD_GENERAL,FRODO_LED2)
27 #define led6_invert() do { \
28 if ((frodo_cpld_read (FRODO_CPLD_GENERAL) & FRODO_LED2)) \
34 #define led7_on() frodo_cpld_set (FRODO_CPLD_GENERAL,FRODO_LED1)
35 #define led7_off() frodo_cpld_clear (FRODO_CPLD_GENERAL,FRODO_LED1)
36 #define led7_invert() do { \
37 if ((frodo_cpld_read (FRODO_CPLD_GENERAL) & FRODO_LED1)) \
45 void frodo_leds_event (led_event_t evt)
49 local_irq_save (flags);
53 #ifdef CONFIG_LEDS_CPU
54 /* turn off CPU load LED */
56 if (!claimed) led7_off ();
59 /* turn on CPU load LED */
61 if (!claimed) led7_on ();
65 #ifdef CONFIG_LEDS_TIMER
66 /* toggle heartbeat LED */
68 if (!claimed) led6_invert ();
72 /* start: turn on LEDs and set claimed to 0 */
79 /* stop: turn off LEDs */
85 /* override CPU load & timer LEDs */
90 /* restore CPU load & timer LEDs */
95 /* direct LED access (must be previously claimed) */
99 if (claimed) led7_on ();
103 if (claimed) led7_off ();
106 /* led6 -- at the moment this is actually also green */
108 if (claimed) led6_on ();
112 if (claimed) led6_off ();
119 local_irq_restore (flags);