2 * linux/arch/arm/mach-omap/leds-perseus2.c
4 * Copyright 2003 by Texas Instruments Incorporated
7 #include <linux/config.h>
8 #include <linux/init.h>
9 #include <linux/kernel_stat.h>
10 #include <linux/sched.h>
11 #include <linux/version.h>
14 #include <asm/hardware.h>
16 #include <asm/system.h>
20 void perseus2_leds_event(led_event_t evt)
23 static unsigned long hw_led_state = 0;
25 local_irq_save(flags);
29 hw_led_state |= OMAP730_FPGA_LED_STARTSTOP;
33 hw_led_state &= ~OMAP730_FPGA_LED_STARTSTOP;
37 hw_led_state |= OMAP730_FPGA_LED_CLAIMRELEASE;
41 hw_led_state &= ~OMAP730_FPGA_LED_CLAIMRELEASE;
44 #ifdef CONFIG_LEDS_TIMER
49 if (hw_led_state & OMAP730_FPGA_LED_TIMER)
50 hw_led_state &= ~OMAP730_FPGA_LED_TIMER;
52 hw_led_state |= OMAP730_FPGA_LED_TIMER;
56 #ifdef CONFIG_LEDS_CPU
58 hw_led_state |= OMAP730_FPGA_LED_IDLE;
62 hw_led_state &= ~OMAP730_FPGA_LED_IDLE;
67 if (hw_led_state & OMAP730_FPGA_LED_HALTED)
68 hw_led_state &= ~OMAP730_FPGA_LED_HALTED;
70 hw_led_state |= OMAP730_FPGA_LED_HALTED;
97 * Actually burn the LEDs
99 __raw_writew(~hw_led_state & 0xffff, OMAP730_FPGA_LEDS);
101 local_irq_restore(flags);