flash_led_ioctl.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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_OFF =4,
  45. } flash_led_switch_mod_t;
  46. typedef struct {
  47. flash_led_type_t type;
  48. unsigned int offset;
  49. unsigned int value;
  50. } flash_led_reg_t;
  51. typedef struct {
  52. flash_led_type_t type;
  53. int channel;
  54. unsigned int value;
  55. } flash_bright_cfg_t;
  56. typedef struct {
  57. flash_led_type_t type;
  58. int channel;
  59. } flash_ch_t;
  60. typedef struct {
  61. flash_led_type_t type;
  62. flash_led_mode_t mode;
  63. } flash_mode_t;
  64. typedef struct {
  65. volatile uint64_t frame_irq_cnt;
  66. volatile uint64_t frame_time_us;
  67. int floodlight_temperature;
  68. int projection_temperature;
  69. } frame_mark_t;
  70. #endif