diff options
Diffstat (limited to 'drivers/staging/camera_flash/camera_flash.h')
-rw-r--r-- | drivers/staging/camera_flash/camera_flash.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/drivers/staging/camera_flash/camera_flash.h b/drivers/staging/camera_flash/camera_flash.h new file mode 100644 index 00000000000..15faf706dc9 --- /dev/null +++ b/drivers/staging/camera_flash/camera_flash.h @@ -0,0 +1,74 @@ +#ifndef __CAMERA_FLASH_H__ +#define __CAMERA_FLASH_H__ + +#define FLASH_NAME_SIZE (20) + +struct flash_mode_details { + unsigned long led_type; + unsigned long max_intensity_uAmp; + unsigned long min_intensity_uAmp; + unsigned long max_strobe_duration_uSecs; + unsigned long feature_bitmap; + unsigned char nbFaultRegisters; +}; + +/*feature_bitmap (in struct flash_mode_details) bit values*/ +#define INTENSITY_PROGRAMMABLE (0x01) +#define DURATION_PROGRAMMABLE (0x02) +#define TIMEOUT_PROGRAMMABLE (0x04) + +/*Status word returned by driver has status in lower 16 bits + *and Error in higher 16 bits. definition of status and error + *bits are there in flash_bitfields.h + */ +#define SET_FLASH_STATUS(_bitmap, _status) (_bitmap |= (_status & 0xffff)) +#define CLR_FLASH_STATUS(_bitmap, _status) (_bitmap &= ~(_status & 0xffff)) +#define SET_FLASH_ERROR(_bitmap, _status) (_bitmap |= (_status << 16)) +#define CLR_FLASH_ERROR(_bitmap, _status) (_bitmap &= ~(_status << 16)) +#define GET_FLASH_STATUS(_bitmap) (_bitmap & 0xffff) +#define GET_FLASH_ERROR(_bitmap) (_bitmap >> 16) + +struct flash_mode_params { + unsigned long duration_uSecs; + unsigned long intensity_uAmp; + unsigned long timeout_uSecs; +}; + +struct flash_ioctl_args_t { + unsigned long flash_mode; + unsigned long cam; + unsigned long status; + union mode_arg{ + struct flash_mode_details details; + struct flash_mode_params params; + unsigned long strobe_enable; + } mode_arg; +}; + +#define FLASH_MAGIC_NUMBER 0x17 +#define FLASH_GET_MODES _IOR(FLASH_MAGIC_NUMBER, 1,\ +struct flash_ioctl_args_t *) +#define FLASH_GET_MODE_DETAILS _IOWR(FLASH_MAGIC_NUMBER, 2,\ +struct flash_ioctl_args_t *) +#define FLASH_ENABLE_MODE _IOW(FLASH_MAGIC_NUMBER, 3,\ +struct flash_ioctl_args_t *) +#define FLASH_DISABLE_MODE _IOW(FLASH_MAGIC_NUMBER, 4,\ +struct flash_ioctl_args_t *) +#define FLASH_CONFIGURE_MODE _IOW(FLASH_MAGIC_NUMBER, 5,\ +struct flash_ioctl_args_t *) +#define FLASH_TRIGGER_STROBE _IOW(FLASH_MAGIC_NUMBER, 6,\ +struct flash_ioctl_args_t *) +#define FLASH_GET_STATUS _IOW(FLASH_MAGIC_NUMBER, 7,\ +struct flash_ioctl_args_t *) +#define FLASH_GET_LIFE_COUNTER _IOW(FLASH_MAGIC_NUMBER, 8,\ +struct flash_ioctl_args_t *) +#define FLASH_GET_SELF_TEST_MODES _IOR(FLASH_MAGIC_NUMBER, 9,\ +struct flash_ioctl_args_t *) +#define FLASH_SELF_TEST _IOW(FLASH_MAGIC_NUMBER, 10,\ +struct flash_ioctl_args_t *) +#define FLASH_GET_FAULT_REGISTERS _IOR(FLASH_MAGIC_NUMBER, 11,\ +struct flash_ioctl_args_t *) +#define FLASH_GET_SELF_TEST_RESULT _IOR(FLASH_MAGIC_NUMBER, 12,\ +struct flash_ioctl_args_t *) + +#endif |