mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-07 09:09:23 +00:00
OMAP1: Amstrad Delta: add camera controlled LEDS trigger
This patch extends the Amstrad Delta camera support with LEDS trigger that can be used for automatic control of the on-board camera LED. The led turns on automatically on camera device open and turns off on camera device close. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
8452e9ef2b
commit
243e76b426
1 changed files with 24 additions and 0 deletions
|
@ -16,6 +16,7 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/leds.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/serial_8250.h>
|
#include <linux/serial_8250.h>
|
||||||
|
|
||||||
|
@ -222,11 +223,30 @@ static struct i2c_board_info ams_delta_camera_board_info[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_LEDS_TRIGGERS
|
||||||
|
DEFINE_LED_TRIGGER(ams_delta_camera_led_trigger);
|
||||||
|
|
||||||
|
static int ams_delta_camera_power(struct device *dev, int power)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* turn on camera LED
|
||||||
|
*/
|
||||||
|
if (power)
|
||||||
|
led_trigger_event(ams_delta_camera_led_trigger, LED_FULL);
|
||||||
|
else
|
||||||
|
led_trigger_event(ams_delta_camera_led_trigger, LED_OFF);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#define ams_delta_camera_power NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
static struct soc_camera_link __initdata ams_delta_iclink = {
|
static struct soc_camera_link __initdata ams_delta_iclink = {
|
||||||
.bus_id = 0, /* OMAP1 SoC camera bus */
|
.bus_id = 0, /* OMAP1 SoC camera bus */
|
||||||
.i2c_adapter_id = 1,
|
.i2c_adapter_id = 1,
|
||||||
.board_info = &ams_delta_camera_board_info[0],
|
.board_info = &ams_delta_camera_board_info[0],
|
||||||
.module_name = "ov6650",
|
.module_name = "ov6650",
|
||||||
|
.power = ams_delta_camera_power,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct platform_device ams_delta_camera_device = {
|
static struct platform_device ams_delta_camera_device = {
|
||||||
|
@ -281,6 +301,10 @@ static void __init ams_delta_init(void)
|
||||||
|
|
||||||
omap1_usb_init(&ams_delta_usb_config);
|
omap1_usb_init(&ams_delta_usb_config);
|
||||||
omap1_set_camera_info(&ams_delta_camera_platform_data);
|
omap1_set_camera_info(&ams_delta_camera_platform_data);
|
||||||
|
#ifdef CONFIG_LEDS_TRIGGERS
|
||||||
|
led_trigger_register_simple("ams_delta_camera",
|
||||||
|
&ams_delta_camera_led_trigger);
|
||||||
|
#endif
|
||||||
platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices));
|
platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices));
|
||||||
|
|
||||||
#ifdef CONFIG_AMS_DELTA_FIQ
|
#ifdef CONFIG_AMS_DELTA_FIQ
|
||||||
|
|
Loading…
Reference in a new issue