1d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
248a1d032SKim, Milo /*
348a1d032SKim, Milo  * Camera Flash and Torch On/Off Trigger
448a1d032SKim, Milo  *
548a1d032SKim, Milo  * based on ledtrig-ide-disk.c
648a1d032SKim, Milo  *
748a1d032SKim, Milo  * Copyright 2013 Texas Instruments
848a1d032SKim, Milo  *
948a1d032SKim, Milo  * Author: Milo(Woogyom) Kim <milo.kim@ti.com>
1048a1d032SKim, Milo  */
1148a1d032SKim, Milo 
1248a1d032SKim, Milo #include <linux/module.h>
1348a1d032SKim, Milo #include <linux/kernel.h>
1448a1d032SKim, Milo #include <linux/init.h>
1548a1d032SKim, Milo #include <linux/leds.h>
1648a1d032SKim, Milo 
1748a1d032SKim, Milo DEFINE_LED_TRIGGER(ledtrig_flash);
1848a1d032SKim, Milo DEFINE_LED_TRIGGER(ledtrig_torch);
1948a1d032SKim, Milo 
ledtrig_flash_ctrl(bool on)2048a1d032SKim, Milo void ledtrig_flash_ctrl(bool on)
2148a1d032SKim, Milo {
2248a1d032SKim, Milo 	enum led_brightness brt = on ? LED_FULL : LED_OFF;
2348a1d032SKim, Milo 
2448a1d032SKim, Milo 	led_trigger_event(ledtrig_flash, brt);
2548a1d032SKim, Milo }
2648a1d032SKim, Milo EXPORT_SYMBOL_GPL(ledtrig_flash_ctrl);
2748a1d032SKim, Milo 
ledtrig_torch_ctrl(bool on)2848a1d032SKim, Milo void ledtrig_torch_ctrl(bool on)
2948a1d032SKim, Milo {
3048a1d032SKim, Milo 	enum led_brightness brt = on ? LED_FULL : LED_OFF;
3148a1d032SKim, Milo 
3248a1d032SKim, Milo 	led_trigger_event(ledtrig_torch, brt);
3348a1d032SKim, Milo }
3448a1d032SKim, Milo EXPORT_SYMBOL_GPL(ledtrig_torch_ctrl);
3548a1d032SKim, Milo 
ledtrig_camera_init(void)3648a1d032SKim, Milo static int __init ledtrig_camera_init(void)
3748a1d032SKim, Milo {
3848a1d032SKim, Milo 	led_trigger_register_simple("flash", &ledtrig_flash);
3948a1d032SKim, Milo 	led_trigger_register_simple("torch", &ledtrig_torch);
4048a1d032SKim, Milo 	return 0;
4148a1d032SKim, Milo }
4248a1d032SKim, Milo module_init(ledtrig_camera_init);
4348a1d032SKim, Milo 
ledtrig_camera_exit(void)4448a1d032SKim, Milo static void __exit ledtrig_camera_exit(void)
4548a1d032SKim, Milo {
4648a1d032SKim, Milo 	led_trigger_unregister_simple(ledtrig_torch);
4748a1d032SKim, Milo 	led_trigger_unregister_simple(ledtrig_flash);
4848a1d032SKim, Milo }
4948a1d032SKim, Milo module_exit(ledtrig_camera_exit);
5048a1d032SKim, Milo 
5148a1d032SKim, Milo MODULE_DESCRIPTION("LED Trigger for Camera Flash/Torch Control");
5248a1d032SKim, Milo MODULE_AUTHOR("Milo Kim");
53033692ebSUwe Kleine-König MODULE_LICENSE("GPL v2");
54