diff options
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/lm3646.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/include/media/lm3646.h b/include/media/lm3646.h new file mode 100644 index 000000000000..c6acf5a1d640 --- /dev/null +++ b/include/media/lm3646.h | |||
@@ -0,0 +1,87 @@ | |||
1 | /* | ||
2 | * include/media/lm3646.h | ||
3 | * | ||
4 | * Copyright (C) 2014 Texas Instruments | ||
5 | * | ||
6 | * Contact: Daniel Jeong <gshark.jeong@gmail.com> | ||
7 | * Ldd-Mlp <ldd-mlp@list.ti.com> | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License | ||
11 | * version 2 as published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | #ifndef __LM3646_H__ | ||
15 | #define __LM3646_H__ | ||
16 | |||
17 | #include <media/v4l2-subdev.h> | ||
18 | |||
19 | #define LM3646_NAME "lm3646" | ||
20 | #define LM3646_I2C_ADDR_REV1 (0x67) | ||
21 | #define LM3646_I2C_ADDR_REV0 (0x63) | ||
22 | |||
23 | /* TOTAL FLASH Brightness Max | ||
24 | * min 93350uA, step 93750uA, max 1499600uA | ||
25 | */ | ||
26 | #define LM3646_TOTAL_FLASH_BRT_MIN 93350 | ||
27 | #define LM3646_TOTAL_FLASH_BRT_STEP 93750 | ||
28 | #define LM3646_TOTAL_FLASH_BRT_MAX 1499600 | ||
29 | #define LM3646_TOTAL_FLASH_BRT_uA_TO_REG(a) \ | ||
30 | ((a) < LM3646_TOTAL_FLASH_BRT_MIN ? 0 : \ | ||
31 | ((((a) - LM3646_TOTAL_FLASH_BRT_MIN) / LM3646_TOTAL_FLASH_BRT_STEP))) | ||
32 | |||
33 | /* TOTAL TORCH Brightness Max | ||
34 | * min 23040uA, step 23430uA, max 187100uA | ||
35 | */ | ||
36 | #define LM3646_TOTAL_TORCH_BRT_MIN 23040 | ||
37 | #define LM3646_TOTAL_TORCH_BRT_STEP 23430 | ||
38 | #define LM3646_TOTAL_TORCH_BRT_MAX 187100 | ||
39 | #define LM3646_TOTAL_TORCH_BRT_uA_TO_REG(a) \ | ||
40 | ((a) < LM3646_TOTAL_TORCH_BRT_MIN ? 0 : \ | ||
41 | ((((a) - LM3646_TOTAL_TORCH_BRT_MIN) / LM3646_TOTAL_TORCH_BRT_STEP))) | ||
42 | |||
43 | /* LED1 FLASH Brightness | ||
44 | * min 23040uA, step 11718uA, max 1499600uA | ||
45 | */ | ||
46 | #define LM3646_LED1_FLASH_BRT_MIN 23040 | ||
47 | #define LM3646_LED1_FLASH_BRT_STEP 11718 | ||
48 | #define LM3646_LED1_FLASH_BRT_MAX 1499600 | ||
49 | #define LM3646_LED1_FLASH_BRT_uA_TO_REG(a) \ | ||
50 | ((a) <= LM3646_LED1_FLASH_BRT_MIN ? 0 : \ | ||
51 | ((((a) - LM3646_LED1_FLASH_BRT_MIN) / LM3646_LED1_FLASH_BRT_STEP))+1) | ||
52 | |||
53 | /* LED1 TORCH Brightness | ||
54 | * min 2530uA, step 1460uA, max 187100uA | ||
55 | */ | ||
56 | #define LM3646_LED1_TORCH_BRT_MIN 2530 | ||
57 | #define LM3646_LED1_TORCH_BRT_STEP 1460 | ||
58 | #define LM3646_LED1_TORCH_BRT_MAX 187100 | ||
59 | #define LM3646_LED1_TORCH_BRT_uA_TO_REG(a) \ | ||
60 | ((a) <= LM3646_LED1_TORCH_BRT_MIN ? 0 : \ | ||
61 | ((((a) - LM3646_LED1_TORCH_BRT_MIN) / LM3646_LED1_TORCH_BRT_STEP))+1) | ||
62 | |||
63 | /* FLASH TIMEOUT DURATION | ||
64 | * min 50ms, step 50ms, max 400ms | ||
65 | */ | ||
66 | #define LM3646_FLASH_TOUT_MIN 50 | ||
67 | #define LM3646_FLASH_TOUT_STEP 50 | ||
68 | #define LM3646_FLASH_TOUT_MAX 400 | ||
69 | #define LM3646_FLASH_TOUT_ms_TO_REG(a) \ | ||
70 | ((a) <= LM3646_FLASH_TOUT_MIN ? 0 : \ | ||
71 | (((a) - LM3646_FLASH_TOUT_MIN) / LM3646_FLASH_TOUT_STEP)) | ||
72 | |||
73 | /* struct lm3646_platform_data | ||
74 | * | ||
75 | * @flash_timeout: flash timeout | ||
76 | * @led1_flash_brt: led1 flash mode brightness, uA | ||
77 | * @led1_torch_brt: led1 torch mode brightness, uA | ||
78 | */ | ||
79 | struct lm3646_platform_data { | ||
80 | |||
81 | u32 flash_timeout; | ||
82 | |||
83 | u32 led1_flash_brt; | ||
84 | u32 led1_torch_brt; | ||
85 | }; | ||
86 | |||
87 | #endif /* __LM3646_H__ */ | ||