Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-ebsa110/leds.c
10817 views
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
18
#include <mach/hardware.h>
19
#include <asm/leds.h>
20
#include <asm/system.h>
21
#include <asm/mach-types.h>
22
23
static spinlock_t leds_lock;
24
25
static void ebsa110_leds_event(led_event_t ledevt)
26
{
27
unsigned long flags;
28
29
spin_lock_irqsave(&leds_lock, flags);
30
31
switch(ledevt) {
32
case led_timer:
33
*(volatile unsigned char *)SOFT_BASE ^= 128;
34
break;
35
36
default:
37
break;
38
}
39
40
spin_unlock_irqrestore(&leds_lock, flags);
41
}
42
43
static int __init leds_init(void)
44
{
45
if (machine_is_ebsa110())
46
leds_event = ebsa110_leds_event;
47
48
return 0;
49
}
50
51
__initcall(leds_init);
52
53