aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/boards
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-10-21 01:27:51 -0400
committerPaul Mundt <lethal@linux-sh.org>2008-10-21 01:27:51 -0400
commitbbc97411d11b3a835c62904fddb5ce9ff457f5fa (patch)
treec250fe2d54b10b28a5a919ad0238eca3515db65f /arch/sh/boards
parent10bfc6e190c55b583ec312a6a8ef274924e16d8a (diff)
sh: rsk7203: leds-gpio support for RSK+ LEDs.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards')
-rw-r--r--arch/sh/boards/board-rsk7203.c42
1 files changed, 37 insertions, 5 deletions
diff --git a/arch/sh/boards/board-rsk7203.c b/arch/sh/boards/board-rsk7203.c
index c8114cdb95e8..58266f06134a 100644
--- a/arch/sh/boards/board-rsk7203.c
+++ b/arch/sh/boards/board-rsk7203.c
@@ -17,6 +17,7 @@
17#include <linux/mtd/map.h> 17#include <linux/mtd/map.h>
18#include <linux/smc911x.h> 18#include <linux/smc911x.h>
19#include <linux/gpio.h> 19#include <linux/gpio.h>
20#include <linux/leds.h>
20#include <asm/machvec.h> 21#include <asm/machvec.h>
21#include <asm/io.h> 22#include <asm/io.h>
22#include <cpu/sh7203.h> 23#include <cpu/sh7203.h>
@@ -116,10 +117,46 @@ static void __init set_mtd_partitions(void)
116 } 117 }
117} 118}
118 119
120static struct gpio_led rsk7203_gpio_leds[] = {
121 {
122 .name = "green",
123 .gpio = GPIO_PE10,
124 .active_low = 1,
125 }, {
126 .name = "orange",
127 .default_trigger = "nand-disk",
128 .gpio = GPIO_PE12,
129 .active_low = 1,
130 }, {
131 .name = "red:timer",
132 .default_trigger = "timer",
133 .gpio = GPIO_PC14,
134 .active_low = 1,
135 }, {
136 .name = "red:heartbeat",
137 .default_trigger = "heartbeat",
138 .gpio = GPIO_PE11,
139 .active_low = 1,
140 },
141};
142
143static struct gpio_led_platform_data rsk7203_gpio_leds_info = {
144 .leds = rsk7203_gpio_leds,
145 .num_leds = ARRAY_SIZE(rsk7203_gpio_leds),
146};
147
148static struct platform_device led_device = {
149 .name = "leds-gpio",
150 .id = -1,
151 .dev = {
152 .platform_data = &rsk7203_gpio_leds_info,
153 },
154};
119 155
120static struct platform_device *rsk7203_devices[] __initdata = { 156static struct platform_device *rsk7203_devices[] __initdata = {
121 &smc911x_device, 157 &smc911x_device,
122 &flash_device, 158 &flash_device,
159 &led_device,
123}; 160};
124 161
125static int __init rsk7203_devices_setup(void) 162static int __init rsk7203_devices_setup(void)
@@ -128,11 +165,6 @@ static int __init rsk7203_devices_setup(void)
128 gpio_request(GPIO_FN_TXD0, NULL); 165 gpio_request(GPIO_FN_TXD0, NULL);
129 gpio_request(GPIO_FN_RXD0, NULL); 166 gpio_request(GPIO_FN_RXD0, NULL);
130 167
131 /* Lit LED0 */
132 gpio_request(GPIO_PE10, NULL);
133 gpio_direction_output(GPIO_PE10, 0);
134 gpio_export(GPIO_PE10, 0);
135
136 set_mtd_partitions(); 168 set_mtd_partitions();
137 return platform_add_devices(rsk7203_devices, 169 return platform_add_devices(rsk7203_devices,
138 ARRAY_SIZE(rsk7203_devices)); 170 ARRAY_SIZE(rsk7203_devices));