leds: lm355x, lm3642: support camera LED triggers for flash and torch
authorKim, Milo <Milo.Kim@ti.com>
Thu, 14 Mar 2013 11:29:26 +0000 (04:29 -0700)
committerBryan Wu <cooloney@gmail.com>
Mon, 1 Apr 2013 18:04:50 +0000 (11:04 -0700)
LM355x and LM3642 support flash and torch functionality.

 (Camera driver)          (LED trigger for camera)       (LED driver)
 Turn on the flash  ...>  ledtrig_flash_ctrl(true) ...>  LM355x or LM3642
                                                         brightness ctrl
                                                       <actual driving here>

Flash/torch LEDs are controlled by other driver using LED camera trigger
APIs, ledtrig_flash_ctrl()/ledtrig_torch_ctrl().
Then, actual device control is activated by each LED driver such like
LM355x or LM3642.

Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
drivers/leds/leds-lm355x.c
drivers/leds/leds-lm3642.c

index 4117235..d81a8e7 100644 (file)
@@ -477,6 +477,7 @@ static int lm355x_probe(struct i2c_client *client,
        chip->cdev_flash.name = "flash";
        chip->cdev_flash.max_brightness = 16;
        chip->cdev_flash.brightness_set = lm355x_strobe_brightness_set;
+       chip->cdev_flash.default_trigger = "flash";
        err = led_classdev_register((struct device *)
                                    &client->dev, &chip->cdev_flash);
        if (err < 0)
@@ -486,6 +487,7 @@ static int lm355x_probe(struct i2c_client *client,
        chip->cdev_torch.name = "torch";
        chip->cdev_torch.max_brightness = 8;
        chip->cdev_torch.brightness_set = lm355x_torch_brightness_set;
+       chip->cdev_torch.default_trigger = "torch";
        err = led_classdev_register((struct device *)
                                    &client->dev, &chip->cdev_torch);
        if (err < 0)
index 9f428d9..f361bbe 100644 (file)
@@ -363,6 +363,7 @@ static int lm3642_probe(struct i2c_client *client,
        chip->cdev_flash.name = "flash";
        chip->cdev_flash.max_brightness = 16;
        chip->cdev_flash.brightness_set = lm3642_strobe_brightness_set;
+       chip->cdev_flash.default_trigger = "flash";
        err = led_classdev_register((struct device *)
                                    &client->dev, &chip->cdev_flash);
        if (err < 0) {
@@ -380,6 +381,7 @@ static int lm3642_probe(struct i2c_client *client,
        chip->cdev_torch.name = "torch";
        chip->cdev_torch.max_brightness = 8;
        chip->cdev_torch.brightness_set = lm3642_torch_brightness_set;
+       chip->cdev_torch.default_trigger = "torch";
        err = led_classdev_register((struct device *)
                                    &client->dev, &chip->cdev_torch);
        if (err < 0) {