diff options
Diffstat (limited to 'arch/arm/mach-omap1/leds-h2p2-debug.c')
-rw-r--r-- | arch/arm/mach-omap1/leds-h2p2-debug.c | 43 |
1 files changed, 34 insertions, 9 deletions
diff --git a/arch/arm/mach-omap1/leds-h2p2-debug.c b/arch/arm/mach-omap1/leds-h2p2-debug.c index 399010c14036..650650815915 100644 --- a/arch/arm/mach-omap1/leds-h2p2-debug.c +++ b/arch/arm/mach-omap1/leds-h2p2-debug.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <asm/hardware.h> | 18 | #include <asm/hardware.h> |
19 | #include <asm/leds.h> | 19 | #include <asm/leds.h> |
20 | #include <asm/system.h> | 20 | #include <asm/system.h> |
21 | #include <asm/mach-types.h> | ||
21 | 22 | ||
22 | #include <asm/arch/fpga.h> | 23 | #include <asm/arch/fpga.h> |
23 | #include <asm/arch/gpio.h> | 24 | #include <asm/arch/gpio.h> |
@@ -63,14 +64,19 @@ void h2p2_dbg_leds_event(led_event_t evt) | |||
63 | case led_stop: | 64 | case led_stop: |
64 | case led_halted: | 65 | case led_halted: |
65 | /* all leds off during suspend or shutdown */ | 66 | /* all leds off during suspend or shutdown */ |
66 | omap_set_gpio_dataout(GPIO_TIMER, 0); | 67 | |
67 | omap_set_gpio_dataout(GPIO_IDLE, 0); | 68 | if (! machine_is_omap_perseus2()) { |
69 | omap_set_gpio_dataout(GPIO_TIMER, 0); | ||
70 | omap_set_gpio_dataout(GPIO_IDLE, 0); | ||
71 | } | ||
72 | |||
68 | __raw_writew(~0, &fpga->leds); | 73 | __raw_writew(~0, &fpga->leds); |
69 | led_state &= ~LED_STATE_ENABLED; | 74 | led_state &= ~LED_STATE_ENABLED; |
70 | if (evt == led_halted) { | 75 | if (evt == led_halted) { |
71 | iounmap(fpga); | 76 | iounmap(fpga); |
72 | fpga = NULL; | 77 | fpga = NULL; |
73 | } | 78 | } |
79 | |||
74 | goto done; | 80 | goto done; |
75 | 81 | ||
76 | case led_claim: | 82 | case led_claim: |
@@ -85,18 +91,37 @@ void h2p2_dbg_leds_event(led_event_t evt) | |||
85 | #ifdef CONFIG_LEDS_TIMER | 91 | #ifdef CONFIG_LEDS_TIMER |
86 | case led_timer: | 92 | case led_timer: |
87 | led_state ^= LED_TIMER_ON; | 93 | led_state ^= LED_TIMER_ON; |
88 | omap_set_gpio_dataout(GPIO_TIMER, led_state & LED_TIMER_ON); | 94 | |
89 | goto done; | 95 | if (machine_is_omap_perseus2()) |
96 | hw_led_state ^= H2P2_DBG_FPGA_P2_LED_TIMER; | ||
97 | else { | ||
98 | omap_set_gpio_dataout(GPIO_TIMER, led_state & LED_TIMER_ON); | ||
99 | goto done; | ||
100 | } | ||
101 | |||
102 | break; | ||
90 | #endif | 103 | #endif |
91 | 104 | ||
92 | #ifdef CONFIG_LEDS_CPU | 105 | #ifdef CONFIG_LEDS_CPU |
93 | case led_idle_start: | 106 | case led_idle_start: |
94 | omap_set_gpio_dataout(GPIO_IDLE, 1); | 107 | if (machine_is_omap_perseus2()) |
95 | goto done; | 108 | hw_led_state |= H2P2_DBG_FPGA_P2_LED_IDLE; |
109 | else { | ||
110 | omap_set_gpio_dataout(GPIO_IDLE, 1); | ||
111 | goto done; | ||
112 | } | ||
113 | |||
114 | break; | ||
96 | 115 | ||
97 | case led_idle_end: | 116 | case led_idle_end: |
98 | omap_set_gpio_dataout(GPIO_IDLE, 0); | 117 | if (machine_is_omap_perseus2()) |
99 | goto done; | 118 | hw_led_state &= ~H2P2_DBG_FPGA_P2_LED_IDLE; |
119 | else { | ||
120 | omap_set_gpio_dataout(GPIO_IDLE, 0); | ||
121 | goto done; | ||
122 | } | ||
123 | |||
124 | break; | ||
100 | #endif | 125 | #endif |
101 | 126 | ||
102 | case led_green_on: | 127 | case led_green_on: |
@@ -135,7 +160,7 @@ void h2p2_dbg_leds_event(led_event_t evt) | |||
135 | /* | 160 | /* |
136 | * Actually burn the LEDs | 161 | * Actually burn the LEDs |
137 | */ | 162 | */ |
138 | if (led_state & LED_STATE_CLAIMED) | 163 | if (led_state & LED_STATE_ENABLED) |
139 | __raw_writew(~hw_led_state, &fpga->leds); | 164 | __raw_writew(~hw_led_state, &fpga->leds); |
140 | 165 | ||
141 | done: | 166 | done: |