1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * include/media/i2c/lm3646.h 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2014 Texas Instruments 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Contact: Daniel Jeong <gshark.jeong@gmail.com> 8*4882a593Smuzhiyun * Ldd-Mlp <ldd-mlp@list.ti.com> 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #ifndef __LM3646_H__ 12*4882a593Smuzhiyun #define __LM3646_H__ 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include <media/v4l2-subdev.h> 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #define LM3646_NAME "lm3646" 17*4882a593Smuzhiyun #define LM3646_I2C_ADDR_REV1 (0x67) 18*4882a593Smuzhiyun #define LM3646_I2C_ADDR_REV0 (0x63) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun /* TOTAL FLASH Brightness Max 21*4882a593Smuzhiyun * min 93350uA, step 93750uA, max 1499600uA 22*4882a593Smuzhiyun */ 23*4882a593Smuzhiyun #define LM3646_TOTAL_FLASH_BRT_MIN 93350 24*4882a593Smuzhiyun #define LM3646_TOTAL_FLASH_BRT_STEP 93750 25*4882a593Smuzhiyun #define LM3646_TOTAL_FLASH_BRT_MAX 1499600 26*4882a593Smuzhiyun #define LM3646_TOTAL_FLASH_BRT_uA_TO_REG(a) \ 27*4882a593Smuzhiyun ((a) < LM3646_TOTAL_FLASH_BRT_MIN ? 0 : \ 28*4882a593Smuzhiyun ((((a) - LM3646_TOTAL_FLASH_BRT_MIN) / LM3646_TOTAL_FLASH_BRT_STEP))) 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun /* TOTAL TORCH Brightness Max 31*4882a593Smuzhiyun * min 23040uA, step 23430uA, max 187100uA 32*4882a593Smuzhiyun */ 33*4882a593Smuzhiyun #define LM3646_TOTAL_TORCH_BRT_MIN 23040 34*4882a593Smuzhiyun #define LM3646_TOTAL_TORCH_BRT_STEP 23430 35*4882a593Smuzhiyun #define LM3646_TOTAL_TORCH_BRT_MAX 187100 36*4882a593Smuzhiyun #define LM3646_TOTAL_TORCH_BRT_uA_TO_REG(a) \ 37*4882a593Smuzhiyun ((a) < LM3646_TOTAL_TORCH_BRT_MIN ? 0 : \ 38*4882a593Smuzhiyun ((((a) - LM3646_TOTAL_TORCH_BRT_MIN) / LM3646_TOTAL_TORCH_BRT_STEP))) 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun /* LED1 FLASH Brightness 41*4882a593Smuzhiyun * min 23040uA, step 11718uA, max 1499600uA 42*4882a593Smuzhiyun */ 43*4882a593Smuzhiyun #define LM3646_LED1_FLASH_BRT_MIN 23040 44*4882a593Smuzhiyun #define LM3646_LED1_FLASH_BRT_STEP 11718 45*4882a593Smuzhiyun #define LM3646_LED1_FLASH_BRT_MAX 1499600 46*4882a593Smuzhiyun #define LM3646_LED1_FLASH_BRT_uA_TO_REG(a) \ 47*4882a593Smuzhiyun ((a) <= LM3646_LED1_FLASH_BRT_MIN ? 0 : \ 48*4882a593Smuzhiyun ((((a) - LM3646_LED1_FLASH_BRT_MIN) / LM3646_LED1_FLASH_BRT_STEP))+1) 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun /* LED1 TORCH Brightness 51*4882a593Smuzhiyun * min 2530uA, step 1460uA, max 187100uA 52*4882a593Smuzhiyun */ 53*4882a593Smuzhiyun #define LM3646_LED1_TORCH_BRT_MIN 2530 54*4882a593Smuzhiyun #define LM3646_LED1_TORCH_BRT_STEP 1460 55*4882a593Smuzhiyun #define LM3646_LED1_TORCH_BRT_MAX 187100 56*4882a593Smuzhiyun #define LM3646_LED1_TORCH_BRT_uA_TO_REG(a) \ 57*4882a593Smuzhiyun ((a) <= LM3646_LED1_TORCH_BRT_MIN ? 0 : \ 58*4882a593Smuzhiyun ((((a) - LM3646_LED1_TORCH_BRT_MIN) / LM3646_LED1_TORCH_BRT_STEP))+1) 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun /* FLASH TIMEOUT DURATION 61*4882a593Smuzhiyun * min 50ms, step 50ms, max 400ms 62*4882a593Smuzhiyun */ 63*4882a593Smuzhiyun #define LM3646_FLASH_TOUT_MIN 50 64*4882a593Smuzhiyun #define LM3646_FLASH_TOUT_STEP 50 65*4882a593Smuzhiyun #define LM3646_FLASH_TOUT_MAX 400 66*4882a593Smuzhiyun #define LM3646_FLASH_TOUT_ms_TO_REG(a) \ 67*4882a593Smuzhiyun ((a) <= LM3646_FLASH_TOUT_MIN ? 0 : \ 68*4882a593Smuzhiyun (((a) - LM3646_FLASH_TOUT_MIN) / LM3646_FLASH_TOUT_STEP)) 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun /* struct lm3646_platform_data 71*4882a593Smuzhiyun * 72*4882a593Smuzhiyun * @flash_timeout: flash timeout 73*4882a593Smuzhiyun * @led1_flash_brt: led1 flash mode brightness, uA 74*4882a593Smuzhiyun * @led1_torch_brt: led1 torch mode brightness, uA 75*4882a593Smuzhiyun */ 76*4882a593Smuzhiyun struct lm3646_platform_data { 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun u32 flash_timeout; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun u32 led1_flash_brt; 81*4882a593Smuzhiyun u32 led1_torch_brt; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun #endif /* __LM3646_H__ */ 85