Thread (12 messages) flat view 12 messages, 4 authors, 2011-03-29

[PATCH] s3c2440: mini2440: Use leds-gpio driver for board leds handling.

From: Belisko Marek <hidden>
Date: 2011-03-29 09:59:17
Also in: lkml

This should be in-reply-to https://lkml.org/lkml/2011/3/29/79 comments

On Tue, Mar 29, 2011 at 11:53 AM, Marek Belisko
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
Intention of this patch is convert existing usage of leds-s3c24xx driver
to use generic gpio-leds driver. Leds are separated to 2 devices.
First device handle 4 available leds. Second device is used to drive
LCD backlight. Backlight can be controlled via parameter b so we need
separate device which is registered or not depending on parameter.

Signed-off-by: Marek Belisko <redacted>
---
?arch/arm/mach-s3c2440/mach-mini2440.c | ?121 +++++++++++++++------------------
?1 files changed, 54 insertions(+), 67 deletions(-)
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c
index 163d318..28ef6eb 100644
--- a/arch/arm/mach-s3c2440/mach-mini2440.c
+++ b/arch/arm/mach-s3c2440/mach-mini2440.c
@@ -419,81 +419,71 @@ static struct platform_device mini2440_button_device = {
?};

?/* LEDS */
-
-static struct s3c24xx_led_platdata mini2440_led1_pdata = {
- ? ? ? .name ? ? ? ? ? = "led1",
- ? ? ? .gpio ? ? ? ? ? = S3C2410_GPB(5),
- ? ? ? .flags ? ? ? ? ?= S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
- ? ? ? .def_trigger ? ?= "heartbeat",
-};
-
-static struct s3c24xx_led_platdata mini2440_led2_pdata = {
- ? ? ? .name ? ? ? ? ? = "led2",
- ? ? ? .gpio ? ? ? ? ? = S3C2410_GPB(6),
- ? ? ? .flags ? ? ? ? ?= S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
- ? ? ? .def_trigger ? ?= "nand-disk",
-};
-
-static struct s3c24xx_led_platdata mini2440_led3_pdata = {
- ? ? ? .name ? ? ? ? ? = "led3",
- ? ? ? .gpio ? ? ? ? ? = S3C2410_GPB(7),
- ? ? ? .flags ? ? ? ? ?= S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
- ? ? ? .def_trigger ? ?= "mmc0",
-};
-
-static struct s3c24xx_led_platdata mini2440_led4_pdata = {
- ? ? ? .name ? ? ? ? ? = "led4",
- ? ? ? .gpio ? ? ? ? ? = S3C2410_GPB(8),
- ? ? ? .flags ? ? ? ? ?= S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE,
- ? ? ? .def_trigger ? ?= "",
-};
-
-static struct s3c24xx_led_platdata mini2440_led_backlight_pdata = {
- ? ? ? .name ? ? ? ? ? = "backlight",
- ? ? ? .gpio ? ? ? ? ? = S3C2410_GPG(4),
- ? ? ? .def_trigger ? ?= "backlight",
+static struct gpio_led gpio_leds[] = {
+ ? ? ? {
+ ? ? ? ? ? ? ? .name ? ? ? ? ? ? ? ? ? = "led1",
+ ? ? ? ? ? ? ? .gpio ? ? ? ? ? ? ? ? ? = S3C2410_GPB(5),
+ ? ? ? ? ? ? ? .active_low ? ? ? ? ? ? = 1,
+ ? ? ? ? ? ? ? .default_trigger ? ? ? ?= "heartbeat",
+ ? ? ? },
+ ? ? ? {
+ ? ? ? ? ? ? ? .name ? ? ? ? ? ? ? ? ? = "led2",
+ ? ? ? ? ? ? ? .gpio ? ? ? ? ? ? ? ? ? = S3C2410_GPB(6),
+ ? ? ? ? ? ? ? .active_low ? ? ? ? ? ? = 1,
+ ? ? ? ? ? ? ? .default_trigger ? ? ? ?= "nand-disk",
+ ? ? ? ? ? ? ? .default_state ? ? ? ? ?= LEDS_GPIO_DEFSTATE_OFF,
+ ? ? ? },
+ ? ? ? {
+ ? ? ? ? ? ? ? .name ? ? ? ? ? ? ? ? ? = "led3",
+ ? ? ? ? ? ? ? .gpio ? ? ? ? ? ? ? ? ? = S3C2410_GPB(7),
+ ? ? ? ? ? ? ? .active_low ? ? ? ? ? ? = 1,
+ ? ? ? ? ? ? ? .default_trigger ? ? ? ?= "mmc0",
+ ? ? ? ? ? ? ? .default_state ? ? ? ? ?= LEDS_GPIO_DEFSTATE_OFF,
+ ? ? ? },
+ ? ? ? {
+ ? ? ? ? ? ? ? .name ? ? ? ? ? ? ? ? ? = "led4",
+ ? ? ? ? ? ? ? .gpio ? ? ? ? ? ? ? ? ? = S3C2410_GPB(8),
+ ? ? ? ? ? ? ? .active_low ? ? ? ? ? ? = 1,
+ ? ? ? ? ? ? ? .default_trigger ? ? ? ?= "none",
+ ? ? ? ? ? ? ? .default_state ? ? ? ? ?= LEDS_GPIO_DEFSTATE_OFF,
+ ? ? ? }
?};

-static struct platform_device mini2440_led1 = {
- ? ? ? .name ? ? ? ? ? = "s3c24xx_led",
- ? ? ? .id ? ? ? ? ? ? = 1,
- ? ? ? .dev ? ? ? ? ? ?= {
- ? ? ? ? ? ? ? .platform_data ?= &mini2440_led1_pdata,
- ? ? ? },
+static struct gpio_led backlight_led[] = {
+ ? ? ? {
+ ? ? ? ? ? ? ? .name ? ? ? ? ? ? ? ? ? = "backlight",
+ ? ? ? ? ? ? ? .gpio ? ? ? ? ? ? ? ? ? = S3C2410_GPG(4),
+ ? ? ? ? ? ? ? .active_low ? ? ? ? ? ? = 0,
+ ? ? ? ? ? ? ? .default_trigger ? ? ? ?= "backlight",
+ ? ? ? ? ? ? ? .default_state ? ? ? ? ?= LEDS_GPIO_DEFSTATE_ON,
+ ? ? ? }
?};

-static struct platform_device mini2440_led2 = {
- ? ? ? .name ? ? ? ? ? = "s3c24xx_led",
- ? ? ? .id ? ? ? ? ? ? = 2,
- ? ? ? .dev ? ? ? ? ? ?= {
- ? ? ? ? ? ? ? .platform_data ?= &mini2440_led2_pdata,
- ? ? ? },
+static struct gpio_led_platform_data gpio_led_info = {
+ ? ? ? .leds ? ? ? ? ? = gpio_leds,
+ ? ? ? .num_leds ? ? ? = ARRAY_SIZE(gpio_leds),
?};

-static struct platform_device mini2440_led3 = {
- ? ? ? .name ? ? ? ? ? = "s3c24xx_led",
- ? ? ? .id ? ? ? ? ? ? = 3,
- ? ? ? .dev ? ? ? ? ? ?= {
- ? ? ? ? ? ? ? .platform_data ?= &mini2440_led3_pdata,
- ? ? ? },
+static struct gpio_led_platform_data backlight_info = {
+ ? ? ? .leds ? ? ? ? ? = backlight_led,
+ ? ? ? .num_leds ? ? ? = ARRAY_SIZE(backlight_led),
?};

-static struct platform_device mini2440_led4 = {
- ? ? ? .name ? ? ? ? ? = "s3c24xx_led",
- ? ? ? .id ? ? ? ? ? ? = 4,
- ? ? ? .dev ? ? ? ? ? ?= {
- ? ? ? ? ? ? ? .platform_data ?= &mini2440_led4_pdata,
- ? ? ? },
+static struct platform_device mini2440_leds = {
+ ? ? ? .name ? = "leds-gpio",
+ ? ? ? .id ? ? = 0,
+ ? ? ? .dev ? ?= {
+ ? ? ? ? ? ? ? .platform_data ?= &gpio_led_info,
+ ? ? ? }
?};

?static struct platform_device mini2440_led_backlight = {
- ? ? ? .name ? ? ? ? ? = "s3c24xx_led",
- ? ? ? .id ? ? ? ? ? ? = 5,
- ? ? ? .dev ? ? ? ? ? ?= {
- ? ? ? ? ? ? ? .platform_data ?= &mini2440_led_backlight_pdata,
- ? ? ? },
+ ? ? ? .name ? = "leds-gpio",
+ ? ? ? .id ? ? = 1,
+ ? ? ? .dev ? ?= {
+ ? ? ? ? ? ? ? .platform_data ?= &backlight_info,
+ ? ? ? }
?};
-
?/* AUDIO */

?static struct s3c24xx_uda134x_platform_data mini2440_audio_pins = {
@@ -543,10 +533,7 @@ static struct platform_device *mini2440_devices[] __initdata = {
? ? ? ?&s3c_device_rtc,
? ? ? ?&s3c_device_usbgadget,
? ? ? ?&mini2440_device_eth,
- ? ? ? &mini2440_led1,
- ? ? ? &mini2440_led2,
- ? ? ? &mini2440_led3,
- ? ? ? &mini2440_led4,
+ ? ? ? &mini2440_leds,
? ? ? ?&mini2440_button_device,
? ? ? ?&s3c_device_nand,
? ? ? ?&s3c_device_sdi,
--
1.7.1
regards,

marek

-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
icq: 290551086
web: http://open-nandra.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help