Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 373663
b: refs/heads/master
c: 48a1d03
h: refs/heads/master
i:
  373661: 9702571
  373659: e99cdf3
  373655: 6d4bece
  373647: c7d4f4f
  373631: 997ec41
v: v3
  • Loading branch information
Kim, Milo authored and Bryan Wu committed Apr 1, 2013
1 parent bc7625e commit 2ca1c9f
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 39f7e08af3fd9ca1cb94a8270354afb2ea5cfcd3
refs/heads/master: 48a1d032c954b9b06c3adbf35ef4735dd70ab757
8 changes: 8 additions & 0 deletions trunk/drivers/leds/trigger/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,12 @@ config LEDS_TRIGGER_TRANSIENT
GPIO/PWM based hardware.
If unsure, say Y.

config LEDS_TRIGGER_CAMERA
tristate "LED Camera Flash/Torch Trigger"
depends on LEDS_TRIGGERS
help
This allows LEDs to be controlled as a camera flash/torch device.
This enables direct flash/torch on/off by the driver, kernel space.
If unsure, say Y.

endif # LEDS_TRIGGERS
1 change: 1 addition & 0 deletions trunk/drivers/leds/trigger/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o
obj-$(CONFIG_LEDS_TRIGGER_CPU) += ledtrig-cpu.o
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
obj-$(CONFIG_LEDS_TRIGGER_TRANSIENT) += ledtrig-transient.o
obj-$(CONFIG_LEDS_TRIGGER_CAMERA) += ledtrig-camera.o
57 changes: 57 additions & 0 deletions trunk/drivers/leds/trigger/ledtrig-camera.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Camera Flash and Torch On/Off Trigger
*
* based on ledtrig-ide-disk.c
*
* Copyright 2013 Texas Instruments
*
* Author: Milo(Woogyom) Kim <milo.kim@ti.com>
*
* 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.
*
*/

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/leds.h>

DEFINE_LED_TRIGGER(ledtrig_flash);
DEFINE_LED_TRIGGER(ledtrig_torch);

void ledtrig_flash_ctrl(bool on)
{
enum led_brightness brt = on ? LED_FULL : LED_OFF;

led_trigger_event(ledtrig_flash, brt);
}
EXPORT_SYMBOL_GPL(ledtrig_flash_ctrl);

void ledtrig_torch_ctrl(bool on)
{
enum led_brightness brt = on ? LED_FULL : LED_OFF;

led_trigger_event(ledtrig_torch, brt);
}
EXPORT_SYMBOL_GPL(ledtrig_torch_ctrl);

static int __init ledtrig_camera_init(void)
{
led_trigger_register_simple("flash", &ledtrig_flash);
led_trigger_register_simple("torch", &ledtrig_torch);
return 0;
}
module_init(ledtrig_camera_init);

static void __exit ledtrig_camera_exit(void)
{
led_trigger_unregister_simple(ledtrig_torch);
led_trigger_unregister_simple(ledtrig_flash);
}
module_exit(ledtrig_camera_exit);

MODULE_DESCRIPTION("LED Trigger for Camera Flash/Torch Control");
MODULE_AUTHOR("Milo Kim");
MODULE_LICENSE("GPL");
8 changes: 8 additions & 0 deletions trunk/include/linux/leds.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,14 @@ extern void ledtrig_ide_activity(void);
static inline void ledtrig_ide_activity(void) {}
#endif

#if defined(CONFIG_LEDS_TRIGGER_CAMERA) || defined(CONFIG_LEDS_TRIGGER_CAMERA_MODULE)
extern void ledtrig_flash_ctrl(bool on);
extern void ledtrig_torch_ctrl(bool on);
#else
static inline void ledtrig_flash_ctrl(bool on) {}
static inline void ledtrig_torch_ctrl(bool on) {}
#endif

/*
* Generic LED platform data for describing LED names and default triggers.
*/
Expand Down

0 comments on commit 2ca1c9f

Please sign in to comment.