From 7a444ee080c5f1a62ac5042f1e7926622b3e1ce7 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@openembedded.org>
Date: Fri, 30 May 2008 13:43:36 +0200
Subject: [PATCH] ARM: OMAP: omap3beagle: add a platform device to hook up the GPIO leds to the leds-gpio driver

omap3beagle: add a platform device to hook up the GPIO leds to the leds-gpio driver
 * on revision A5 and earlier board the two leds can't be controlled seperately, should be fixed in rev. B and C boards.

Signed-off-by: Koen Kooi <koen@openembedded.org>
---
 arch/arm/mach-omap2/board-omap3beagle.c |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index c992cc7..83891fc 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -19,6 +19,7 @@
 #include <linux/err.h>
 #include <linux/clk.h>
 #include <linux/io.h>
+#include <linux/leds.h>
 
 #include <asm/hardware.h>
 #include <asm/mach-types.h>
@@ -72,6 +73,32 @@ static struct omap_lcd_config omap3_beagle_lcd_config __initdata = {
 	.ctrl_name	= "internal",
 };
 
+struct gpio_led gpio_leds[] = {
+	{
+		.name = "beagleboard::led0",
+		.default_trigger = "none",
+		.gpio = 149,
+	},
+	{
+		.name = "beagleboard::led1",
+		.default_trigger = "none",
+		.gpio = 150,
+	},
+};
+
+static struct gpio_led_platform_data gpio_led_info = {
+	.leds = gpio_leds,
+	.num_leds = ARRAY_SIZE(gpio_leds),
+};
+
+static struct platform_device leds_gpio = {
+	.name = "leds-gpio",
+	.id   = -1,
+	.dev  = {
+		.platform_data = &gpio_led_info,
+	},
+};
+
 static struct omap_board_config_kernel omap3_beagle_config[] __initdata = {
 	{ OMAP_TAG_UART,	&omap3_beagle_uart_config },
 	{ OMAP_TAG_MMC,		&omap3beagle_mmc_config },
@@ -83,6 +110,7 @@ static struct platform_device *omap3_beagle_devices[] __initdata = {
 #ifdef CONFIG_RTC_DRV_TWL4030
 	&omap3_beagle_twl4030rtc_device,
 #endif
+	&leds_gpio,
 };
 
 static void __init omap3_beagle_init(void)
-- 
1.5.4.3

