diff options
Diffstat (limited to 'arch/mips/mti-sead3/leds-sead3.c')
-rw-r--r-- | arch/mips/mti-sead3/leds-sead3.c | 41 |
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 | |||
18 | static struct platform_device *pdev; | ||
19 | 18 | ||
20 | static void sead3_pled_set(struct led_classdev *led_cdev, | 19 | static 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 | ||
27 | static void sead3_fled_set(struct led_classdev *led_cdev, | 25 | static 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 | ||
34 | static struct led_classdev sead3_pled = { | 31 | static 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 | ||
76 | static int __init sead3_led_init(void) | 73 | module_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 | |||
91 | out: | ||
92 | return ret; | ||
93 | } | ||
94 | |||
95 | static void __exit sead3_led_exit(void) | ||
96 | { | ||
97 | platform_device_unregister(pdev); | ||
98 | platform_driver_unregister(&sead3_led_driver); | ||
99 | } | ||
100 | |||
101 | module_init(sead3_led_init); | ||
102 | module_exit(sead3_led_exit); | ||
103 | 74 | ||
104 | MODULE_AUTHOR("Kristian Kielhofner <kris@krisk.org>"); | 75 | MODULE_AUTHOR("Kristian Kielhofner <kris@krisk.org>"); |
105 | MODULE_DESCRIPTION("SEAD3 LED driver"); | 76 | MODULE_DESCRIPTION("SEAD3 LED driver"); |