flash_led_ioctl.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef _FLASH_LED_IOCTL_H_
  2. #define _FLASH_LED_IOCTL_H_
  3. #include <linux/ioctl.h>
  4. #define FLASH_LED_IOCTL_MAGIC 'f'
  5. #define FLASH_LED_IOCTL_ENABLE_CH _IOWR(FLASH_LED_IOCTL_MAGIC, 1, int)
  6. #define FLASH_LED_IOCTL_DISABLE_CH _IOWR(FLASH_LED_IOCTL_MAGIC, 2, int)
  7. #define FLASH_LED_IOCTL_SET_MODE _IOWR(FLASH_LED_IOCTL_MAGIC, 3, int)
  8. #define FLASH_LED_IOCTL_SET_FLASH_BRIGHT _IOWR(FLASH_LED_IOCTL_MAGIC, 4, int)
  9. #define FLASH_LED_IOCTL_SET_TORCH_BRIGHT _IOWR(FLASH_LED_IOCTL_MAGIC, 5, int)
  10. #define FLASH_LED_IOCTL_WRITE_REG _IOWR(FLASH_LED_IOCTL_MAGIC, 6, int)
  11. #define FLASH_LED_IOCTL_READ_REG _IOWR(FLASH_LED_IOCTL_MAGIC, 7, int)
  12. #define FLASH_LED_IOCTL_ENABLE _IOWR(FLASH_LED_IOCTL_MAGIC, 8, int)
  13. #define FLASH_LED_IOCTL_DISABLE _IOWR(FLASH_LED_IOCTL_MAGIC, 9, int)
  14. #define FLASH_LED_IOCTL_GET_FRAME_MASK_INFO_ADDR _IOWR(FLASH_LED_IOCTL_MAGIC, 10, int)
  15. #define FLASH_LED_IOCTL_SET_SWITCH_MODE _IOWR(FLASH_LED_IOCTL_MAGIC, 11, int)
  16. struct flash_led_sccb_cfg_s {
  17. unsigned char slave_addr;
  18. unsigned char addr_byte;
  19. unsigned char data_byte;
  20. };
  21. typedef enum {
  22. FLASH_LED_STANDBY,
  23. FLASH_LED_EXT_TORCH,
  24. FLASH_LED_EXT_FLASH,
  25. FLASH_LED_INT_TORCH,
  26. FLASH_LED_INT_FLASH,
  27. FLASH_LED_IR_STANDBY,
  28. FLASH_LED_IR_ENABLE,
  29. } flash_led_mode_t;
  30. typedef enum {
  31. FLOODLIGHT,
  32. PROJECTION,
  33. } flash_led_type_t;
  34. typedef enum {
  35. FLOODLIGHT_EN = 1,
  36. PROJECTION_EN = 2,
  37. FLOODLIGHT_PROJECTION_EN = 3,
  38. } flash_led_enable_mask_t;
  39. typedef enum {
  40. PROJECTION_EVEN_FLOODLIGHT_ODD =0,
  41. PROJECTION_ODD_FLOODLIGHT_EVEN = 1,
  42. PROJECTION_ALWAYS_ON = 2,
  43. FLOODLIGHT_ALWAYS_ON = 3,
  44. BOTH_ON = 4,
  45. BOTH_OFF = 5,
  46. } flash_led_switch_mod_t;
  47. typedef struct {
  48. flash_led_type_t type;
  49. unsigned int offset;
  50. unsigned int value;
  51. } flash_led_reg_t;
  52. typedef struct {
  53. flash_led_type_t type;
  54. int channel;
  55. unsigned int value;
  56. } flash_bright_cfg_t;
  57. typedef struct {
  58. flash_led_type_t type;
  59. int channel;
  60. } flash_ch_t;
  61. typedef struct {
  62. flash_led_type_t type;
  63. flash_led_mode_t mode;
  64. } flash_mode_t;
  65. typedef struct {
  66. volatile uint64_t frame_irq_cnt;
  67. volatile uint64_t frame_time_us;
  68. int floodlight_temperature;
  69. int projection_temperature;
  70. } frame_mark_t;
  71. #endif