OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [leds/] [leds-spitz.c] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 * LED Triggers Core
3
 *
4
 * Copyright 2005-2006 Openedhand Ltd.
5
 *
6
 * Author: Richard Purdie <rpurdie@openedhand.com>
7
 *
8
 * This program is free software; you can redistribute it and/or modify
9
 * it under the terms of the GNU General Public License version 2 as
10
 * published by the Free Software Foundation.
11
 *
12
 */
13
 
14
#include <linux/kernel.h>
15
#include <linux/init.h>
16
#include <linux/platform_device.h>
17
#include <linux/leds.h>
18
#include <asm/hardware/scoop.h>
19
#include <asm/mach-types.h>
20
#include <asm/arch/hardware.h>
21
#include <asm/arch/pxa-regs.h>
22
#include <asm/arch/spitz.h>
23
 
24
static void spitzled_amber_set(struct led_classdev *led_cdev, enum led_brightness value)
25
{
26
        if (value)
27
                set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_ORANGE);
28
        else
29
                reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_ORANGE);
30
}
31
 
32
static void spitzled_green_set(struct led_classdev *led_cdev, enum led_brightness value)
33
{
34
        if (value)
35
                set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
36
        else
37
                reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
38
}
39
 
40
static struct led_classdev spitz_amber_led = {
41
        .name                   = "spitz:amber",
42
        .default_trigger        = "sharpsl-charge",
43
        .brightness_set         = spitzled_amber_set,
44
};
45
 
46
static struct led_classdev spitz_green_led = {
47
        .name                   = "spitz:green",
48
        .default_trigger        = "ide-disk",
49
        .brightness_set         = spitzled_green_set,
50
};
51
 
52
#ifdef CONFIG_PM
53
static int spitzled_suspend(struct platform_device *dev, pm_message_t state)
54
{
55
#ifdef CONFIG_LEDS_TRIGGERS
56
        if (spitz_amber_led.trigger && strcmp(spitz_amber_led.trigger->name, "sharpsl-charge"))
57
#endif
58
                led_classdev_suspend(&spitz_amber_led);
59
        led_classdev_suspend(&spitz_green_led);
60
        return 0;
61
}
62
 
63
static int spitzled_resume(struct platform_device *dev)
64
{
65
        led_classdev_resume(&spitz_amber_led);
66
        led_classdev_resume(&spitz_green_led);
67
        return 0;
68
}
69
#endif
70
 
71
static int spitzled_probe(struct platform_device *pdev)
72
{
73
        int ret;
74
 
75
        if (machine_is_akita())
76
                spitz_green_led.default_trigger = "nand-disk";
77
 
78
        ret = led_classdev_register(&pdev->dev, &spitz_amber_led);
79
        if (ret < 0)
80
                return ret;
81
 
82
        ret = led_classdev_register(&pdev->dev, &spitz_green_led);
83
        if (ret < 0)
84
                led_classdev_unregister(&spitz_amber_led);
85
 
86
        return ret;
87
}
88
 
89
static int spitzled_remove(struct platform_device *pdev)
90
{
91
        led_classdev_unregister(&spitz_amber_led);
92
        led_classdev_unregister(&spitz_green_led);
93
 
94
        return 0;
95
}
96
 
97
static struct platform_driver spitzled_driver = {
98
        .probe          = spitzled_probe,
99
        .remove         = spitzled_remove,
100
#ifdef CONFIG_PM
101
        .suspend        = spitzled_suspend,
102
        .resume         = spitzled_resume,
103
#endif
104
        .driver         = {
105
                .name           = "spitz-led",
106
        },
107
};
108
 
109
static int __init spitzled_init(void)
110
{
111
        return platform_driver_register(&spitzled_driver);
112
}
113
 
114
static void __exit spitzled_exit(void)
115
{
116
        platform_driver_unregister(&spitzled_driver);
117
}
118
 
119
module_init(spitzled_init);
120
module_exit(spitzled_exit);
121
 
122
MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
123
MODULE_DESCRIPTION("Spitz LED driver");
124
MODULE_LICENSE("GPL");

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.