소스 검색

sh: rsk7203: leds-gpio support for RSK+ LEDs.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 16 년 전
부모
커밋
bbc97411d1
1개의 변경된 파일37개의 추가작업 그리고 5개의 파일을 삭제
  1. 37 5
      arch/sh/boards/board-rsk7203.c

+ 37 - 5
arch/sh/boards/board-rsk7203.c

@@ -17,6 +17,7 @@
 #include <linux/mtd/map.h>
 #include <linux/smc911x.h>
 #include <linux/gpio.h>
+#include <linux/leds.h>
 #include <asm/machvec.h>
 #include <asm/io.h>
 #include <cpu/sh7203.h>
@@ -116,10 +117,46 @@ static void __init set_mtd_partitions(void)
 	}
 }
 
+static struct gpio_led rsk7203_gpio_leds[] = {
+	{
+		.name			= "green",
+		.gpio			= GPIO_PE10,
+		.active_low		= 1,
+	}, {
+		.name			= "orange",
+		.default_trigger	= "nand-disk",
+		.gpio			= GPIO_PE12,
+		.active_low		= 1,
+	}, {
+		.name			= "red:timer",
+		.default_trigger	= "timer",
+		.gpio			= GPIO_PC14,
+		.active_low		= 1,
+	}, {
+		.name			= "red:heartbeat",
+		.default_trigger	= "heartbeat",
+		.gpio			= GPIO_PE11,
+		.active_low		= 1,
+	},
+};
+
+static struct gpio_led_platform_data rsk7203_gpio_leds_info = {
+	.leds		= rsk7203_gpio_leds,
+	.num_leds	= ARRAY_SIZE(rsk7203_gpio_leds),
+};
+
+static struct platform_device led_device = {
+	.name		= "leds-gpio",
+	.id		= -1,
+	.dev		= {
+		.platform_data	= &rsk7203_gpio_leds_info,
+	},
+};
 
 static struct platform_device *rsk7203_devices[] __initdata = {
 	&smc911x_device,
 	&flash_device,
+	&led_device,
 };
 
 static int __init rsk7203_devices_setup(void)
@@ -128,11 +165,6 @@ static int __init rsk7203_devices_setup(void)
 	gpio_request(GPIO_FN_TXD0, NULL);
 	gpio_request(GPIO_FN_RXD0, NULL);
 
-	/* Lit LED0 */
-	gpio_request(GPIO_PE10, NULL);
-	gpio_direction_output(GPIO_PE10, 0);
-	gpio_export(GPIO_PE10, 0);
-
 	set_mtd_partitions();
 	return platform_add_devices(rsk7203_devices,
 				    ARRAY_SIZE(rsk7203_devices));