Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Camera Flash and Torch On/Off Trigger
0004  *
0005  * based on ledtrig-ide-disk.c
0006  *
0007  * Copyright 2013 Texas Instruments
0008  *
0009  * Author: Milo(Woogyom) Kim <milo.kim@ti.com>
0010  */
0011 
0012 #include <linux/module.h>
0013 #include <linux/kernel.h>
0014 #include <linux/init.h>
0015 #include <linux/leds.h>
0016 
0017 DEFINE_LED_TRIGGER(ledtrig_flash);
0018 DEFINE_LED_TRIGGER(ledtrig_torch);
0019 
0020 void ledtrig_flash_ctrl(bool on)
0021 {
0022     enum led_brightness brt = on ? LED_FULL : LED_OFF;
0023 
0024     led_trigger_event(ledtrig_flash, brt);
0025 }
0026 EXPORT_SYMBOL_GPL(ledtrig_flash_ctrl);
0027 
0028 void ledtrig_torch_ctrl(bool on)
0029 {
0030     enum led_brightness brt = on ? LED_FULL : LED_OFF;
0031 
0032     led_trigger_event(ledtrig_torch, brt);
0033 }
0034 EXPORT_SYMBOL_GPL(ledtrig_torch_ctrl);
0035 
0036 static int __init ledtrig_camera_init(void)
0037 {
0038     led_trigger_register_simple("flash", &ledtrig_flash);
0039     led_trigger_register_simple("torch", &ledtrig_torch);
0040     return 0;
0041 }
0042 module_init(ledtrig_camera_init);
0043 
0044 static void __exit ledtrig_camera_exit(void)
0045 {
0046     led_trigger_unregister_simple(ledtrig_torch);
0047     led_trigger_unregister_simple(ledtrig_flash);
0048 }
0049 module_exit(ledtrig_camera_exit);
0050 
0051 MODULE_DESCRIPTION("LED Trigger for Camera Flash/Torch Control");
0052 MODULE_AUTHOR("Milo Kim");
0053 MODULE_LICENSE("GPL v2");