S3C: Add a flag to allow leds to start "on"
authorMichel Pollet <buserror@gmail.com>
Wed, 13 May 2009 10:48:01 +0000 (13 11:48 +0100)
committerMichel Pollet <buserror@gmail.com>
Sun, 22 Nov 2009 15:16:13 +0000 (22 15:16 +0000)
Gives a way to start a LED in the "on" state, to use with the backlight trigger for example.

Signed-off-by: Michel Pollet <buserror@gmail.com>
arch/arm/mach-s3c2410/include/mach/leds-gpio.h
drivers/leds/leds-s3c24xx.c

index d8a7672..d89a074 100644 (file)
@@ -16,6 +16,7 @@
 
 #define S3C24XX_LEDF_ACTLOW    (1<<0)          /* LED is on when GPIO low */
 #define S3C24XX_LEDF_TRISTATE  (1<<1)          /* tristate to turn off */
+#define S3C24XX_LEDF_STARTON   (1<<2)          /* Initialise 'on' */
 
 struct s3c24xx_led_platdata {
        unsigned int             gpio;
index aa7acf3..505612c 100644 (file)
@@ -84,6 +84,7 @@ static int s3c24xx_led_probe(struct platform_device *dev)
        led->cdev.default_trigger = pdata->def_trigger;
        led->cdev.name = pdata->name;
        led->cdev.flags |= LED_CORE_SUSPENDRESUME;
+       led->cdev.brightness = pdata->flags & S3C24XX_LEDF_STARTON ? 1 : 0;
 
        led->pdata = pdata;
 
@@ -94,7 +95,8 @@ static int s3c24xx_led_probe(struct platform_device *dev)
                s3c2410_gpio_cfgpin(pdata->gpio, S3C2410_GPIO_INPUT);
        } else {
                s3c2410_gpio_pullup(pdata->gpio, 0);
-               s3c2410_gpio_setpin(pdata->gpio, 0);
+               /* backlight led needs to be turned on early on */
+               s3c2410_gpio_setpin(pdata->gpio, led->cdev.brightness);
                s3c2410_gpio_cfgpin(pdata->gpio, S3C2410_GPIO_OUTPUT);
        }