From: Kyungmin Park Date: Fri, 4 Aug 2006 10:57:56 +0000 (+0300) Subject: [PATCH] ARM: OMAP: ARM: OMAP: LEDs driver support X-Git-Tag: v2.6.17-omap2~2 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=5757cc0458b968c8f02fec99f147ffaa7761cfd0;p=linux-2.6-omap-h63xx.git [PATCH] ARM: OMAP: ARM: OMAP: LEDs driver support ARM: OMAP: LEDs driver support OMAP GPIO LEDs support Signed-off-by: Kyungmin Park Signed-off-by: Tony Lindgren --- diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c index f30862e7d49..3c8fde39978 100644 --- a/arch/arm/mach-omap2/board-apollon.c +++ b/arch/arm/mach-omap2/board-apollon.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -31,6 +32,7 @@ #include #include +#include #include #include #include @@ -139,10 +141,45 @@ static struct platform_device apollon_lcd_device = { .id = -1, }; +static struct omap_led_config apollon_led_config[] = { + { + .cdev = { + .name = "apollon:led0", + }, + .gpio = LED0_GPIO13, + }, + { + .cdev = { + .name = "apollon:led1", + }, + .gpio = LED1_GPIO14, + }, + { + .cdev = { + .name = "apollon:led2", + }, + .gpio = LED2_GPIO15, + }, +}; + +static struct omap_led_platform_data apollon_led_data = { + .nr_leds = ARRAY_SIZE(apollon_led_config), + .leds = apollon_led_config, +}; + +static struct platform_device apollon_led_device = { + .name = "omap-led", + .id = -1, + .dev = { + .platform_data = &apollon_led_data, + }, +}; + static struct platform_device *apollon_devices[] __initdata = { &apollon_onenand_device, &apollon_smc91x_device, &apollon_lcd_device, + &apollon_led_device, }; static inline void __init apollon_init_smc91x(void) diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index 03865e7a3c0..be30bf643a5 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -70,6 +70,12 @@ config LEDS_OMAP_PWM This options enables support for LEDs connected to GPIO lines controlled by a PWM timer on OMAP CPUs. +config LEDS_OMAP + tristate "LED Support for OMAP GPIO LEDs" + depends LEDS_CLASS && ARCH_OMAP + help + This option enables support for the LEDs on OMAP processors. + comment "LED Triggers" config LEDS_TRIGGERS diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile index fd7313191fc..cd3dc5397a8 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile @@ -11,6 +11,7 @@ obj-$(CONFIG_LEDS_SPITZ) += leds-spitz.o obj-$(CONFIG_LEDS_IXP4XX) += leds-ixp4xx-gpio.o obj-$(CONFIG_LEDS_TOSA) += leds-tosa.o obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c24xx.o +obj-$(CONFIG_LEDS_OMAP) += leds-omap.o obj-$(CONFIG_LEDS_OMAP_PWM) += leds-omap-pwm.o # LED Triggers diff --git a/include/asm-arm/arch-omap/led.h b/include/asm-arm/arch-omap/led.h new file mode 100644 index 00000000000..f3acae28e2d --- /dev/null +++ b/include/asm-arm/arch-omap/led.h @@ -0,0 +1,24 @@ +/* + * linux/include/asm-arm/arch-omap/led.h + * + * Copyright (C) 2006 Samsung Electronics + * Kyungmin Park + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef ASMARM_ARCH_LED_H +#define ASMARM_ARCH_LED_H + +struct omap_led_config { + struct led_classdev cdev; + s16 gpio; +}; + +struct omap_led_platform_data { + s16 nr_leds; + struct omap_led_config *leds; +}; + +#endif