leds.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/arch/arm/mach-ebsa110/leds.c
  3.  *
  4.  *  Copyright (C) 1998 Russell King
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License version 2 as
  8.  * published by the Free Software Foundation.
  9.  *
  10.  *  EBSA-110 LED control routines.  We use the led as follows:
  11.  *
  12.  *   - Red - toggles state every 50 timer interrupts
  13.  */
  14. #include <linux/module.h>
  15. #include <linux/spinlock.h>
  16. #include <linux/init.h>
  17. #include <asm/hardware.h>
  18. #include <asm/leds.h>
  19. #include <asm/system.h>
  20. #include <asm/mach-types.h>
  21. static spinlock_t leds_lock;
  22. static void ebsa110_leds_event(led_event_t ledevt)
  23. {
  24. unsigned long flags;
  25. spin_lock_irqsave(&leds_lock, flags);
  26. switch(ledevt) {
  27. case led_timer:
  28. *(volatile unsigned char *)SOFT_BASE ^= 128;
  29. break;
  30. default:
  31. break;
  32. }
  33. spin_unlock_irqrestore(&leds_lock, flags);
  34. }
  35. static int __init leds_init(void)
  36. {
  37. if (machine_is_ebsa110())
  38. leds_event = ebsa110_leds_event;
  39. return 0;
  40. }
  41. __initcall(leds_init);