aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/mti-sead3/leds-sead3.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/mti-sead3/leds-sead3.c')
-rw-r--r--arch/mips/mti-sead3/leds-sead3.c41
1 files changed, 6 insertions, 35 deletions
diff --git a/arch/mips/mti-sead3/leds-sead3.c b/arch/mips/mti-sead3/leds-sead3.c
index 3abe47b316aa..c938ceeb8848 100644
--- a/arch/mips/mti-sead3/leds-sead3.c
+++ b/arch/mips/mti-sead3/leds-sead3.c
@@ -4,6 +4,7 @@
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved. 6 * Copyright (C) 2012 MIPS Technologies, Inc. All rights reserved.
7 * Copyright (C) 2015 Imagination Technologies, Inc.
7 */ 8 */
8#include <linux/kernel.h> 9#include <linux/kernel.h>
9#include <linux/module.h> 10#include <linux/module.h>
@@ -13,22 +14,18 @@
13#include <linux/err.h> 14#include <linux/err.h>
14#include <linux/io.h> 15#include <linux/io.h>
15 16
16#define DRVNAME "sead3-led" 17#include <asm/mips-boards/sead3-addr.h>
17
18static struct platform_device *pdev;
19 18
20static void sead3_pled_set(struct led_classdev *led_cdev, 19static void sead3_pled_set(struct led_classdev *led_cdev,
21 enum led_brightness value) 20 enum led_brightness value)
22{ 21{
23 pr_debug("sead3_pled_set\n"); 22 writel(value, (void __iomem *)SEAD3_CPLD_P_LED);
24 writel(value, (void __iomem *)0xBF000210); /* FIXME */
25} 23}
26 24
27static void sead3_fled_set(struct led_classdev *led_cdev, 25static void sead3_fled_set(struct led_classdev *led_cdev,
28 enum led_brightness value) 26 enum led_brightness value)
29{ 27{
30 pr_debug("sead3_fled_set\n"); 28 writel(value, (void __iomem *)SEAD3_CPLD_F_LED);
31 writel(value, (void __iomem *)0xBF000218); /* FIXME */
32} 29}
33 30
34static struct led_classdev sead3_pled = { 31static struct led_classdev sead3_pled = {
@@ -69,37 +66,11 @@ static struct platform_driver sead3_led_driver = {
69 .probe = sead3_led_probe, 66 .probe = sead3_led_probe,
70 .remove = sead3_led_remove, 67 .remove = sead3_led_remove,
71 .driver = { 68 .driver = {
72 .name = DRVNAME, 69 .name = "sead3-led",
73 }, 70 },
74}; 71};
75 72
76static int __init sead3_led_init(void) 73module_platform_driver(sead3_led_driver);
77{
78 int ret;
79
80 ret = platform_driver_register(&sead3_led_driver);
81 if (ret < 0)
82 goto out;
83
84 pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0);
85 if (IS_ERR(pdev)) {
86 ret = PTR_ERR(pdev);
87 platform_driver_unregister(&sead3_led_driver);
88 goto out;
89 }
90
91out:
92 return ret;
93}
94
95static void __exit sead3_led_exit(void)
96{
97 platform_device_unregister(pdev);
98 platform_driver_unregister(&sead3_led_driver);
99}
100
101module_init(sead3_led_init);
102module_exit(sead3_led_exit);
103 74
104MODULE_AUTHOR("Kristian Kielhofner <kris@krisk.org>"); 75MODULE_AUTHOR("Kristian Kielhofner <kris@krisk.org>");
105MODULE_DESCRIPTION("SEAD3 LED driver"); 76MODULE_DESCRIPTION("SEAD3 LED driver");