]>
Commit | Line | Data |
---|---|---|
ac67e23b PS |
1 | /* |
2 | * LEDs driver for the "User LED" on Routerboard532 | |
3 | * | |
4 | * Copyright (C) 2009 Phil Sutter <[email protected]> | |
5 | * | |
6 | * Based on leds-cobalt-qube.c by Florian Fainelly and | |
7 | * rb-diag.c (my own standalone driver for both LED and | |
8 | * button of Routerboard532). | |
9 | */ | |
10 | ||
11 | #include <linux/leds.h> | |
12 | #include <linux/module.h> | |
13 | #include <linux/platform_device.h> | |
14 | ||
15 | #include <asm/mach-rc32434/gpio.h> | |
16 | #include <asm/mach-rc32434/rb.h> | |
17 | ||
18 | static void rb532_led_set(struct led_classdev *cdev, | |
7a0eff4d | 19 | enum led_brightness brightness) |
ac67e23b PS |
20 | { |
21 | if (brightness) | |
22 | set_latch_u5(LO_ULED, 0); | |
23 | ||
24 | else | |
25 | set_latch_u5(0, LO_ULED); | |
26 | } | |
27 | ||
28 | static enum led_brightness rb532_led_get(struct led_classdev *cdev) | |
29 | { | |
30 | return (get_latch_u5() & LO_ULED) ? LED_FULL : LED_OFF; | |
31 | } | |
32 | ||
33 | static struct led_classdev rb532_uled = { | |
34 | .name = "uled", | |
35 | .brightness_set = rb532_led_set, | |
36 | .brightness_get = rb532_led_get, | |
37 | .default_trigger = "nand-disk", | |
38 | }; | |
39 | ||
98ea1ea2 | 40 | static int rb532_led_probe(struct platform_device *pdev) |
ac67e23b PS |
41 | { |
42 | return led_classdev_register(&pdev->dev, &rb532_uled); | |
43 | } | |
44 | ||
678e8a6b | 45 | static int rb532_led_remove(struct platform_device *pdev) |
ac67e23b PS |
46 | { |
47 | led_classdev_unregister(&rb532_uled); | |
48 | return 0; | |
49 | } | |
50 | ||
51 | static struct platform_driver rb532_led_driver = { | |
52 | .probe = rb532_led_probe, | |
df07cf81 | 53 | .remove = rb532_led_remove, |
ac67e23b PS |
54 | .driver = { |
55 | .name = "rb532-led", | |
ac67e23b PS |
56 | }, |
57 | }; | |
58 | ||
892a8843 | 59 | module_platform_driver(rb532_led_driver); |
ac67e23b PS |
60 | |
61 | MODULE_LICENSE("GPL"); | |
62 | MODULE_DESCRIPTION("User LED support for Routerboard532"); | |
63 | MODULE_AUTHOR("Phil Sutter <[email protected]>"); | |
892a8843 | 64 | MODULE_ALIAS("platform:rb532-led"); |