HTC Dream: Hook up LEDs

Pavel Machek pavel at ucw.cz
Sun Mar 14 16:16:10 EDT 2010


Hook up LEDS on HTC Dream. 

(#ifdef CONFIG_LEDS_GPIO_PLATFORM is actually neccessary, otherwise it
breaks boot if CONFIG_LEDS_GPIO_PLATFORM is not set).

Signed-off-by: Pavel Machek <pavel at ucw.cz>

diff --git a/arch/arm/mach-msm/board-dream.c b/arch/arm/mach-msm/board-dream.c
index f48c797..9ef7cc8 100644
--- a/arch/arm/mach-msm/board-dream.c
+++ b/arch/arm/mach-msm/board-dream.c
@@ -17,6 +17,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
+#include <linux/leds.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -153,6 +154,31 @@ static struct platform_device trout_nav_device = {
 };
 #endif
 
+
+static struct gpio_led android_led_list[] = {
+	{
+		.name = "keyboard-backlight",
+		.gpio = TROUT_GPIO_QTKEY_LED_EN,
+	},
+	{
+		.name = "button-backlight",
+		.gpio = TROUT_GPIO_UI_LED_EN,
+	},
+};
+
+static struct gpio_led_platform_data android_leds_data = {
+	.num_leds	= ARRAY_SIZE(android_led_list),
+	.leds		= android_led_list,
+};
+
+static struct platform_device android_leds = {
+	.name		= "leds-gpio",
+	.id		= -1,
+	.dev		= {
+		.platform_data = &android_leds_data,
+	},
+};
+
 /*
  * Core stuff
  */
@@ -168,6 +194,9 @@ static struct platform_device *devices[] __initdata = {
 #ifdef CONFIG_INPUT_GPIO
 	&trout_nav_device,
 #endif
+#ifdef CONFIG_LEDS_GPIO_PLATFORM
+	&android_leds,
+#endif
 };
 
 extern struct sys_timer msm_timer;

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html



More information about the linux-arm-kernel mailing list