This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / arch / arm / mach-omap / leds-h2p2-debug.c
1 /*
2  * linux/arch/arm/mach-omap/leds-h2p2-debug.c
3  *
4  * Copyright 2003 by Texas Instruments Incorporated
5  *
6  */
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>
12
13 #include <asm/io.h>
14 #include <asm/hardware.h>
15 #include <asm/leds.h>
16 #include <asm/system.h>
17
18 #include <asm/arch/fpga.h>
19
20 #include "leds.h"
21
22 void h2p2_dbg_leds_event(led_event_t evt)
23 {
24         unsigned long flags;
25         static unsigned long hw_led_state = 0;
26
27         local_irq_save(flags);
28
29         switch (evt) {
30         case led_start:
31                 hw_led_state |= H2P2_DBG_FPGA_LED_STARTSTOP;
32                 break;
33
34         case led_stop:
35                 hw_led_state &= ~H2P2_DBG_FPGA_LED_STARTSTOP;
36                 break;
37
38         case led_claim:
39                 hw_led_state |= H2P2_DBG_FPGA_LED_CLAIMRELEASE;
40                 break;
41
42         case led_release:
43                 hw_led_state &= ~H2P2_DBG_FPGA_LED_CLAIMRELEASE;
44                 break;
45
46 #ifdef CONFIG_LEDS_TIMER
47         case led_timer:
48                 /*
49                  * Toggle Timer LED
50                  */
51                 if (hw_led_state & H2P2_DBG_FPGA_LED_TIMER)
52                         hw_led_state &= ~H2P2_DBG_FPGA_LED_TIMER;
53                 else
54                         hw_led_state |= H2P2_DBG_FPGA_LED_TIMER;
55                 break;
56 #endif
57
58 #ifdef CONFIG_LEDS_CPU
59         case led_idle_start:
60                 hw_led_state |= H2P2_DBG_FPGA_LED_IDLE;
61                 break;
62
63         case led_idle_end:
64                 hw_led_state &= ~H2P2_DBG_FPGA_LED_IDLE;
65                 break;
66 #endif
67
68         case led_halted:
69                 if (hw_led_state & H2P2_DBG_FPGA_LED_HALTED)
70                         hw_led_state &= ~H2P2_DBG_FPGA_LED_HALTED;
71                 else
72                         hw_led_state |= H2P2_DBG_FPGA_LED_HALTED;
73                 break;
74
75         case led_green_on:
76                 break;
77
78         case led_green_off:
79                 break;
80
81         case led_amber_on:
82                 break;
83
84         case led_amber_off:
85                 break;
86
87         case led_red_on:
88                 break;
89
90         case led_red_off:
91                 break;
92
93         default:
94                 break;
95         }
96
97
98         /*
99          *  Actually burn the LEDs
100          */
101         __raw_writew(~hw_led_state & 0xffff, H2P2_DBG_FPGA_LEDS);
102
103         local_irq_restore(flags);
104 }