lm3560.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * include/media/i2c/lm3560.h
  4. *
  5. * Copyright (C) 2013 Texas Instruments
  6. *
  7. * Contact: Daniel Jeong <[email protected]>
  8. * Ldd-Mlp <[email protected]>
  9. */
  10. #ifndef __LM3560_H__
  11. #define __LM3560_H__
  12. #include <media/v4l2-subdev.h>
  13. #define LM3559_NAME "lm3559"
  14. #define LM3560_NAME "lm3560"
  15. #define LM3560_I2C_ADDR (0x53)
  16. /* FLASH Brightness
  17. * min 62500uA, step 62500uA, max 1000000uA
  18. */
  19. #define LM3560_FLASH_BRT_MIN 62500
  20. #define LM3560_FLASH_BRT_STEP 62500
  21. #define LM3560_FLASH_BRT_MAX 1000000
  22. #define LM3560_FLASH_BRT_uA_TO_REG(a) \
  23. ((a) < LM3560_FLASH_BRT_MIN ? 0 : \
  24. (((a) - LM3560_FLASH_BRT_MIN) / LM3560_FLASH_BRT_STEP))
  25. #define LM3560_FLASH_BRT_REG_TO_uA(a) \
  26. ((a) * LM3560_FLASH_BRT_STEP + LM3560_FLASH_BRT_MIN)
  27. /* FLASH TIMEOUT DURATION
  28. * min 32ms, step 32ms, max 1024ms
  29. */
  30. #define LM3560_FLASH_TOUT_MIN 32
  31. #define LM3560_FLASH_TOUT_STEP 32
  32. #define LM3560_FLASH_TOUT_MAX 1024
  33. #define LM3560_FLASH_TOUT_ms_TO_REG(a) \
  34. ((a) < LM3560_FLASH_TOUT_MIN ? 0 : \
  35. (((a) - LM3560_FLASH_TOUT_MIN) / LM3560_FLASH_TOUT_STEP))
  36. #define LM3560_FLASH_TOUT_REG_TO_ms(a) \
  37. ((a) * LM3560_FLASH_TOUT_STEP + LM3560_FLASH_TOUT_MIN)
  38. /* TORCH BRT
  39. * min 31250uA, step 31250uA, max 250000uA
  40. */
  41. #define LM3560_TORCH_BRT_MIN 31250
  42. #define LM3560_TORCH_BRT_STEP 31250
  43. #define LM3560_TORCH_BRT_MAX 250000
  44. #define LM3560_TORCH_BRT_uA_TO_REG(a) \
  45. ((a) < LM3560_TORCH_BRT_MIN ? 0 : \
  46. (((a) - LM3560_TORCH_BRT_MIN) / LM3560_TORCH_BRT_STEP))
  47. #define LM3560_TORCH_BRT_REG_TO_uA(a) \
  48. ((a) * LM3560_TORCH_BRT_STEP + LM3560_TORCH_BRT_MIN)
  49. enum lm3560_led_id {
  50. LM3560_LED0 = 0,
  51. LM3560_LED1,
  52. LM3560_LED_MAX
  53. };
  54. enum lm3560_peak_current {
  55. LM3560_PEAK_1600mA = 0x00,
  56. LM3560_PEAK_2300mA = 0x20,
  57. LM3560_PEAK_3000mA = 0x40,
  58. LM3560_PEAK_3600mA = 0x60
  59. };
  60. /* struct lm3560_platform_data
  61. *
  62. * @peak : peak current
  63. * @max_flash_timeout: flash timeout
  64. * @max_flash_brt: flash mode led brightness
  65. * @max_torch_brt: torch mode led brightness
  66. */
  67. struct lm3560_platform_data {
  68. enum lm3560_peak_current peak;
  69. u32 max_flash_timeout;
  70. u32 max_flash_brt[LM3560_LED_MAX];
  71. u32 max_torch_brt[LM3560_LED_MAX];
  72. };
  73. #endif /* __LM3560_H__ */