linux/arch/arm/mach-sa1100/leds-simpad.c
<<
>>
Prefs
   1/*
   2 * linux/arch/arm/mach-sa1100/leds-simpad.c
   3 *
   4 * Author: Juergen Messerer <juergen.messerer@siemens.ch>
   5 */
   6#include <linux/init.h>
   7
   8#include <mach/hardware.h>
   9#include <asm/leds.h>
  10#include <asm/system.h>
  11#include <mach/simpad.h>
  12
  13#include "leds.h"
  14
  15
  16#define LED_STATE_ENABLED       1
  17#define LED_STATE_CLAIMED       2
  18
  19static unsigned int led_state;
  20static unsigned int hw_led_state;
  21
  22#define LED_GREEN       (1)
  23#define LED_MASK        (1)
  24
  25extern void set_cs3_bit(int value);
  26extern void clear_cs3_bit(int value);     
  27
  28void simpad_leds_event(led_event_t evt)
  29{
  30        switch (evt)
  31        {
  32        case led_start:
  33                hw_led_state = LED_GREEN;
  34                led_state = LED_STATE_ENABLED;
  35                break;
  36
  37        case led_stop:
  38                led_state &= ~LED_STATE_ENABLED;
  39                break;
  40
  41        case led_claim:
  42                led_state |= LED_STATE_CLAIMED;
  43                hw_led_state = LED_GREEN;
  44                break;
  45
  46        case led_release:
  47                led_state &= ~LED_STATE_CLAIMED;
  48                hw_led_state = LED_GREEN;
  49                break;
  50
  51#ifdef CONFIG_LEDS_TIMER
  52        case led_timer:
  53                if (!(led_state & LED_STATE_CLAIMED))
  54                        hw_led_state ^= LED_GREEN;
  55                break;
  56#endif
  57
  58#ifdef CONFIG_LEDS_CPU
  59        case led_idle_start:
  60                break;
  61
  62        case led_idle_end:
  63                break;
  64#endif
  65
  66        case led_halted:
  67                break;
  68
  69        case led_green_on:
  70                if (led_state & LED_STATE_CLAIMED)
  71                        hw_led_state |= LED_GREEN;
  72                break;
  73
  74        case led_green_off:
  75                if (led_state & LED_STATE_CLAIMED)
  76                        hw_led_state &= ~LED_GREEN;
  77                break;
  78
  79        case led_amber_on:
  80                break;
  81
  82        case led_amber_off:
  83                break;
  84
  85        case led_red_on:
  86                break;
  87
  88        case led_red_off:
  89                break;
  90
  91        default:
  92                break;
  93        }
  94
  95        if  (led_state & LED_STATE_ENABLED)
  96                set_cs3_bit(LED2_ON);
  97        else 
  98                clear_cs3_bit(LED2_ON);
  99}
 100
 101