Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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