Import S928BXXS4AXJB camera-kernel changes 2: electric boogaloo

Change-Id: I7193fd1ef8f35dedc06948c5620c336c97c29a5a
This commit is contained in:
David Wronek 2025-01-06 20:34:32 +01:00
parent 63812be2e8
commit 4d43cc6a17
135 changed files with 87345 additions and 201 deletions

View File

@ -72,6 +72,81 @@ ifneq ($(KBUILD_EXTRA_CONFIGS),)
include $(KBUILD_EXTRA_CONFIGS) include $(KBUILD_EXTRA_CONFIGS)
endif endif
#sensor header path for adaptive mipi
CAMERA_KERNEL_PATH = $(srctree)/../sm8650-modules/qcom/opensource/camera-kernel
ifeq ($(CONFIG_SEC_E1Q_PROJECT), y)
SRC_WIDE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5kgn3_2_0.h
SRC_UW_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx564_2_0.h
SRC_TELE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3k1_2_0.h
SRC_FRONT_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3lu_2_0.h
else ifeq ($(CONFIG_SEC_E2Q_PROJECT), y)
SRC_WIDE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5kgn3_2_0.h
SRC_UW_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx564_2_0.h
SRC_TELE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3k1_2_0.h
SRC_FRONT_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3lu_2_0.h
else ifeq ($(CONFIG_SEC_E3Q_PROJECT), y)
SRC_WIDE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5khp2_2_0.h
SRC_UW_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx564_2_0.h
SRC_TELE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx754_2_0.h
SRC_TELE2_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx854_2_0.h
SRC_FRONT_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3lu_2_0.h
else ifeq ($(CONFIG_SEC_Q6Q_PROJECT), y)
SRC_WIDE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5kgn3_2_0.h
SRC_UW_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3lu_uw_2_0.h
SRC_TELE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3k1_2_0.h
SRC_FRONT_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx374_2_0.h
SRC_FRONT_TOP_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx471_2_0.h
else ifeq ($(CONFIG_SEC_B6Q_PROJECT), y)
SRC_WIDE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5kgn3_2_0.h
SRC_UW_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3lu_uw_2_0.h
SRC_FRONT_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3j1_2_0.h
else ifeq ($(CONFIG_SEC_Q6AQ_PROJECT), y)
SRC_WIDE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5khp2_2_0.h
SRC_UW_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx564_2_0.h
SRC_TELE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3k1_2_0.h
SRC_FRONT_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_s5k3lu_2_0_q6a.h
SRC_FRONT_TOP_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/adaptive_mipi/cam_sensor_adaptive_mipi_imx596_2_0.h
endif
DST_WIDE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/cam_sensor_adaptive_mipi_wide_2_0.h
DST_UW_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/cam_sensor_adaptive_mipi_uw_2_0.h
DST_TELE_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/cam_sensor_adaptive_mipi_tele_2_0.h
DST_TELE2_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/cam_sensor_adaptive_mipi_tele2_2_0.h
DST_FRONT_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/cam_sensor_adaptive_mipi_front_2_0.h
DST_FRONT_TOP_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_sensor/cam_sensor_adaptive_mipi_front_top_2_0.h
#Copy sensor header for adaptive mipi
$(info camera_adaptive_mipi="$(shell cp -f $(SRC_WIDE_FILES) $(DST_WIDE_FILES))")
$(info camera_adaptive_mipi="$(shell cp -f $(SRC_UW_FILES) $(DST_UW_FILES))")
$(info camera_adaptive_mipi="$(shell cp -f $(SRC_TELE_FILES) $(DST_TELE_FILES))")
$(info camera_adaptive_mipi="$(shell cp -f $(SRC_TELE2_FILES) $(DST_TELE2_FILES))")
$(info camera_adaptive_mipi="$(shell cp -f $(SRC_FRONT_FILES) $(DST_FRONT_FILES))")
$(info camera_adaptive_mipi="$(shell cp -f $(SRC_FRONT_TOP_FILES) $(DST_FRONT_TOP_FILES))")
#csiphy header path for cphy tunning
ifeq ($(CONFIG_SEC_E1Q_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_e1.h
else ifeq ($(CONFIG_SEC_E2Q_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_e2.h
else ifeq ($(CONFIG_SEC_E3Q_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_e3.h
else ifeq ($(CONFIG_SEC_Q6Q_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_q6.h
else ifeq ($(CONFIG_SEC_B6Q_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_b6.h
else ifeq ($(CONFIG_SEC_GTS10P_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_gts10.h
else ifeq ($(CONFIG_SEC_GTS10U_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_gts10.h
else ifeq ($(CONFIG_SEC_Q6AQ_PROJECT), y)
SRC_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg_q6a.h
endif
DST_CPHY_FILES = $(CAMERA_KERNEL_PATH)/drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg.h
$(info camera_cphy_header="$(shell cp -f $(SRC_CPHY_FILES) $(DST_CPHY_FILES))")
# List of all camera-kernel headers # List of all camera-kernel headers
cam_include_dirs := $(shell dirname `find $(CAMERA_KERNEL_ROOT) -name '*.h'` | uniq) cam_include_dirs := $(shell dirname `find $(CAMERA_KERNEL_ROOT) -name '*.h'` | uniq)
@ -321,6 +396,33 @@ camera-$(CONFIG_SPECTRA_TFE) += \
drivers/cam_isp/isp_hw_mgr/isp_hw/tfe_csid_hw/cam_tfe_csid.o \ drivers/cam_isp/isp_hw_mgr/isp_hw/tfe_csid_hw/cam_tfe_csid.o \
drivers/cam_isp/isp_hw_mgr/cam_tfe_hw_mgr.o drivers/cam_isp/isp_hw_mgr/cam_tfe_hw_mgr.o
camera-$(CONFIG_SAMSUNG_OIS_MCU_STM32) += \
drivers/cam_sensor_module/cam_ois/cam_ois_mcu_stm32g.o \
drivers/cam_sensor_module/cam_ois/cam_ois_thread.o \
drivers/cam_sensor_module/cam_sensor_utils/cam_sysfs_ois_mcu.o
camera-$(CONFIG_CAMERA_SYSFS_V2) += \
drivers/cam_sensor_module/cam_actuator/cam_sec_actuator_core.o \
drivers/cam_sensor_module/cam_eeprom/cam_sec_eeprom_core.o \
drivers/cam_sensor_module/cam_sensor_utils/cam_sysfs_init.o \
drivers/cam_sensor_module/cam_sensor_utils/cam_hw_bigdata.o \
drivers/cam_sensor_module/cam_sensor_utils/cam_clock_data_recovery.o
camera-$(CONFIG_CAMERA_FRAME_CNT_DBG) += \
drivers/cam_sensor_module/cam_sensor/cam_sensor_thread.o
camera-$(CONFIG_SAMSUNG_WACOM_NOTIFIER) += \
drivers/cam_utils/cam_notifier.o
camera-$(CONFIG_CAMERA_ADAPTIVE_MIPI) += \
drivers/cam_sensor_module/cam_sensor/cam_sensor_mipi.o
camera-$(CONFIG_SENSOR_RETENTION) += \
drivers/cam_sensor_module/cam_sensor/cam_sensor_retention.o \
drivers/cam_sensor_module/cam_sensor/cam_sensor_s5khp2.o \
drivers/cam_sensor_module/cam_sensor/cam_sensor_s5kgn3.o \
drivers/cam_sensor_module/cam_sensor/cam_sensor_imx854.o \
camera-y += drivers/camera_main.o camera-y += drivers/camera_main.o
obj-m += camera.o obj-m += camera.o

View File

@ -114,3 +114,143 @@ config DYNAMIC_FD_PORT_CONFIG
feature that allows the userspace to configure feature that allows the userspace to configure
the FD port to secure or non-secure based on the FD port to secure or non-secure based on
the FD solution in use in secure camera use cases. the FD solution in use in secure camera use cases.
config SAMSUNG_OIS_MCU_STM32
bool "enable camera mcu stm32 module"
help
This is enabling camera mcu stm32 module.
camera mcu module will be functional.
This module interact with mcu HW to
control ois and actuator.
config CAMERA_SYSFS_V2
bool "enable camera sysfs v2 module"
help
This is enabling camera sysfs v2 module.
camera sysfs v2 module will be functional.
This module provide sysfs node for factory test.
config CAMERA_FRAME_CNT_DBG
bool "enable camera frame count debug"
help
This is enabling frame count debug feature.
camera frame count will be functional.
config CAMERA_FRAME_CNT_CHECK
bool "enable frame count check feature"
help
This is enabling frame count check to ensure that
sensor streams at least one frame before stream off.
config SAMSUNG_FRONT_EEPROM
bool "enable front eeprom"
help
This is enabling front eeprom feature.
config SAMSUNG_REAR_DUAL
bool "enable rear dual"
help
This is enabling samsung rear dual feature.
device has at least two cameras facing rear.
config SAMSUNG_REAR_TRIPLE
bool "enable rear triple"
help
This is enabling samsung rear triple feature.
device has at least three cameras facing rear.
config SAMSUNG_REAR_QUADRA
bool "enable rear quadra"
help
This is enabling samsung rear quadra feature.
device has at least four cameras facing rear.
config SAMSUNG_CAMERA
bool "enable samsung camera"
help
This is enabling samsung camera feature.
samsung specialized functions will be functional.
config SENSOR_RETENTION
bool "enable sensor retention"
help
This is enabling sensor retention feature.
sensor retention will be functional.
config CAMERA_ADAPTIVE_MIPI
bool "enable adaptive mipi module"
help
This is enabling adaptive mipi module.
adaptive mipi module will be functional.
MIPI data rate of sensor will be adjusted depends on RF.
config CAMERA_RF_MIPI
bool "enable RF mipi"
help
This is enabling RF mipi feature.
config SAMSUNG_ACTUATOR_READ_HALL_VALUE
bool "enable read hall value of actuator"
help
This is enabling actuator read hall value feature.
actuator will provide api to read hall value.
config SAMSUNG_DEBUG_SENSOR_I2C
bool "enable sensor i2c debug"
help
This is enabling sensor i2c debug feature.
sensor will provide api to debug i2c.
config SAMSUNG_DEBUG_SENSOR_TIMING
bool "enable sensor timing debug"
help
This is enabling sensor timing debug feature.
sensor will provide api to debug timing.
config SAMSUNG_DEBUG_HW_INFO
bool "enable sensor hw info debug"
help
This is enabling feature to debug sensor hw information.
sensor will provide api to debug hardware information.
config USE_CAMERA_HW_BIG_DATA
bool "enable hardware big data"
help
This is enabling feature to gather H/W big data.
all sensor subdevices will provide error information
related to H/W.
config CAMERA_CDR_TEST
bool "enable CDR test"
help
This is enabling CDR test feature.
config CAMERA_HW_ERROR_DETECT
bool "enable HW error detect"
help
This is enabling HW error detect.
config SAMSUNG_ACTUATOR_PREVENT_SHAKING
bool "enable actuator prevent shaking"
help
This is enabling actuator prevent shaking feature.
config SAMSUNG_READ_BPC_FROM_OTP
bool "enable read BPC from OTP"
help
This is enabling read BPC from OTP.
config SEC_E1Q_PROJECT
bool "enable E1"
help
This is enabling E1 feature.
config SEC_E2Q_PROJECT
bool "enable E2"
help
This is enabling E2 feature.
config SEC_E3Q_PROJECT
bool "enable E3"
help
This is enabling E1 feature.

View File

@ -26,6 +26,247 @@ ccflags-y += -DCONFIG_DOMAIN_ID_SECURE_CAMERA=1
ccflags-y += -DCONFIG_DYNAMIC_FD_PORT_CONFIG=1 ccflags-y += -DCONFIG_DYNAMIC_FD_PORT_CONFIG=1
ccflags-y += -DCONFIG_CSF_2_5_SECURE_CAMERA=1 ccflags-y += -DCONFIG_CSF_2_5_SECURE_CAMERA=1
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU1Q) \
$(CONFIG_SEC_PLATFORM_MU2Q) \
$(CONFIG_SEC_PLATFORM_MU3Q) \
$(CONFIG_SEC_PLATFORM_E1Q) \
$(CONFIG_SEC_PLATFORM_E2Q) \
$(CONFIG_SEC_PLATFORM_E3Q) \
$(CONFIG_SEC_PLATFORM_Q6Q) \
$(CONFIG_SEC_PLATFORM_Q6AQ) \
$(CONFIG_SEC_PLATFORM_B6Q) \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI) \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
CONFIG_CAMERA_SYSFS_V2 := y
CONFIG_CAMERA_FRAME_CNT_DBG := y
CONFIG_CAMERA_RF_MIPI := y
CONFIG_SAMSUNG_DEBUG_SENSOR_I2C := y
CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING := y
CONFIG_SAMSUNG_DEBUG_HW_INFO := y
ifneq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI) \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
CONFIG_SAMSUNG_OIS_MCU_STM32 := y
CONFIG_SENSOR_RETENTION := y
CONFIG_CAMERA_ADAPTIVE_MIPI := y
endif
CONFIG_CAMERA_CDR_TEST := y
CONFIG_CAMERA_HW_ERROR_DETECT := y
CONFIG_SAMSUNG_CAMERA := y
ifneq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_B6Q) \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI) \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
CONFIG_SAMSUNG_REAR_TRIPLE := y
endif
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU1Q) \
$(CONFIG_SEC_PLATFORM_E1Q)))
CONFIG_SEC_E1Q_PROJECT := y
CONFIG_SAMSUNG_FRONT_CAMERA_ACTUATOR := y
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU2Q) \
$(CONFIG_SEC_PLATFORM_E2Q)))
CONFIG_SEC_E2Q_PROJECT := y
CONFIG_SAMSUNG_FRONT_CAMERA_ACTUATOR := y
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU3Q) \
$(CONFIG_SEC_PLATFORM_E3Q)))
CONFIG_SEC_E3Q_PROJECT := y
CONFIG_SAMSUNG_REAR_QUADRA := y
CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING := y
CONFIG_SAMSUNG_READ_BPC_FROM_OTP := y
CONFIG_SAMSUNG_WACOM_NOTIFIER := y
CONFIG_SAMSUNG_SUPPORT_RUMBA_FW_UPDATE := y
CONFIG_SAMSUNG_FRONT_CAMERA_ACTUATOR := y
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_Q6Q)))
CONFIG_SEC_Q6Q_PROJECT := y
CONFIG_SAMSUNG_FRONT_TOP :=y
CONFIG_SAMSUNG_FRONT_TOP_EEPROM :=y
CONFIG_SOF_FREEZE_FRAME_CNT_READ :=y
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_Q6AQ)))
CONFIG_SEC_Q6AQ_PROJECT := y
CONFIG_SAMSUNG_FRONT_TOP :=y
CONFIG_SAMSUNG_FRONT_TOP_EEPROM :=y
CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING := y
CONFIG_SAMSUNG_READ_BPC_FROM_OTP := y
CONFIG_SAMSUNG_SENSOR_TEMP := y
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_B6Q)))
CONFIG_SEC_B6Q_PROJECT := y
CONFIG_SEC_GPIO_ENABLED_VREG := y
CONFIG_SAMSUNG_PMIC_FLASH := y
CONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT := y
ifeq ($(TARGET_PRODUCT), $(filter $(TARGET_PRODUCT),b6qzcx b6qzhx))
CONFIG_SEC_B6Q_CHN_PROJECT := y
endif
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI)))
CONFIG_SEC_GTS10P_PROJECT := y
CONFIG_HI847_OTP := y
CONFIG_HI1337_OTP := y
CONFIG_SAMSUNG_PMIC_FLASH := y
CONFIG_SAMSUNG_ACTUATOR_HW_SOFTLANDING := y
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
CONFIG_SEC_GTS10U_PROJECT := y
CONFIG_HI847_OTP := y
CONFIG_SAMSUNG_PMIC_FLASH := y
CONFIG_SAMSUNG_FRONT_DUAL := y
CONFIG_SAMSUNG_FRONT_TOP_EEPROM := y
CONFIG_SAMSUNG_ACTUATOR_HW_SOFTLANDING := y
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU1Q) \
$(CONFIG_SEC_PLATFORM_MU2Q) \
$(CONFIG_SEC_PLATFORM_MU3Q) \
$(CONFIG_SEC_PLATFORM_E1Q) \
$(CONFIG_SEC_PLATFORM_E2Q) \
$(CONFIG_SEC_PLATFORM_E3Q) \
$(CONFIG_SEC_PLATFORM_Q6Q) \
$(CONFIG_SEC_PLATFORM_Q6AQ) \
$(CONFIG_SEC_PLATFORM_B6Q) \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI) \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
ccflags-y += -DCONFIG_CAMERA_SYSFS_V2=1
ccflags-y += -DCONFIG_CAMERA_FRAME_CNT_DBG=1
ccflags-y += -DCONFIG_CAMERA_FRAME_CNT_CHECK=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_EEPROM=1
ccflags-y += -DCONFIG_SAMSUNG_REAR_DUAL=1
ifneq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_B6Q) \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI) \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
ccflags-y += -DCONFIG_SAMSUNG_REAR_TRIPLE=1
endif
ccflags-y += -DCONFIG_USE_CAMERA_HW_BIG_DATA=1
ccflags-y += -DCONFIG_CAMERA_RF_MIPI=1
ccflags-y += -DCONFIG_SAMSUNG_DEBUG_SENSOR_I2C=1
ccflags-y += -DCONFIG_SAMSUNG_DEBUG_SENSOR_TIMING=1
ccflags-y += -DCONFIG_SAMSUNG_DEBUG_HW_INFO=1
ifneq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI) \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
ccflags-y += -DCONFIG_SAMSUNG_ACTUATOR_READ_HALL_VALUE=1
ccflags-y += -DCONFIG_SAMSUNG_OIS_MCU_STM32=1
ccflags-y += -DCONFIG_SENSOR_RETENTION=1
ccflags-y += -DCONFIG_CAMERA_ADAPTIVE_MIPI=1
endif
ccflags-y += -DCONFIG_CAMERA_CDR_TEST=1
ccflags-y += -DCONFIG_CAMERA_HW_ERROR_DETECT=1
ccflags-y += -DCONFIG_SAMSUNG_CAMERA=1
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU1Q) \
$(CONFIG_SEC_PLATFORM_E1Q)))
ccflags-y += -DCONFIG_SEC_E1Q_PROJECT=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_CAMERA_ACTUATOR=1
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU2Q) \
$(CONFIG_SEC_PLATFORM_E2Q)))
ccflags-y += -DCONFIG_SEC_E2Q_PROJECT=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_CAMERA_ACTUATOR=1
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_MU3Q) \
$(CONFIG_SEC_PLATFORM_E3Q)))
ccflags-y += -DCONFIG_SEC_E3Q_PROJECT=1
ccflags-y += -DCONFIG_SAMSUNG_REAR_QUADRA=1
ccflags-y += -DCONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING=1
ccflags-y += -DCONFIG_SAMSUNG_READ_BPC_FROM_OTP=1
ccflags-y += -DCONFIG_SAMSUNG_WACOM_NOTIFIER=1
ccflags-y += -DCONFIG_SAMSUNG_SUPPORT_RUMBA_FW_UPDATE=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_CAMERA_ACTUATOR=1
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_Q6Q)))
ccflags-y += -DCONFIG_SEC_Q6Q_PROJECT=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_TOP=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_TOP_EEPROM=1
ccflags-y += -DCONFIG_SOF_FREEZE_FRAME_CNT_READ=1
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_Q6AQ)))
ccflags-y += -DCONFIG_SEC_Q6AQ_PROJECT=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_TOP=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_TOP_EEPROM=1
ccflags-y += -DCONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING=1
ccflags-y += -DCONFIG_SAMSUNG_READ_BPC_FROM_OTP=1
ccflags-y += -DCONFIG_SAMSUNG_SENSOR_TEMP=1
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_B6Q)))
ccflags-y += -DCONFIG_SEC_B6Q_PROJECT=1
ccflags-y += -DCONFIG_SEC_GPIO_ENABLED_VREG=1
ccflags-y += -DCONFIG_SAMSUNG_PMIC_FLASH=1
ccflags-y += -DCONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT=1
ifeq ($(TARGET_PRODUCT), $(filter $(TARGET_PRODUCT),b6qzcx b6qzhx))
ccflags-y += -DCONFIG_SEC_B6Q_CHN_PROJECT=1
endif
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_GTS10P) \
$(CONFIG_SEC_PLATFORM_GTS10PWIFI)))
ccflags-y += -DCONFIG_SEC_GTS10P_PROJECT=1
ccflags-y += -DCONFIG_HI847_OTP=1
ccflags-y += -DCONFIG_HI1337_OTP=1
ccflags-y += -DCONFIG_SAMSUNG_PMIC_FLASH=1
ccflags-y += -DCONFIG_SAMSUNG_ACTUATOR_HW_SOFTLANDING=1
endif
ifeq (y, $(filter y, \
$(CONFIG_SEC_PLATFORM_GTS10U) \
$(CONFIG_SEC_PLATFORM_GTS10UWIFI)))
ccflags-y += -DCONFIG_SEC_GTS10U_PROJECT=1
ccflags-y += -DCONFIG_HI847_OTP=1
ccflags-y += -DCONFIG_SAMSUNG_PMIC_FLASH=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_TOP_EEPROM=1
ccflags-y += -DCONFIG_SAMSUNG_FRONT_DUAL=1
ccflags-y += -DCONFIG_SAMSUNG_ACTUATOR_HW_SOFTLANDING=1
endif
# External Dependencies # External Dependencies
KBUILD_CPPFLAGS += -DCONFIG_MSM_MMRM=1 KBUILD_CPPFLAGS += -DCONFIG_MSM_MMRM=1
ifeq ($(CONFIG_QCOM_VA_MINIDUMP), y) ifeq ($(CONFIG_QCOM_VA_MINIDUMP), y)

View File

@ -44,7 +44,7 @@
/* size of buffer to drain from msg/dbq queue */ /* size of buffer to drain from msg/dbq queue */
#define ICP_MSG_BUF_SIZE_IN_WORDS 512 #define ICP_MSG_BUF_SIZE_IN_WORDS 512
#define ICP_DBG_BUF_SIZE_IN_WORDS 25600 #define ICP_DBG_BUF_SIZE_IN_WORDS 5120
#define ICP_OVER_CLK_THRESHOLD 5 #define ICP_OVER_CLK_THRESHOLD 5
#define ICP_TWO_DEV_BW_SHARE_RATIO 2 #define ICP_TWO_DEV_BW_SHARE_RATIO 2

View File

@ -21,7 +21,7 @@
#define CAM_ICP_BW_BYTES_VOTE 40000000 #define CAM_ICP_BW_BYTES_VOTE 40000000
#define CAM_ICP_CTX_MAX 54 #define CAM_ICP_CTX_MAX 64
#define CPAS_IPE1_BIT 0x2000 #define CPAS_IPE1_BIT 0x2000

View File

@ -1383,6 +1383,24 @@ static uint64_t __cam_isp_ctx_get_event_ts(uint32_t evt_id, void *evt_data)
return ts; return ts;
} }
static int __cam_isp_ctx_get_path_timestamp(struct cam_context *ctx)
{
struct cam_hw_cmd_args hw_cmd_args;
struct cam_isp_hw_cmd_args isp_hw_cmd_args;
int rc;
hw_cmd_args.ctxt_to_hw_map = ctx->ctxt_to_hw_map;
hw_cmd_args.cmd_type = CAM_HW_MGR_CMD_INTERNAL;
hw_cmd_args.u.internal_args = &isp_hw_cmd_args;
isp_hw_cmd_args.cmd_type = CAM_ISP_HW_MGR_GET_PATH_SOF_TS;
rc = ctx->hw_mgr_intf->hw_cmd(ctx->ctxt_to_hw_map, &hw_cmd_args);
if (rc)
return rc;
return 0;
}
static int __cam_isp_ctx_get_hw_timestamp(struct cam_context *ctx, uint64_t *prev_ts, static int __cam_isp_ctx_get_hw_timestamp(struct cam_context *ctx, uint64_t *prev_ts,
uint64_t *curr_ts, uint64_t *boot_ts) uint64_t *curr_ts, uint64_t *boot_ts)
{ {
@ -1695,6 +1713,11 @@ static void __cam_isp_ctx_handle_buf_done_fail_log(
if ((ctx_isp->congestion_cnt >= CAM_ISP_CONTEXT_CONGESTION_CNT_MAX) && if ((ctx_isp->congestion_cnt >= CAM_ISP_CONTEXT_CONGESTION_CNT_MAX) &&
(!ctx_isp->sof_dbg_irq_en)) (!ctx_isp->sof_dbg_irq_en))
__cam_isp_ctx_handle_sof_freeze_evt(ctx); __cam_isp_ctx_handle_sof_freeze_evt(ctx);
/*Dump SOF timestamp for each path to make sure
whther SOF's are comming for each path or not
*/
__cam_isp_ctx_get_path_timestamp(ctx);
} }
static void __cam_isp_context_reset_internal_recovery_params( static void __cam_isp_context_reset_internal_recovery_params(
@ -3967,6 +3990,7 @@ static int __cam_isp_ctx_handle_recovery_req_util(
{ {
int rc = 0; int rc = 0;
struct cam_context *ctx = ctx_isp->base; struct cam_context *ctx = ctx_isp->base;
struct cam_isp_ctx_req *req_isp;
struct cam_ctx_request *req_to_reapply = NULL; struct cam_ctx_request *req_to_reapply = NULL;
if (list_empty(&ctx->pending_req_list)) { if (list_empty(&ctx->pending_req_list)) {
@ -3977,6 +4001,14 @@ static int __cam_isp_ctx_handle_recovery_req_util(
req_to_reapply = list_first_entry(&ctx->pending_req_list, req_to_reapply = list_first_entry(&ctx->pending_req_list,
struct cam_ctx_request, list); struct cam_ctx_request, list);
req_isp = (struct cam_isp_ctx_req *)req_to_reapply->req_priv;
if (req_isp->internal_recovery_attempts >= CAM_ISP_CONTEXT_MAX_INTERNAL_RECOVERY_ATTEMPTS) {
CAM_INFO(CAM_ISP,
"Max internal recovery attempts for req:%llu for ctx:%u link:0x%x",
req_to_reapply->request_id, ctx->ctx_id, ctx->link_hdl);
return -EOPNOTSUPP;
}
ctx_isp->substate_activated = CAM_ISP_CTX_ACTIVATED_EPOCH; ctx_isp->substate_activated = CAM_ISP_CTX_ACTIVATED_EPOCH;
ctx_isp->recovery_req_id = req_to_reapply->request_id; ctx_isp->recovery_req_id = req_to_reapply->request_id;
atomic_set(&ctx_isp->internal_recovery_set, 1); atomic_set(&ctx_isp->internal_recovery_set, 1);
@ -4961,6 +4993,7 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
enum cam_isp_ctx_activated_substate next_state) enum cam_isp_ctx_activated_substate next_state)
{ {
int rc = 0; int rc = 0;
bool mode_switch = false;
struct cam_ctx_request *req; struct cam_ctx_request *req;
struct cam_ctx_request *active_req = NULL; struct cam_ctx_request *active_req = NULL;
struct cam_isp_ctx_req *req_isp; struct cam_isp_ctx_req *req_isp;
@ -4970,6 +5003,8 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
struct cam_isp_skip_frame_info *skip_info; struct cam_isp_skip_frame_info *skip_info;
struct cam_isp_fcg_prediction_tracker *fcg_tracker; struct cam_isp_fcg_prediction_tracker *fcg_tracker;
struct cam_isp_fcg_config_info *fcg_info; struct cam_isp_fcg_config_info *fcg_info;
ktime_t sched_ts, curr_ts;
uint64_t diff;
ctx_isp = (struct cam_isp_context *) ctx->ctx_priv; ctx_isp = (struct cam_isp_context *) ctx->ctx_priv;
@ -5047,6 +5082,7 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
ctx->ctx_id, ctx->link_hdl); ctx->ctx_id, ctx->link_hdl);
req_isp = (struct cam_isp_ctx_req *) req->req_priv; req_isp = (struct cam_isp_ctx_req *) req->req_priv;
mode_switch = req_isp->hw_update_data.mup_en;
if (ctx_isp->active_req_cnt >= 2) { if (ctx_isp->active_req_cnt >= 2) {
CAM_WARN_RATE_LIMIT(CAM_ISP, CAM_WARN_RATE_LIMIT(CAM_ISP,
"Reject apply request (id %lld) due to congestion(cnt = %d) ctx %u, link: 0x%x", "Reject apply request (id %lld) due to congestion(cnt = %d) ctx %u, link: 0x%x",
@ -5089,6 +5125,7 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
req_isp->num_deferred_acks = 0; req_isp->num_deferred_acks = 0;
req_isp->cdm_reset_before_apply = false; req_isp->cdm_reset_before_apply = false;
req_isp->bubble_detected = false; req_isp->bubble_detected = false;
req_isp->internal_recovery_attempts = 0;
cfg.ctxt_to_hw_map = ctx_isp->hw_ctx; cfg.ctxt_to_hw_map = ctx_isp->hw_ctx;
cfg.request_id = req->request_id; cfg.request_id = req->request_id;
@ -5129,8 +5166,10 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
} }
atomic_set(&ctx_isp->apply_in_progress, 1); atomic_set(&ctx_isp->apply_in_progress, 1);
sched_ts = ktime_get();
rc = ctx->hw_mgr_intf->hw_config(ctx->hw_mgr_intf->hw_mgr_priv, &cfg); rc = ctx->hw_mgr_intf->hw_config(ctx->hw_mgr_intf->hw_mgr_priv, &cfg);
curr_ts = ktime_get();
diff = ktime_ms_delta(curr_ts, curr_ts);
if (!rc) { if (!rc) {
spin_lock_bh(&ctx->lock); spin_lock_bh(&ctx->lock);
ctx_isp->substate_activated = next_state; ctx_isp->substate_activated = next_state;
@ -5156,6 +5195,9 @@ static int __cam_isp_ctx_apply_req_in_activated_state(
ctx_isp->last_applied_req_id, ctx->ctx_id, ctx->link_hdl); ctx_isp->last_applied_req_id, ctx->ctx_id, ctx->link_hdl);
spin_unlock_bh(&ctx->lock); spin_unlock_bh(&ctx->lock);
if ((mode_switch) && (diff > 10))
CAM_INFO(CAM_ISP, "Req %lld with mode switch moved to wait after delay %llums", apply->request_id, diff);
__cam_isp_ctx_update_state_monitor_array(ctx_isp, __cam_isp_ctx_update_state_monitor_array(ctx_isp,
CAM_ISP_STATE_CHANGE_TRIGGER_APPLIED, CAM_ISP_STATE_CHANGE_TRIGGER_APPLIED,
req->request_id); req->request_id);
@ -6996,6 +7038,7 @@ static int __cam_isp_ctx_config_dev_in_top_state(
req_isp->num_deferred_acks = 0; req_isp->num_deferred_acks = 0;
req_isp->bubble_detected = false; req_isp->bubble_detected = false;
req_isp->cdm_reset_before_apply = false; req_isp->cdm_reset_before_apply = false;
req_isp->internal_recovery_attempts = 0;
req_isp->hw_update_data.packet = packet; req_isp->hw_update_data.packet = packet;
req_isp->hw_update_data.num_exp = hw_update_data->num_exp; req_isp->hw_update_data.num_exp = hw_update_data->num_exp;
req_isp->hw_update_data.mup_en = hw_update_data->mup_en; req_isp->hw_update_data.mup_en = hw_update_data->mup_en;
@ -8515,6 +8558,7 @@ static int __cam_isp_ctx_reset_and_recover(
spin_unlock_bh(&ctx->lock); spin_unlock_bh(&ctx->lock);
req_isp = (struct cam_isp_ctx_req *) req->req_priv; req_isp = (struct cam_isp_ctx_req *) req->req_priv;
req_isp->internal_recovery_attempts++;
CAM_INFO(CAM_ISP, CAM_INFO(CAM_ISP,
"Trigger Halt, Reset & Resume for req: %llu ctx: %u in state: %d link: 0x%x", "Trigger Halt, Reset & Resume for req: %llu ctx: %u in state: %d link: 0x%x",
@ -8649,6 +8693,56 @@ error:
return false; return false;
} }
static void __cam_isp_ctx_dump_all_reqs(
struct cam_context *ctx)
{
int i;
struct cam_isp_ctx_req *req_isp;
struct cam_ctx_request *req, *req_temp;
if (list_empty(&ctx->active_req_list))
CAM_INFO(CAM_ISP, "No active req in ctx: %u link: 0x%x", ctx->ctx_id, ctx->link_hdl);
else {
list_for_each_entry_safe(req, req_temp, &ctx->active_req_list, list) {
req_isp = (struct cam_isp_ctx_req *)req->req_priv;
CAM_INFO(CAM_ISP, "Active req:%lld ctx: %u link: 0x%x", req->request_id, ctx->ctx_id, ctx->link_hdl);
for (i = 0; i < req_isp->num_fence_map_out; i++) {
CAM_INFO(CAM_ISP, "i: %d Req: %lld fence: %d res: 0x%x",
i, req->request_id, req_isp->fence_map_out[i].sync_id,
req_isp->fence_map_out[i].resource_handle);
}
}
}
if (list_empty(&ctx->wait_req_list))
CAM_INFO(CAM_ISP, "No wait req in ctx: %u link: 0x%x", ctx->ctx_id, ctx->link_hdl);
else {
list_for_each_entry_safe(req, req_temp, &ctx->wait_req_list, list) {
req_isp = (struct cam_isp_ctx_req *)req->req_priv;
CAM_INFO(CAM_ISP, "Wait req:%lld ctx: %u link: 0x%x", req->request_id, ctx->ctx_id, ctx->link_hdl);
for (i = 0; i < req_isp->num_fence_map_out; i++) {
CAM_INFO(CAM_ISP, "i: %d Req: %lld fence: %d res: 0x%x",
i, req->request_id, req_isp->fence_map_out[i].sync_id,
req_isp->fence_map_out[i].resource_handle);
}
}
}
if (list_empty(&ctx->pending_req_list))
CAM_INFO(CAM_ISP, "No pending req in ctx: %u link: 0x%x", ctx->ctx_id, ctx->link_hdl);
else {
list_for_each_entry_safe(req, req_temp, &ctx->pending_req_list, list) {
req_isp = (struct cam_isp_ctx_req *)req->req_priv;
CAM_INFO(CAM_ISP, "pending req:%lld ctx: %u link: 0x%x", req->request_id, ctx->ctx_id, ctx->link_hdl);
for (i = 0; i < req_isp->num_fence_map_out; i++) {
CAM_INFO(CAM_ISP, "i: %d Req: %lld fence: %d res: 0x%x",
i, req->request_id, req_isp->fence_map_out[i].sync_id,
req_isp->fence_map_out[i].resource_handle);
}
}
}
}
static int __cam_isp_ctx_process_evt(struct cam_context *ctx, static int __cam_isp_ctx_process_evt(struct cam_context *ctx,
struct cam_req_mgr_link_evt_data *link_evt_data) struct cam_req_mgr_link_evt_data *link_evt_data)
{ {
@ -8676,6 +8770,7 @@ static int __cam_isp_ctx_process_evt(struct cam_context *ctx,
rc = __cam_isp_ctx_link_resume(ctx); rc = __cam_isp_ctx_link_resume(ctx);
break; break;
case CAM_REQ_MGR_LINK_EVT_SOF_FREEZE: case CAM_REQ_MGR_LINK_EVT_SOF_FREEZE:
__cam_isp_ctx_dump_all_reqs(ctx);
rc = __cam_isp_ctx_handle_sof_freeze_evt(ctx); rc = __cam_isp_ctx_handle_sof_freeze_evt(ctx);
break; break;
case CAM_REQ_MGR_LINK_EVT_STALLED: { case CAM_REQ_MGR_LINK_EVT_STALLED: {

View File

@ -59,6 +59,8 @@
/* AEB error count threshold */ /* AEB error count threshold */
#define CAM_ISP_CONTEXT_AEB_ERROR_CNT_MAX 6 #define CAM_ISP_CONTEXT_AEB_ERROR_CNT_MAX 6
#define CAM_ISP_CONTEXT_MAX_INTERNAL_RECOVERY_ATTEMPTS 7
/* Debug Buffer length*/ /* Debug Buffer length*/
#define CAM_ISP_CONTEXT_DBG_BUF_LEN 1000 #define CAM_ISP_CONTEXT_DBG_BUF_LEN 1000
@ -182,6 +184,7 @@ struct cam_isp_ctx_irq_ops {
* @hw_update_data: HW update data for this request * @hw_update_data: HW update data for this request
* @reapply_type: Determines type of settings to be re-applied * @reapply_type: Determines type of settings to be re-applied
* @event_timestamp: Timestamp for different stage of request * @event_timestamp: Timestamp for different stage of request
* @internal_recovery_attempts: Number of internal recovery attempts
* @cdm_reset_before_apply: For bubble re-apply when buf done not coming set * @cdm_reset_before_apply: For bubble re-apply when buf done not coming set
* to True * to True
* *
@ -202,6 +205,7 @@ struct cam_isp_ctx_req {
enum cam_hw_config_reapply_type reapply_type; enum cam_hw_config_reapply_type reapply_type;
ktime_t event_timestamp ktime_t event_timestamp
[CAM_ISP_CTX_EVENT_MAX]; [CAM_ISP_CTX_EVENT_MAX];
uint32_t internal_recovery_attempts;
bool bubble_detected; bool bubble_detected;
bool cdm_reset_before_apply; bool cdm_reset_before_apply;
}; };

View File

@ -43,7 +43,7 @@
#define CAM_ISP_GENERIC_BLOB_TYPE_MAX \ #define CAM_ISP_GENERIC_BLOB_TYPE_MAX \
(CAM_ISP_GENERIC_BLOB_TYPE_CSID_QCFA_CONFIG + 1) (CAM_ISP_GENERIC_BLOB_TYPE_CSID_QCFA_CONFIG + 1)
#define MAX_INTERNAL_RECOVERY_ATTEMPTS 1 #define MAX_INTERNAL_RECOVERY_ATTEMPTS 7
#define MAX_PARAMS_FOR_IRQ_INJECT 5 #define MAX_PARAMS_FOR_IRQ_INJECT 5
#define IRQ_INJECT_DISPLAY_BUF_LEN 4096 #define IRQ_INJECT_DISPLAY_BUF_LEN 4096
@ -960,7 +960,7 @@ static bool cam_ife_hw_mgr_is_sfe_rd_res(
static int cam_ife_hw_mgr_reset_csid( static int cam_ife_hw_mgr_reset_csid(
struct cam_ife_hw_mgr_ctx *ctx, struct cam_ife_hw_mgr_ctx *ctx,
int reset_type) int reset_type, bool power_on_rst)
{ {
int i; int i;
int rc = 0; int rc = 0;
@ -986,6 +986,7 @@ static int cam_ife_hw_mgr_reset_csid(
reset_args.reset_type = reset_type; reset_args.reset_type = reset_type;
reset_args.node_res = hw_mgr_res->hw_res[i]; reset_args.node_res = hw_mgr_res->hw_res[i];
reset_args.power_on_reset = power_on_rst;
rc = hw_intf->hw_ops.reset(hw_intf->hw_priv, rc = hw_intf->hw_ops.reset(hw_intf->hw_priv,
&reset_args, sizeof(reset_args)); &reset_args, sizeof(reset_args));
if (rc) if (rc)
@ -1208,7 +1209,7 @@ static void cam_ife_hw_mgr_deinit_hw(
hw_mgr = ctx->hw_mgr; hw_mgr = ctx->hw_mgr;
if (hw_mgr->csid_global_reset_en) if (hw_mgr->csid_global_reset_en)
cam_ife_hw_mgr_reset_csid(ctx, CAM_IFE_CSID_RESET_GLOBAL); cam_ife_hw_mgr_reset_csid(ctx, CAM_IFE_CSID_RESET_GLOBAL, false);
/* Deinit IFE CSID */ /* Deinit IFE CSID */
list_for_each_entry(hw_mgr_res, &ctx->res_list_ife_csid, list) { list_for_each_entry(hw_mgr_res, &ctx->res_list_ife_csid, list) {
@ -1279,6 +1280,7 @@ static int cam_ife_hw_mgr_init_hw(
struct cam_ife_hw_mgr_ctx *ctx) struct cam_ife_hw_mgr_ctx *ctx)
{ {
struct cam_isp_hw_mgr_res *hw_mgr_res; struct cam_isp_hw_mgr_res *hw_mgr_res;
struct cam_ife_hw_mgr *hw_mgr;
int rc = 0, i; int rc = 0, i;
/* INIT IFE SRC */ /* INIT IFE SRC */
@ -1358,6 +1360,16 @@ static int cam_ife_hw_mgr_init_hw(
} }
} }
hw_mgr = ctx->hw_mgr;
if (hw_mgr->csid_global_reset_en) {
rc = cam_ife_hw_mgr_reset_csid(ctx,
CAM_IFE_CSID_RESET_GLOBAL, true);
if (rc) {
CAM_ERR(CAM_ISP, "CSID reset failed, ctx_idx:%u", ctx->ctx_index);
goto deinit;
}
}
/* Check if any cache needs to be activated */ /* Check if any cache needs to be activated */
for (i = CAM_LLCC_SMALL_1; i < CAM_LLCC_MAX; i++) { for (i = CAM_LLCC_SMALL_1; i < CAM_LLCC_MAX; i++) {
if (ctx->flags.sys_cache_usage[i]) { if (ctx->flags.sys_cache_usage[i]) {
@ -7938,6 +7950,10 @@ static void cam_ife_hw_mgr_set_hw_debug_config(
csid_debug_args.csid_rx_capture_debug = hw_mgr->debug_cfg.rx_capture_debug; csid_debug_args.csid_rx_capture_debug = hw_mgr->debug_cfg.rx_capture_debug;
csid_debug_args.rx_capture_debug_set = hw_mgr->debug_cfg.rx_capture_debug_set; csid_debug_args.rx_capture_debug_set = hw_mgr->debug_cfg.rx_capture_debug_set;
csid_debug_args.csid_testbus_debug = hw_mgr->debug_cfg.csid_test_bus; csid_debug_args.csid_testbus_debug = hw_mgr->debug_cfg.csid_test_bus;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
csid_debug_args.csid_dbg_fps = hw_mgr->debug_cfg.csid_dbg_fps;
csid_debug_args.dbg_mode_switch = hw_mgr->debug_cfg.dbg_mode_switch;
#endif
/* Set SFE debug args */ /* Set SFE debug args */
sfe_debug_args.cache_config = false; sfe_debug_args.cache_config = false;
@ -7955,6 +7971,9 @@ static void cam_ife_hw_mgr_set_hw_debug_config(
for (i = 0; i < hw_mgr->isp_caps.num_ife_perf_counters; i++) for (i = 0; i < hw_mgr->isp_caps.num_ife_perf_counters; i++)
vfe_debug_args.vfe_perf_counter_val[i] = vfe_debug_args.vfe_perf_counter_val[i] =
hw_mgr->debug_cfg.ife_perf_counter_val[i]; hw_mgr->debug_cfg.ife_perf_counter_val[i];
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
vfe_debug_args.vfe_dbg_fps = hw_mgr->debug_cfg.vfe_dbg_fps;
#endif
/* Iterate over HW acquired for this stream and update debug config */ /* Iterate over HW acquired for this stream and update debug config */
for (i = 0; i < ctx->num_base; i++) { for (i = 0; i < ctx->num_base; i++) {
@ -8020,6 +8039,8 @@ static int cam_ife_mgr_start_hw(void *hw_mgr_priv, void *start_hw_args)
uint32_t primary_rdi_csid_res; uint32_t primary_rdi_csid_res;
struct cam_ife_csid_top_config_args csid_top_args = {0}; struct cam_ife_csid_top_config_args csid_top_args = {0};
struct cam_hw_intf *hw_intf; struct cam_hw_intf *hw_intf;
struct cam_isp_prepare_hw_update_data *hw_update_data;
struct cam_hw_config_args *cfg;
primary_rdi_src_res = CAM_ISP_HW_VFE_IN_MAX; primary_rdi_src_res = CAM_ISP_HW_VFE_IN_MAX;
primary_rdi_out_res = g_ife_hw_mgr.isp_caps.max_vfe_out_res_type; primary_rdi_out_res = g_ife_hw_mgr.isp_caps.max_vfe_out_res_type;
@ -8186,6 +8207,13 @@ start_only:
goto cdm_streamoff; goto cdm_streamoff;
} }
if (start_isp->is_internal_start) {
cfg = &start_isp->hw_config;
hw_update_data = (struct cam_isp_prepare_hw_update_data *)cfg->priv;
CAM_INFO(CAM_ISP, "Req: %lld ctx: %u rup_aup_mup: 0x%x", cfg->request_id,
ctx->ctx_index, hw_update_data->configured_rup_aup);
}
CAM_DBG(CAM_ISP, "START IFE OUT ... in ctx id:%u", CAM_DBG(CAM_ISP, "START IFE OUT ... in ctx id:%u",
ctx->ctx_index); ctx->ctx_index);
/* start the IFE out devices */ /* start the IFE out devices */
@ -8358,7 +8386,7 @@ static int cam_ife_mgr_reset(void *hw_mgr_priv, void *hw_reset_args)
CAM_DBG(CAM_ISP, "Reset CSID and VFE, ctx_idx: %u", ctx->ctx_index); CAM_DBG(CAM_ISP, "Reset CSID and VFE, ctx_idx: %u", ctx->ctx_index);
rc = cam_ife_hw_mgr_reset_csid(ctx, CAM_IFE_CSID_RESET_PATH); rc = cam_ife_hw_mgr_reset_csid(ctx, CAM_IFE_CSID_RESET_PATH, false);
if (rc) { if (rc) {
CAM_ERR(CAM_ISP, "Failed to reset CSID:%d rc: %d ctx_idx: %u", CAM_ERR(CAM_ISP, "Failed to reset CSID:%d rc: %d ctx_idx: %u",
@ -9599,6 +9627,11 @@ static int cam_isp_blob_csid_dynamic_switch_update(
hw_intf = ife_hw_mgr->csid_devices[ctx->base[i].idx]; hw_intf = ife_hw_mgr->csid_devices[ctx->base[i].idx];
if (hw_intf && hw_intf->hw_ops.process_cmd) { if (hw_intf && hw_intf->hw_ops.process_cmd) {
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_I2C)
CAM_INFO(CAM_ISP, "[SEN_DBG] CSID[%u] MUP %u reqId %lld",
hw_intf->hw_idx, prepare_hw_data->mup_val, prepare->packet->header.request_id);
#endif
rc = hw_intf->hw_ops.process_cmd( rc = hw_intf->hw_ops.process_cmd(
hw_intf->hw_priv, hw_intf->hw_priv,
CAM_ISP_HW_CMD_CSID_DYNAMIC_SWITCH_UPDATE, CAM_ISP_HW_CMD_CSID_DYNAMIC_SWITCH_UPDATE,
@ -9607,6 +9640,17 @@ static int cam_isp_blob_csid_dynamic_switch_update(
if (rc) if (rc)
CAM_ERR(CAM_ISP, "Dynamic switch update failed, ctx_idx: %u", CAM_ERR(CAM_ISP, "Dynamic switch update failed, ctx_idx: %u",
ctx->ctx_index); ctx->ctx_index);
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
if (rc == 0 &&
(g_ife_hw_mgr.debug_cfg.dbg_mode_switch == 1)) {
uint32_t sof_irq_en = 1;
rc = hw_intf->hw_ops.process_cmd(
hw_intf->hw_priv,
CAM_IFE_CSID_SOF_IRQ_DEBUG_FOR_MODESWITCH,
&sof_irq_en,
sizeof(uint32_t));
}
#endif
} }
} }
@ -10093,7 +10137,7 @@ static int cam_isp_blob_vfe_out_update(
struct cam_isp_vfe_wm_config *wm_config; struct cam_isp_vfe_wm_config *wm_config;
struct cam_kmd_buf_info *kmd_buf_info; struct cam_kmd_buf_info *kmd_buf_info;
struct cam_ife_hw_mgr_ctx *ctx = NULL; struct cam_ife_hw_mgr_ctx *ctx = NULL;
struct cam_isp_hw_mgr_res *isp_out_res; struct cam_isp_hw_mgr_res *isp_out_res = NULL;
struct cam_hw_intf *hw_intf = NULL; struct cam_hw_intf *hw_intf = NULL;
bool is_sfe_rd = false; bool is_sfe_rd = false;
uint32_t res_id_out, i; uint32_t res_id_out, i;
@ -10175,11 +10219,27 @@ static int cam_isp_blob_vfe_out_update(
return rc; return rc;
} }
if (ctx->sfe_out_map[res_id_out] == 0xFF) {
CAM_ERR(CAM_ISP, "Invalid index: %d for out_map", res_id_out);
return -EINVAL;
}
isp_out_res = &ctx->res_list_sfe_out[ctx->sfe_out_map[res_id_out]]; isp_out_res = &ctx->res_list_sfe_out[ctx->sfe_out_map[res_id_out]];
} else { } else {
if (ctx->vfe_out_map[res_id_out] == 0xFF) {
CAM_ERR(CAM_ISP, "Invalid index: %d for out_map", res_id_out);
return -EINVAL;
}
isp_out_res = &ctx->res_list_ife_out[ctx->vfe_out_map[res_id_out]]; isp_out_res = &ctx->res_list_ife_out[ctx->vfe_out_map[res_id_out]];
} }
if (!isp_out_res) {
CAM_ERR(CAM_ISP, "Invalid hw_mgr res, ctx_idx: %u", ctx->ctx_index);
return -EINVAL;
}
hw_intf = cam_ife_hw_mgr_get_hw_intf(blob_info->base_info); hw_intf = cam_ife_hw_mgr_get_hw_intf(blob_info->base_info);
if (!hw_intf || blob_info->base_info->split_id >= CAM_ISP_HW_SPLIT_MAX) { if (!hw_intf || blob_info->base_info->split_id >= CAM_ISP_HW_SPLIT_MAX) {
CAM_ERR(CAM_ISP, CAM_ERR(CAM_ISP,
@ -12749,6 +12809,7 @@ static int cam_ife_mgr_csid_add_reg_update(struct cam_ife_hw_mgr_ctx *ctx,
{ {
int i; int i;
int rc = 0; int rc = 0;
bool rup_done = false;
uint32_t hw_idx; uint32_t hw_idx;
struct cam_ife_hw_mgr *hw_mgr; struct cam_ife_hw_mgr *hw_mgr;
struct cam_isp_hw_mgr_res *hw_mgr_res; struct cam_isp_hw_mgr_res *hw_mgr_res;
@ -12820,8 +12881,11 @@ static int cam_ife_mgr_csid_add_reg_update(struct cam_ife_hw_mgr_ctx *ctx,
break; break;
} }
CAM_DBG(CAM_ISP, "Ctx:%u Reg update added id:%d num_res %d", CAM_DBG(CAM_ISP, "Ctx:%u Reg update added id:%d num_res %d configured val: 0x%x",
ctx->ctx_index, i, rup_args[i].num_res); ctx->ctx_index, i, rup_args[i].num_res, rup_args[i].value);
rup_done = true;
if (rup_done && !prepare_hw_data->configured_rup_aup)
prepare_hw_data->configured_rup_aup = rup_args[i].value;
} }
return rc; return rc;
@ -13340,6 +13404,7 @@ static int cam_ife_mgr_prepare_hw_update(void *hw_mgr_priv,
} }
prepare_hw_data = (struct cam_isp_prepare_hw_update_data *)prepare->priv; prepare_hw_data = (struct cam_isp_prepare_hw_update_data *)prepare->priv;
prepare_hw_data->configured_rup_aup = 0x0;
ctx = (struct cam_ife_hw_mgr_ctx *) prepare->ctxt_to_hw_map; ctx = (struct cam_ife_hw_mgr_ctx *) prepare->ctxt_to_hw_map;
hw_mgr = (struct cam_ife_hw_mgr *)hw_mgr_priv; hw_mgr = (struct cam_ife_hw_mgr *)hw_mgr_priv;
@ -14237,6 +14302,42 @@ static void *cam_ife_mgr_user_dump_stream_info(
return addr; return addr;
} }
static int cam_ife_mgr_cmd_get_path_sof_timestamp(
struct cam_ife_hw_mgr_ctx *ife_ctx)
{
int rc = -EINVAL;
uint32_t i;
struct cam_isp_hw_mgr_res *hw_mgr_res;
struct cam_hw_intf *hw_intf;
uint32_t dummy_args;
hw_mgr_res = list_first_entry(&ife_ctx->res_list_ife_csid,
struct cam_isp_hw_mgr_res, list);
for (i = 0; i < CAM_ISP_HW_SPLIT_MAX; i++) {
if (!hw_mgr_res->hw_res[i])
continue;
/*
* Get the SOF time stamp from left resource only.
*/
hw_intf = hw_mgr_res->hw_res[i]->hw_intf;
if (hw_intf->hw_ops.process_cmd) {
rc = hw_intf->hw_ops.process_cmd(
hw_intf->hw_priv,
CAM_IFE_CSID_CMD_GET_PATH_TIME_STAMP,
&dummy_args, sizeof(dummy_args));
}
}
if (rc)
CAM_ERR_RATE_LIMIT(CAM_ISP, "Getting sof time stamp failed, ctx_idx: %u",
ife_ctx->ctx_index);
return rc;
}
static int cam_ife_mgr_cmd(void *hw_mgr_priv, void *cmd_args) static int cam_ife_mgr_cmd(void *hw_mgr_priv, void *cmd_args)
{ {
int rc = 0; int rc = 0;
@ -14350,6 +14451,9 @@ static int cam_ife_mgr_cmd(void *hw_mgr_priv, void *cmd_args)
rc = cam_ife_mgr_cmd_get_last_consumed_addr(ctx, rc = cam_ife_mgr_cmd_get_last_consumed_addr(ctx,
(struct cam_isp_hw_done_event_data *)(isp_hw_cmd_args->cmd_data)); (struct cam_isp_hw_done_event_data *)(isp_hw_cmd_args->cmd_data));
break; break;
case CAM_ISP_HW_MGR_GET_PATH_SOF_TS:
rc = cam_ife_mgr_cmd_get_path_sof_timestamp(ctx);
break;
default: default:
CAM_ERR(CAM_ISP, "Invalid HW mgr command:0x%x, ctx_idx: %u", CAM_ERR(CAM_ISP, "Invalid HW mgr command:0x%x, ctx_idx: %u",
hw_cmd_args->cmd_type, ctx->ctx_index); hw_cmd_args->cmd_type, ctx->ctx_index);
@ -14700,7 +14804,7 @@ static int cam_ife_mgr_recover_hw(void *priv, void *data)
for (i = 0; i < recovery_data->no_of_context; i++) { for (i = 0; i < recovery_data->no_of_context; i++) {
ctx = recovery_data->affected_ctx[i]; ctx = recovery_data->affected_ctx[i];
rc = cam_ife_hw_mgr_reset_csid(ctx, rc = cam_ife_hw_mgr_reset_csid(ctx,
CAM_IFE_CSID_RESET_PATH); CAM_IFE_CSID_RESET_PATH, false);
if (rc) { if (rc) {
CAM_ERR(CAM_ISP, "Failed RESET, ctx_idx: %u", ctx->ctx_index); CAM_ERR(CAM_ISP, "Failed RESET, ctx_idx: %u", ctx->ctx_index);
@ -14862,7 +14966,8 @@ static bool cam_ife_hw_mgr_is_ctx_affected(
static int cam_ife_hw_mgr_find_affected_ctx( static int cam_ife_hw_mgr_find_affected_ctx(
struct cam_isp_hw_error_event_data *error_event_data, struct cam_isp_hw_error_event_data *error_event_data,
uint32_t curr_core_idx, uint32_t curr_core_idx,
struct cam_ife_hw_event_recovery_data *recovery_data) struct cam_ife_hw_event_recovery_data *recovery_data,
bool force_recover)
{ {
uint32_t affected_core[CAM_IFE_HW_NUM_MAX] = {0}; uint32_t affected_core[CAM_IFE_HW_NUM_MAX] = {0};
struct cam_ife_hw_mgr_ctx *ife_hwr_mgr_ctx = NULL; struct cam_ife_hw_mgr_ctx *ife_hwr_mgr_ctx = NULL;
@ -14889,7 +14994,8 @@ static int cam_ife_hw_mgr_find_affected_ctx(
affected_core, CAM_IFE_HW_NUM_MAX)) affected_core, CAM_IFE_HW_NUM_MAX))
continue; continue;
if (atomic_read(&ife_hwr_mgr_ctx->overflow_pending)) { /* Try to force recover for specific errors */
if (!force_recover && atomic_read(&ife_hwr_mgr_ctx->overflow_pending)) {
CAM_INFO(CAM_ISP, "CTX:%u already error reported", CAM_INFO(CAM_ISP, "CTX:%u already error reported",
ife_hwr_mgr_ctx->ctx_index); ife_hwr_mgr_ctx->ctx_index);
continue; continue;
@ -14967,7 +15073,7 @@ static int cam_ife_hw_mgr_handle_csid_error(
struct cam_isp_hw_error_event_info *err_evt_info; struct cam_isp_hw_error_event_info *err_evt_info;
struct cam_isp_hw_error_event_data error_event_data = {0}; struct cam_isp_hw_error_event_data error_event_data = {0};
struct cam_ife_hw_event_recovery_data recovery_data = {0}; struct cam_ife_hw_event_recovery_data recovery_data = {0};
bool is_bus_overflow = false; bool is_bus_overflow = false, force_recover = false;
if (!event_info->event_data) { if (!event_info->event_data) {
CAM_ERR(CAM_ISP, CAM_ERR(CAM_ISP,
@ -15032,8 +15138,13 @@ static int cam_ife_hw_mgr_handle_csid_error(
recovery_data.error_type = err_type; recovery_data.error_type = err_type;
} }
/* If internal recovery is requested, and overflow pending is set force recovery for out of sync */
if ((error_event_data.try_internal_recovery) && (atomic_read(&ctx->overflow_pending)))
force_recover = err_type & (CAM_ISP_HW_ERROR_CSID_SENSOR_SWITCH_ERROR |
CAM_ISP_HW_ERROR_CSID_SENSOR_FRAME_DROP);
rc = cam_ife_hw_mgr_find_affected_ctx(&error_event_data, rc = cam_ife_hw_mgr_find_affected_ctx(&error_event_data,
event_info->hw_idx, &recovery_data); event_info->hw_idx, &recovery_data, force_recover);
if (rc || !recovery_data.no_of_context) if (rc || !recovery_data.no_of_context)
goto end; goto end;
@ -15405,7 +15516,7 @@ static int cam_ife_hw_mgr_handle_sfe_hw_err(
error_event_data.error_type = CAM_ISP_HW_ERROR_VIOLATION; error_event_data.error_type = CAM_ISP_HW_ERROR_VIOLATION;
CAM_DBG(CAM_ISP, "Notify context for SFE error, ctx_idx: %u", ctx->ctx_index); CAM_DBG(CAM_ISP, "Notify context for SFE error, ctx_idx: %u", ctx->ctx_index);
cam_ife_hw_mgr_find_affected_ctx(&error_event_data, cam_ife_hw_mgr_find_affected_ctx(&error_event_data,
event_info->hw_idx, &recovery_data); event_info->hw_idx, &recovery_data, false);
} }
spin_unlock(&g_ife_hw_mgr.ctx_lock); spin_unlock(&g_ife_hw_mgr.ctx_lock);
@ -15465,7 +15576,7 @@ static int cam_ife_hw_mgr_handle_hw_err(
error_event_data.enable_req_dump = true; error_event_data.enable_req_dump = true;
rc = cam_ife_hw_mgr_find_affected_ctx(&error_event_data, rc = cam_ife_hw_mgr_find_affected_ctx(&error_event_data,
core_idx, &recovery_data); core_idx, &recovery_data, false);
if (rc || !recovery_data.no_of_context) if (rc || !recovery_data.no_of_context)
goto end; goto end;
@ -16134,6 +16245,68 @@ DEFINE_SIMPLE_ATTRIBUTE(cam_ife_csid_debug,
cam_ife_get_csid_debug, cam_ife_get_csid_debug,
cam_ife_set_csid_debug, "%16llu"); cam_ife_set_csid_debug, "%16llu");
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
static int cam_ife_set_csid_dbg_fps(void* data, u64 val)
{
g_ife_hw_mgr.debug_cfg.csid_dbg_fps = val;
CAM_INFO(CAM_ISP, "Set CSID Debug Fps value :%lld", val);
return 0;
}
static int cam_ife_get_csid_dbg_fps(void* data, u64* val)
{
*val = g_ife_hw_mgr.debug_cfg.csid_dbg_fps;
CAM_INFO(CAM_ISP, "Get CSID Debug Fps value :%lld",
g_ife_hw_mgr.debug_cfg.csid_dbg_fps);
return 0;
}
DEFINE_SIMPLE_ATTRIBUTE(cam_ife_csid_debug_fps,
cam_ife_get_csid_dbg_fps,
cam_ife_set_csid_dbg_fps, "%16llu");
static int cam_vfe_set_dbg_fps(void* data, u64 val)
{
g_ife_hw_mgr.debug_cfg.vfe_dbg_fps = val;
CAM_INFO(CAM_ISP, "Set VFE Debug Fps value :%lld", val);
return 0;
}
static int cam_vfe_get_dbg_fps(void* data, u64* val)
{
*val = g_ife_hw_mgr.debug_cfg.vfe_dbg_fps;
CAM_INFO(CAM_ISP, "Get VFE Debug Fps value :%lld",
g_ife_hw_mgr.debug_cfg.vfe_dbg_fps);
return 0;
}
DEFINE_SIMPLE_ATTRIBUTE(cam_vfe_debug_fps,
cam_vfe_get_dbg_fps,
cam_vfe_set_dbg_fps, "%16llu");
static int cam_ife_set_dbg_mode_switch(void* data, u64 val)
{
g_ife_hw_mgr.debug_cfg.dbg_mode_switch = val;
CAM_INFO(CAM_ISP, "Set Debug mode switch value :%lld", val);
return 0;
}
static int cam_ife_get_dbg_mode_switch(void* data, u64* val)
{
*val = g_ife_hw_mgr.debug_cfg.dbg_mode_switch ;
CAM_INFO(CAM_ISP, "Get Debug mode switch value :%lld",
g_ife_hw_mgr.debug_cfg.vfe_dbg_fps);
return 0;
}
DEFINE_SIMPLE_ATTRIBUTE(cam_debug_mode_switch,
cam_ife_get_dbg_mode_switch,
cam_ife_set_dbg_mode_switch, "%16llu");
#endif // defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
static int cam_ife_set_camif_debug(void *data, u64 val) static int cam_ife_set_camif_debug(void *data, u64 val)
{ {
g_ife_hw_mgr.debug_cfg.camif_debug = val; g_ife_hw_mgr.debug_cfg.camif_debug = val;
@ -16985,6 +17158,17 @@ static int cam_ife_hw_mgr_debug_register(void)
g_ife_hw_mgr.debug_cfg.dentry, NULL, &cam_isp_irq_injection); g_ife_hw_mgr.debug_cfg.dentry, NULL, &cam_isp_irq_injection);
debugfs_create_bool("enable_cdm_cmd_check", 0644, g_ife_hw_mgr.debug_cfg.dentry, debugfs_create_bool("enable_cdm_cmd_check", 0644, g_ife_hw_mgr.debug_cfg.dentry,
&g_ife_hw_mgr.debug_cfg.enable_cdm_cmd_check); &g_ife_hw_mgr.debug_cfg.enable_cdm_cmd_check);
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
debugfs_create_file("ife_csid_debug_fps", 0644,
g_ife_hw_mgr.debug_cfg.dentry, NULL, &cam_ife_csid_debug_fps);
debugfs_create_file("vfe_debug_fps", 0644,
g_ife_hw_mgr.debug_cfg.dentry, NULL, &cam_vfe_debug_fps);
g_ife_hw_mgr.debug_cfg.vfe_dbg_fps = 100;
debugfs_create_file("ife_debug_mode_switch", 0644,
g_ife_hw_mgr.debug_cfg.dentry, NULL, &cam_debug_mode_switch);
g_ife_hw_mgr.debug_cfg.dbg_mode_switch = 0;
#endif
end: end:
g_ife_hw_mgr.debug_cfg.enable_csid_recovery = 1; g_ife_hw_mgr.debug_cfg.enable_csid_recovery = 1;
return rc; return rc;

View File

@ -88,6 +88,11 @@ struct cam_ife_hw_mgr_debug {
bool disable_isp_drv; bool disable_isp_drv;
bool enable_presil_reg_dump; bool enable_presil_reg_dump;
bool enable_cdm_cmd_check; bool enable_cdm_cmd_check;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
uint32_t csid_dbg_fps;
uint32_t vfe_dbg_fps;
uint32_t dbg_mode_switch;
#endif
}; };
/** /**

View File

@ -372,6 +372,7 @@ struct cam_isp_prepare_hw_update_data {
uint32_t mup_val; uint32_t mup_val;
uint32_t num_exp; uint32_t num_exp;
uint64_t wm_bitmask; uint64_t wm_bitmask;
uint32_t configured_rup_aup;
bool mup_en; bool mup_en;
struct cam_isp_fcg_config_info fcg_info; struct cam_isp_fcg_config_info fcg_info;
}; };
@ -482,6 +483,7 @@ enum cam_isp_hw_mgr_command {
CAM_ISP_HW_MGR_GET_BUS_COMP_GROUP, CAM_ISP_HW_MGR_GET_BUS_COMP_GROUP,
CAM_ISP_HW_MGR_CMD_UPDATE_CLOCK, CAM_ISP_HW_MGR_CMD_UPDATE_CLOCK,
CAM_ISP_HW_MGR_GET_LAST_CONSUMED_ADDR, CAM_ISP_HW_MGR_GET_LAST_CONSUMED_ADDR,
CAM_ISP_HW_MGR_GET_PATH_SOF_TS,
CAM_ISP_HW_MGR_CMD_MAX, CAM_ISP_HW_MGR_CMD_MAX,
}; };

View File

@ -331,6 +331,11 @@ struct cam_ife_csid_debug_info {
uint32_t test_bus_val; uint32_t test_bus_val;
bool rx_capture_debug_set; bool rx_capture_debug_set;
bool test_bus_enabled; bool test_bus_enabled;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
uint32_t dbg_fps;
uint32_t dbg_mode_switch;
uint32_t sof_path_mask;
#endif
}; };
/* /*

View File

@ -28,6 +28,42 @@
#include "cam_subdev.h" #include "cam_subdev.h"
#include "cam_compat.h" #include "cam_compat.h"
#if defined(CONFIG_CAMERA_CDR_TEST)
#include "cam_clock_data_recovery.h"
#endif
#if defined(CONFIG_USE_CAMERA_HW_BIG_DATA)
#include "cam_sensor_cmn_header.h"
#include "cam_hw_bigdata.h"
#endif
#if defined(CONFIG_SEC_E1Q_PROJECT) || defined(CONFIG_SEC_E2Q_PROJECT) || defined(CONFIG_SEC_E3Q_PROJECT)\
|| defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_B6Q_PROJECT) || defined(CONFIG_SEC_GTS10P_PROJECT) || defined(CONFIG_SEC_GTS10U_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
// adb shell "echo 5,2115840000,4000 > /sys/module/camera/parameters/debug_hbi_vbi"
static int debug_hbi_vbi_count;
static unsigned int debug_hbi_vbi[3]; //phy, outputPixelClock, sensor width
module_param_array(debug_hbi_vbi, uint, &debug_hbi_vbi_count, 0644);
#endif
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
#define CAM_ISP_DBG_SOF_INTERVAL_RECORD_MAX (10)
#define CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX (3)//2
struct st_timing_record {
uint32_t mup_change;
uint32_t first_sof_after_mup;
};
struct st_timing_record ts_info_by_csid[CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX] = { 0, };
static uint32_t count_sof_record[CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX] = { 0, };
static uint32_t ts_sof_interval[CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX][CAM_ISP_DBG_SOF_INTERVAL_RECORD_MAX] = { {0,}, };
static void cam_ife_csid_ver2_dump_sof_ts(struct cam_ife_csid_ver2_hw* csid_hw);
static int cam_ife_csid_ver2_sof_irq_debug_4_mode_switch(
struct cam_ife_csid_ver2_hw* csid_hw,
void* cmd_args, bool sof_en);
static void cam_ife_csid_ver2_record_sof_ts(struct cam_ife_csid_ver2_hw* csid_hw,
uint32_t irq_status);
#endif
/* CSIPHY TPG VC/DT values */ /* CSIPHY TPG VC/DT values */
#define CAM_IFE_CPHY_TPG_VC_VAL 0x0 #define CAM_IFE_CPHY_TPG_VC_VAL 0x0
#define CAM_IFE_CPHY_TPG_DT_VAL 0x2B #define CAM_IFE_CPHY_TPG_DT_VAL 0x2B
@ -54,10 +90,14 @@
#define CAM_IFE_CSID_MAX_IRQ_ERROR_COUNT 100 #define CAM_IFE_CSID_MAX_IRQ_ERROR_COUNT 100
/* Max sensor switch out of sync threshold */ /* Max sensor switch out of sync threshold */
#define CAM_IFE_CSID_MAX_OUT_OF_SYNC_ERR_COUNT 3 #define CAM_IFE_CSID_MAX_OUT_OF_SYNC_ERR_COUNT 4
#define CAM_CSID_IRQ_CTRL_NAME_LEN 10 #define CAM_CSID_IRQ_CTRL_NAME_LEN 10
#define INC_HEAD(head, max_entries, ret) \
div_u64_rem(atomic64_add_return(1, head),\
max_entries, (ret))
static void cam_ife_csid_ver2_print_debug_reg_status( static void cam_ife_csid_ver2_print_debug_reg_status(
struct cam_ife_csid_ver2_hw *csid_hw, struct cam_ife_csid_ver2_hw *csid_hw,
struct cam_isp_resource_node *res); struct cam_isp_resource_node *res);
@ -235,6 +275,10 @@ static int cam_ife_csid_ver2_set_debug(
sizeof(struct cam_ife_csid_debug_info)); sizeof(struct cam_ife_csid_debug_info));
csid_hw->debug_info.debug_val = debug_args->csid_debug; csid_hw->debug_info.debug_val = debug_args->csid_debug;
csid_hw->debug_info.test_bus_val = debug_args->csid_testbus_debug; csid_hw->debug_info.test_bus_val = debug_args->csid_testbus_debug;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
csid_hw->debug_info.dbg_fps = debug_args->csid_dbg_fps;
csid_hw->debug_info.dbg_mode_switch = debug_args->dbg_mode_switch;
#endif
/* /*
* RX capture debug * RX capture debug
@ -365,6 +409,14 @@ static int cam_ife_csid_ver2_sof_irq_debug(
sof_irq_enable, &irq_mask); sof_irq_enable, &irq_mask);
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
if (csid_hw->debug_info.dbg_mode_switch != 0 ||
((csid_hw->debug_info.sof_path_mask & IFE_CSID_VER2_PATH_INFO_INPUT_SOF) ==
IFE_CSID_VER2_PATH_INFO_INPUT_SOF)) {
return 0;
}
#endif
if (sof_irq_enable) { if (sof_irq_enable) {
csid_hw->debug_info.path_mask |= csid_hw->debug_info.path_mask |=
IFE_CSID_VER2_PATH_INFO_INPUT_SOF; IFE_CSID_VER2_PATH_INFO_INPUT_SOF;
@ -389,9 +441,15 @@ static int cam_ife_csid_ver2_sof_irq_debug(
data_idx); data_idx);
cam_subdev_notify_message(CAM_CSIPHY_DEVICE_TYPE, cam_subdev_notify_message(CAM_CSIPHY_DEVICE_TYPE,
CAM_SUBDEV_MESSAGE_REG_DUMP, (void *)&data_idx); CAM_SUBDEV_MESSAGE_REG_DUMP, (void *)&data_idx);
#if defined(CONFIG_USE_CAMERA_HW_BIG_DATA)
hw_bigdata_mipi_from_ife_csid_ver2(csid_hw->rx_cfg.phy_sel - 1);
#endif
} }
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
if (csid_hw->debug_info.dbg_mode_switch != 0)
cam_ife_csid_ver2_dump_sof_ts(csid_hw);
#endif
return 0; return 0;
} }
@ -1269,6 +1327,9 @@ static inline uint32_t cam_ife_csid_ver2_input_core_to_hw_idx(int core_sel)
} }
} }
static int cam_ife_csid_ver2_dump_frame_stats(
struct cam_ife_csid_ver2_hw *csid_hw);
static int cam_ife_csid_ver2_handle_event_err( static int cam_ife_csid_ver2_handle_event_err(
struct cam_ife_csid_ver2_hw *csid_hw, struct cam_ife_csid_ver2_hw *csid_hw,
uint32_t irq_status, uint32_t irq_status,
@ -1321,6 +1382,7 @@ static int cam_ife_csid_ver2_handle_event_err(
cam_ife_csid_ver2_input_core_to_hw_idx(csid_hw->top_cfg.input_core_type); cam_ife_csid_ver2_input_core_to_hw_idx(csid_hw->top_cfg.input_core_type);
cam_ife_csid_ver2_print_camif_timestamps(csid_hw); cam_ife_csid_ver2_print_camif_timestamps(csid_hw);
cam_ife_csid_ver2_dump_frame_stats(csid_hw);
csid_hw->event_cb(csid_hw->token, CAM_ISP_HW_EVENT_ERROR, (void *)&evt); csid_hw->event_cb(csid_hw->token, CAM_ISP_HW_EVENT_ERROR, (void *)&evt);
@ -1511,6 +1573,20 @@ static int cam_ife_csid_ver2_rx_err_bottom_half(
if (!event_type) if (!event_type)
event_type |= CAM_ISP_HW_ERROR_CSID_FATAL; event_type |= CAM_ISP_HW_ERROR_CSID_FATAL;
#if IS_ENABLED(CONFIG_SEC_ABC)
cam_abc_send_event_mipi_error(csid_hw->rx_cfg.phy_sel - 1);
#if defined(CONFIG_SAMSUNG_DEBUG_HW_INFO)
cam_check_error_sensor_type(csid_hw->rx_cfg.phy_sel - 1);
#endif
#endif
#if defined(CONFIG_USE_CAMERA_HW_BIG_DATA)
hw_bigdata_mipi_from_ife_csid_ver2(csid_hw->rx_cfg.phy_sel - 1);
#endif
#if defined(CONFIG_CAMERA_CDR_TEST)
cam_clock_data_recovery_set_result(CDR_ERROR_MIPI);
#endif
if (data_idx < 0) if (data_idx < 0)
CAM_WARN(CAM_ISP, "Can't notify csiphy, incorrect phy selected=%d", CAM_WARN(CAM_ISP, "Can't notify csiphy, incorrect phy selected=%d",
data_idx); data_idx);
@ -1591,7 +1667,7 @@ void cam_ife_csid_hw_ver2_drv_err_handler(void *csid)
void cam_ife_csid_hw_ver2_mup_mismatch_handler( void cam_ife_csid_hw_ver2_mup_mismatch_handler(
void *csid, void *resource) void *csid, void *resource)
{ {
uint32_t idx = 0; uint32_t idx = 0, val;
struct timespec64 current_ts; struct timespec64 current_ts;
struct cam_ife_csid_ver2_hw *csid_hw = csid; struct cam_ife_csid_ver2_hw *csid_hw = csid;
struct cam_isp_resource_node *res = resource; struct cam_isp_resource_node *res = resource;
@ -1618,16 +1694,16 @@ void cam_ife_csid_hw_ver2_mup_mismatch_handler(
if (path_cfg->ts_comb_vcdt_en) { if (path_cfg->ts_comb_vcdt_en) {
ktime_get_boottime_ts64(&current_ts); ktime_get_boottime_ts64(&current_ts);
idx = cam_io_r_mb(soc_info->reg_map[0].mem_base + val = cam_io_r_mb(soc_info->reg_map[0].mem_base +
path_reg->timestamp_curr0_sof_addr) & path_reg->timestamp_curr0_sof_addr);
csid_reg->cmn_reg->ts_comb_vcdt_mask; idx = val & csid_reg->cmn_reg->ts_comb_vcdt_mask;
if (idx < CAM_IFE_CSID_MULTI_VC_DT_GRP_MAX) if (idx < CAM_IFE_CSID_MULTI_VC_DT_GRP_MAX)
CAM_INFO(CAM_ISP, CAM_INFO(CAM_ISP,
"CSID:%d Received frame with vc:%d on [id: %d name: %s] timestamp: %lld.%09lld", "CSID:%d Received frame with vc:%d on [id: %d name: %s] timestamp: %lld.%09lld register value: 0x%x",
csid_hw->hw_intf->hw_idx, cid_data->vc_dt[idx].vc, csid_hw->hw_intf->hw_idx, cid_data->vc_dt[idx].vc,
res->res_id, res->res_name, current_ts.tv_sec, res->res_id, res->res_name, current_ts.tv_sec,
current_ts.tv_nsec); current_ts.tv_nsec, val);
else else
CAM_ERR(CAM_ISP, CAM_ERR(CAM_ISP,
"CSID:%d Get invalid vc index: %d on [id: %d name: %s] timestamp: %lld.%09lld", "CSID:%d Get invalid vc index: %d on [id: %d name: %s] timestamp: %lld.%09lld",
@ -1772,6 +1848,41 @@ static void cam_ife_csid_ver2_print_debug_reg_status(
val3, res->res_name); val3, res->res_name);
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
#include <linux/ktime.h>
static ktime_t sof_ts, sof_curr_ts, eof_ts;
static void cam_ife_csid_ver2_print_debug_sensor_timing(
struct cam_ife_csid_ver2_hw* csid_hw,
uint32_t port_index,
uint32_t irq_status)
{
uint32_t hw_idx = (csid_hw->debug_info.dbg_fps >> 4) & 0xF;
uint32_t port_id = csid_hw->debug_info.dbg_fps & 0xF;
if (csid_hw->debug_info.dbg_fps == 0)
return;
if ((csid_hw->hw_intf->hw_idx == hw_idx) && // csid idx
(port_index == port_id)) // RDI 0 (2), IPP(7), ref: CAM_IFE_CSID_IRQ_REG_RDI_0
{
if (irq_status & IFE_CSID_VER2_PATH_INFO_INPUT_SOF) // SOF
{
sof_curr_ts = ktime_get();
CAM_INFO(CAM_ISP, "sof-sof %d us",
ktime_to_us(ktime_sub(sof_curr_ts, sof_ts)));
sof_ts = sof_curr_ts;
}
else if (irq_status & IFE_CSID_VER2_PATH_INFO_INPUT_EOF)
{
eof_ts = ktime_get();
CAM_INFO(CAM_ISP, "vvalid %d us",
ktime_to_us(ktime_sub(eof_ts, sof_ts)));
}
}
}
#endif
static int cam_ife_csid_ver2_parse_path_irq_status( static int cam_ife_csid_ver2_parse_path_irq_status(
struct cam_ife_csid_ver2_hw *csid_hw, struct cam_ife_csid_ver2_hw *csid_hw,
struct cam_isp_resource_node *res, struct cam_isp_resource_node *res,
@ -1814,6 +1925,21 @@ static int cam_ife_csid_ver2_parse_path_irq_status(
csid_hw->hw_intf->hw_idx, irq_reg_tag[index], csid_hw->hw_intf->hw_idx, irq_reg_tag[index],
irq_status, log_buf); irq_status, log_buf);
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
if (((csid_hw->debug_info.sof_path_mask & IFE_CSID_VER2_PATH_INFO_INPUT_SOF) ==
IFE_CSID_VER2_PATH_INFO_INPUT_SOF) &&
((csid_hw->debug_info.path_mask & IFE_CSID_VER2_PATH_INFO_INPUT_SOF) == 0)) {
uint32_t img_port_id = (csid_hw->flags.sfe_en == true) ? CAM_IFE_CSID_IRQ_REG_RDI_0 :
CAM_IFE_CSID_IRQ_REG_IPP;
if (index == img_port_id) {
cam_ife_csid_ver2_record_sof_ts(csid_hw, irq_status);
}
goto skip_irq_stat_print;
}
#endif
status = irq_status & csid_hw->debug_info.path_mask; status = irq_status & csid_hw->debug_info.path_mask;
bit_pos = 0; bit_pos = 0;
while (status) { while (status) {
@ -1824,6 +1950,11 @@ static int cam_ife_csid_ver2_parse_path_irq_status(
evt_payload->timestamp.tv_sec, evt_payload->timestamp.tv_sec,
evt_payload->timestamp.tv_nsec); evt_payload->timestamp.tv_nsec);
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
if (status & 0x1)
cam_ife_csid_ver2_print_debug_sensor_timing(csid_hw, index, irq_status);
#endif
bit_pos++; bit_pos++;
status >>= 1; status >>= 1;
} }
@ -1839,7 +1970,9 @@ static int cam_ife_csid_ver2_parse_path_irq_status(
csid_hw->counters.irq_debug_cnt = 0; csid_hw->counters.irq_debug_cnt = 0;
} }
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
skip_irq_stat_print:
#endif
return err_type; return err_type;
} }
@ -2544,7 +2677,7 @@ static int cam_ife_csid_ver2_reset_irq_top_half(uint32_t evt_id,
} }
static int cam_ife_csid_ver2_internal_reset( static int cam_ife_csid_ver2_internal_reset(
struct cam_ife_csid_ver2_hw *csid_hw, struct cam_ife_csid_ver2_hw *csid_hw, bool power_on_rst,
uint32_t rst_cmd, uint32_t rst_location, uint32_t rst_mode) uint32_t rst_cmd, uint32_t rst_location, uint32_t rst_mode)
{ {
uint32_t val = 0; uint32_t val = 0;
@ -2573,9 +2706,18 @@ static int cam_ife_csid_ver2_internal_reset(
cam_io_w_mb(0x0, mem_base + csi2_reg->cfg1_addr); cam_io_w_mb(0x0, mem_base + csi2_reg->cfg1_addr);
} }
if (csid_hw->sync_mode == CAM_ISP_HW_SYNC_SLAVE) /*
* After power on once the connection has been established
* between master and slave CSIDs, issuing a reset to master
* will also reset the slave. Reset to the slave is only needed
* when powering on the cores since at this point the master-slave
* connection is not established yet
*/
if ((csid_hw->sync_mode == CAM_ISP_HW_SYNC_SLAVE) && (!power_on_rst))
goto wait_only; goto wait_only;
CAM_DBG(CAM_ISP, "CSID[%u] issuing reset", csid_hw->hw_intf->hw_idx);
reinit_completion(&csid_hw->hw_info->hw_complete); reinit_completion(&csid_hw->hw_info->hw_complete);
/* Program the reset location */ /* Program the reset location */
@ -2636,14 +2778,16 @@ int cam_ife_csid_ver2_reset(void *hw_priv,
switch (reset->reset_type) { switch (reset->reset_type) {
case CAM_IFE_CSID_RESET_GLOBAL: case CAM_IFE_CSID_RESET_GLOBAL:
rc = cam_ife_csid_ver2_internal_reset(csid_hw, rc = cam_ife_csid_ver2_internal_reset(
csid_hw, reset->power_on_reset,
CAM_IFE_CSID_RESET_CMD_SW_RST, CAM_IFE_CSID_RESET_CMD_SW_RST,
CAM_IFE_CSID_RESET_LOC_COMPLETE, CAM_IFE_CSID_RESET_LOC_COMPLETE,
CAM_CSID_HALT_IMMEDIATELY); CAM_CSID_HALT_IMMEDIATELY);
break; break;
case CAM_IFE_CSID_RESET_PATH: case CAM_IFE_CSID_RESET_PATH:
rc = cam_ife_csid_ver2_internal_reset(csid_hw, rc = cam_ife_csid_ver2_internal_reset(
csid_hw, reset->power_on_reset,
CAM_IFE_CSID_RESET_CMD_HW_RST, CAM_IFE_CSID_RESET_CMD_HW_RST,
CAM_IFE_CSID_RESET_LOC_PATH_ONLY, CAM_IFE_CSID_RESET_LOC_PATH_ONLY,
CAM_CSID_HALT_IMMEDIATELY); CAM_CSID_HALT_IMMEDIATELY);
@ -2823,6 +2967,7 @@ static int cam_ife_csid_ver2_disable_path(
path_cfg->skip_discard_frame_cfg = false; path_cfg->skip_discard_frame_cfg = false;
path_cfg->num_frames_discard = 0; path_cfg->num_frames_discard = 0;
path_cfg->sof_cnt = 0; path_cfg->sof_cnt = 0;
atomic64_set(&path_cfg->frame_stats_cntr, -1);
atomic_set(&path_cfg->switch_out_of_sync_cnt, 0); atomic_set(&path_cfg->switch_out_of_sync_cnt, 0);
return rc; return rc;
} }
@ -3753,8 +3898,7 @@ static int cam_ife_csid_ver2_init_config_rdi_path(
res->res_id == CAM_IFE_PIX_PATH_RES_RDI_0)) res->res_id == CAM_IFE_PIX_PATH_RES_RDI_0))
cam_ife_csid_ver2_res_master_slave_cfg(csid_hw, res->res_id); cam_ife_csid_ver2_res_master_slave_cfg(csid_hw, res->res_id);
if (csid_hw->debug_info.debug_val & if (1) {
CAM_IFE_CSID_DEBUG_ENABLE_HBI_VBI_INFO) {
val = cam_io_r_mb(mem_base + val = cam_io_r_mb(mem_base +
path_reg->format_measure_cfg0_addr); path_reg->format_measure_cfg0_addr);
val |= cmn_reg->measure_en_hbi_vbi_cnt_mask; val |= cmn_reg->measure_en_hbi_vbi_cnt_mask;
@ -3927,8 +4071,7 @@ static int cam_ife_csid_ver2_init_config_pxl_path(
cam_io_w_mb(val, mem_base + path_reg->err_recovery_cfg0_addr); cam_io_w_mb(val, mem_base + path_reg->err_recovery_cfg0_addr);
} }
if (csid_hw->debug_info.debug_val & if (1) {
CAM_IFE_CSID_DEBUG_ENABLE_HBI_VBI_INFO) {
val = cam_io_r_mb(mem_base + val = cam_io_r_mb(mem_base +
path_reg->format_measure_cfg0_addr); path_reg->format_measure_cfg0_addr);
val |= csid_reg->cmn_reg->measure_en_hbi_vbi_cnt_mask; val |= csid_reg->cmn_reg->measure_en_hbi_vbi_cnt_mask;
@ -5395,6 +5538,56 @@ static void cam_ife_csid_ver2_send_secure_info(
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_I2C)
void cam_ife_csid_ver2_debug_mup_vc_dt(struct cam_ife_csid_ver2_hw* csid_hw)
{
#define MAX_RES_CHK (5)
struct sdebug_res_info {
uint32_t id;
const char* name;
bool sfe_en;
};
uint32_t vc0 = 0, vc1 = 0, dt0 = 0, dt1 = 0;
uint32_t val, i;
struct sdebug_res_info check_path_res_info[MAX_RES_CHK] = {
{CAM_IFE_PIX_PATH_RES_IPP, "IPP", false},
{CAM_IFE_PIX_PATH_RES_PPP, "PPP", false},
{CAM_IFE_PIX_PATH_RES_RDI_0, "RDI_0", true},
{CAM_IFE_PIX_PATH_RES_RDI_1, "RDI_1", true},
{CAM_IFE_PIX_PATH_RES_RDI_3, "RDI_3", true},
};
struct cam_hw_soc_info* soc_info;
const struct cam_ife_csid_ver2_reg_info* csid_reg;
void __iomem* mem_base;
if (csid_hw == NULL) return;
soc_info = &csid_hw->hw_info->soc_info;
mem_base = soc_info->reg_map[CAM_IFE_CSID_CLC_MEM_BASE_ID].mem_base;
csid_reg = (struct cam_ife_csid_ver2_reg_info*)
csid_hw->core_info->csid_reg;
for (i = 0; i < MAX_RES_CHK; i++) {
if (!csid_reg->path_reg[check_path_res_info[i].id]) continue;
if ((csid_hw->flags.sfe_en && !check_path_res_info[i].sfe_en) ||
(!csid_hw->flags.sfe_en && check_path_res_info[i].sfe_en))
continue;
val = cam_io_r_mb(mem_base + csid_reg->path_reg[check_path_res_info[i].id]->cfg0_addr);
vc0 = (val >> csid_reg->cmn_reg->vc_shift_val) & csid_reg->cmn_reg->vc_mask;
dt0 = (val >> csid_reg->cmn_reg->dt_shift_val) & csid_reg->cmn_reg->dt_mask;
val = cam_io_r_mb(mem_base + csid_reg->path_reg[check_path_res_info[i].id]->multi_vcdt_cfg0_addr);
vc1 = (val >> csid_reg->cmn_reg->multi_vcdt_vc1_shift_val) & csid_reg->cmn_reg->vc_mask;
dt1 = (val >> csid_reg->cmn_reg->multi_vcdt_dt1_shift_val) & csid_reg->cmn_reg->dt_mask;
CAM_DBG(CAM_ISP, "[AEB_DBG] CSID[%d] %s vc %d:%d dt 0x%x:0x%x",
csid_hw->hw_intf->hw_idx, check_path_res_info[i].name, vc0, vc1, dt0, dt1
);
}
}
#endif
int cam_ife_csid_ver2_start(void *hw_priv, void *args, int cam_ife_csid_ver2_start(void *hw_priv, void *args,
uint32_t arg_size) uint32_t arg_size)
{ {
@ -5644,6 +5837,10 @@ int cam_ife_csid_ver2_start(void *hw_priv, void *args,
csid_hw->hw_intf->hw_idx); csid_hw->hw_intf->hw_idx);
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_I2C)
cam_ife_csid_ver2_debug_mup_vc_dt(csid_hw);
#endif
csid_hw->flags.reset_awaited = false; csid_hw->flags.reset_awaited = false;
end: end:
mutex_unlock(&csid_hw->hw_info->hw_mutex); mutex_unlock(&csid_hw->hw_info->hw_mutex);
@ -5741,6 +5938,7 @@ int cam_ife_csid_ver2_stop(void *hw_priv,
/* Issue a halt & reset to ensure there is no HW activity post the halt block */ /* Issue a halt & reset to ensure there is no HW activity post the halt block */
reset.reset_type = CAM_IFE_CSID_RESET_PATH; reset.reset_type = CAM_IFE_CSID_RESET_PATH;
reset.power_on_reset = false;
cam_ife_csid_ver2_reset(hw_priv, &reset, cam_ife_csid_ver2_reset(hw_priv, &reset,
sizeof(struct cam_csid_reset_cfg_args)); sizeof(struct cam_csid_reset_cfg_args));
@ -6100,6 +6298,7 @@ static int cam_ife_csid_ver2_reg_update(
else else
cam_ife_csid_ver2_get_sc_reg_val_pair(csid_hw, reg_val_pair, rup_args); cam_ife_csid_ver2_get_sc_reg_val_pair(csid_hw, reg_val_pair, rup_args);
rup_args->value = reg_val_pair[1];
if (rup_args->reg_write) { if (rup_args->reg_write) {
for (i = 0; i < (2 * num_reg_val_pairs); i = i + 2) for (i = 0; i < (2 * num_reg_val_pairs); i = i + 2)
cam_io_w_mb(reg_val_pair[i + 1], csid_clc_membase + reg_val_pair[i]); cam_io_w_mb(reg_val_pair[i + 1], csid_clc_membase + reg_val_pair[i]);
@ -6111,6 +6310,76 @@ static int cam_ife_csid_ver2_reg_update(
return rc; return rc;
} }
static int cam_ife_csid_ver2_get_path_time_stamp(
struct cam_ife_csid_ver2_hw *csid_hw, void *cmd_args)
{
const struct cam_ife_csid_ver2_path_reg_info *path_reg;
struct cam_ife_csid_ver2_path_cfg *path_cfg = NULL;
struct cam_hw_soc_info *soc_info;
struct cam_ife_csid_ver2_reg_info *csid_reg;
struct cam_isp_resource_node *res;
int i = 0;
csid_reg = (struct cam_ife_csid_ver2_reg_info *)
csid_hw->core_info->csid_reg;
soc_info = &csid_hw->hw_info->soc_info;
if (csid_hw->hw_info->hw_state != CAM_HW_STATE_POWER_UP) {
CAM_ERR(CAM_ISP, "CSID:%u Invalid dev state :%d",
csid_hw->hw_intf->hw_idx,
csid_hw->hw_info->hw_state);
return -EINVAL;
}
for (i = CAM_IFE_PIX_PATH_RES_RDI_0; i <= CAM_IFE_PIX_PATH_RES_PPP; i++) {
res = &csid_hw->path_res[i];
path_cfg = (struct cam_ife_csid_ver2_path_cfg *)res->res_priv;
if (!path_cfg)
continue;
path_reg = csid_reg->path_reg[i];
if (!path_reg) {
CAM_ERR(CAM_ISP, "CSID:%u Invalid res :%d",
csid_hw->hw_intf->hw_idx, i);
return -EINVAL;
}
CAM_INFO(CAM_ISP, "CSID:%u Resource[id:%d name: %s]",
csid_hw->hw_intf->hw_idx, res->res_id, res->res_name);
CAM_INFO(CAM_ISP,
"qtimer current [SOF: 0x%llx EOF: 0x%llx] prev [SOF: 0x%llx EOF: 0x%llx]",
__cam_ife_csid_ver2_get_time_stamp(
soc_info->reg_map[0].mem_base,
path_reg->timestamp_curr0_sof_addr,
path_reg->timestamp_curr1_sof_addr,
path_cfg->ts_comb_vcdt_en,
csid_reg->cmn_reg->ts_comb_vcdt_mask),
__cam_ife_csid_ver2_get_time_stamp(
soc_info->reg_map[0].mem_base,
path_reg->timestamp_curr0_eof_addr,
path_reg->timestamp_curr1_eof_addr,
path_cfg->ts_comb_vcdt_en,
csid_reg->cmn_reg->ts_comb_vcdt_mask),
__cam_ife_csid_ver2_get_time_stamp(
soc_info->reg_map[0].mem_base,
path_reg->timestamp_perv0_sof_addr,
path_reg->timestamp_perv1_sof_addr,
path_cfg->ts_comb_vcdt_en,
csid_reg->cmn_reg->ts_comb_vcdt_mask),
__cam_ife_csid_ver2_get_time_stamp(
soc_info->reg_map[0].mem_base,
path_reg->timestamp_perv0_eof_addr,
path_reg->timestamp_perv1_eof_addr,
path_cfg->ts_comb_vcdt_en,
csid_reg->cmn_reg->ts_comb_vcdt_mask));
}
return 0;
}
static int cam_ife_csid_ver2_program_offline_go_cmd( static int cam_ife_csid_ver2_program_offline_go_cmd(
struct cam_ife_csid_ver2_hw *csid_hw, struct cam_ife_csid_ver2_hw *csid_hw,
void *cmd_args, uint32_t arg_size) void *cmd_args, uint32_t arg_size)
@ -6299,6 +6568,155 @@ static int cam_ife_csid_ver2_print_hbi_vbi(
"CSID[%u] Resource[id:%d name:%s hbi 0x%x vbi 0x%x]", "CSID[%u] Resource[id:%d name:%s hbi 0x%x vbi 0x%x]",
csid_hw->hw_intf->hw_idx, res->res_id, res->res_name, hbi, vbi); csid_hw->hw_intf->hw_idx, res->res_id, res->res_name, hbi, vbi);
#if defined(CONFIG_SEC_E1Q_PROJECT) || defined(CONFIG_SEC_E2Q_PROJECT) || defined(CONFIG_SEC_E3Q_PROJECT)\
|| defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_B6Q_PROJECT) || defined(CONFIG_SEC_GTS10P_PROJECT) || defined(CONFIG_SEC_GTS10U_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
if (debug_hbi_vbi[0] == csid_hw->rx_cfg.phy_sel - 1) {
/*
minHorizontalBlanking= RoundUp(OutputPixClkRate*csidHBIcycles/CSIDclockRate)
minCSIDVerticalBlanking=(csidVBIcycles/Ceiling((OutputWidthPixels+csidHBICycles),32)
minVerticalBlanking= RoundUp(OutputPixClkRate*minCSIDVerticalBlanking)/CSIDClockRate)
*/
uint64_t csidClockRate = 400000000;
uint64_t measure_h_blank = 0;
uint64_t measure_v_blank = 0;
uint64_t min_csid_v_blank = 0;
uint64_t csidHBIcycles = hbi & 0xFFF;
uint64_t csidVBIcycles = vbi & 0xFFFFFFFF;
uint64_t temp = 0;
measure_h_blank = (debug_hbi_vbi[1] * csidHBIcycles) / csidClockRate;
temp = (debug_hbi_vbi[2] + csidHBIcycles)/32;
min_csid_v_blank = csidVBIcycles / ((temp + 1) * 32);
measure_v_blank = (debug_hbi_vbi[1] * min_csid_v_blank) / csidClockRate;
if ((csid_hw->rx_cfg.phy_sel - 1) == WIDE_CAM)
CAM_INFO(CAM_ISP, "WIDE_CAM : measure_h_blank %d, measure_v_blank %d",
measure_h_blank, measure_v_blank);
else if ((csid_hw->rx_cfg.phy_sel - 1) == UW_CAM)
CAM_INFO(CAM_ISP, "UW_CAM : measure_h_blank %d, measure_v_blank %d",
measure_h_blank, measure_v_blank);
else if ((csid_hw->rx_cfg.phy_sel - 1) == TELE1_CAM)
CAM_INFO(CAM_ISP, "TELE1_CAM : measure_h_blank %d, measure_v_blank %d",
measure_h_blank, measure_v_blank);
else if ((csid_hw->rx_cfg.phy_sel - 1) == TELE2_CAM)
CAM_INFO(CAM_ISP, "TELE2_CAM : measure_h_blank %d, measure_v_blank %d",
measure_h_blank, measure_v_blank);
else if ((csid_hw->rx_cfg.phy_sel - 1) == FRONT_CAM)
CAM_INFO(CAM_ISP, "FRONT_CAM : measure_h_blank %d, measure_v_blank %d",
measure_h_blank, measure_v_blank);
else if ((csid_hw->rx_cfg.phy_sel - 1) == COVER_CAM)
CAM_INFO(CAM_ISP, "COVER_CAM : measure_h_blank %d, measure_v_blank %d",
measure_h_blank, measure_v_blank);
else if ((csid_hw->rx_cfg.phy_sel - 1) == FRONT_AUX)
CAM_INFO(CAM_ISP, "FRONT_AUX : measure_h_blank %d, measure_v_blank %d",
measure_h_blank, measure_v_blank);
else
CAM_ERR(CAM_ISP, "Unknown camera");
}
#endif
return 0;
}
static int cam_ife_csid_ver2_update_frame_stats(
struct cam_ife_csid_ver2_hw *csid_hw)
{
int i;
uint32_t index;
struct cam_isp_resource_node *res;
const struct cam_ife_csid_ver2_reg_info *csid_reg;
const struct cam_ife_csid_ver2_path_reg_info *path_reg;
struct cam_ife_csid_ver2_path_cfg *path_cfg;
struct cam_hw_soc_info *soc_info;
csid_reg = (struct cam_ife_csid_ver2_reg_info *)
csid_hw->core_info->csid_reg;
soc_info = &csid_hw->hw_info->soc_info;
for (i = 0; i < CAM_IFE_PIX_PATH_RES_MAX; i++) {
res = &csid_hw->path_res[i];
if (res->res_state != CAM_ISP_RESOURCE_STATE_STREAMING)
continue;
path_cfg = (struct cam_ife_csid_ver2_path_cfg *)res->res_priv;
path_reg = csid_reg->path_reg[res->res_id];
INC_HEAD(&path_cfg->frame_stats_cntr,
CAM_CSID_MAX_FRAME_STATS_CNTR, &index);
path_cfg->frame_stats[index].hbi =
cam_io_r_mb(soc_info->reg_map[0].mem_base +
path_reg->format_measure1_addr);
path_cfg->frame_stats[index].vbi =
cam_io_r_mb(soc_info->reg_map[0].mem_base +
path_reg->format_measure2_addr);
}
return 0;
}
static int cam_ife_csid_ver2_dump_frame_stats(
struct cam_ife_csid_ver2_hw *csid_hw)
{
int i, j;
uint32_t index, num_entries, oldest_entry, val0, val1;
struct cam_isp_resource_node *res;
const struct cam_ife_csid_ver2_reg_info *csid_reg;
const struct cam_ife_csid_ver2_path_reg_info *path_reg;
struct cam_ife_csid_ver2_path_cfg *path_cfg;
struct cam_hw_soc_info *soc_info;
struct cam_ife_csid_cid_data *cid_data;
int64_t state_head = 0;
csid_reg = (struct cam_ife_csid_ver2_reg_info *)
csid_hw->core_info->csid_reg;
soc_info = &csid_hw->hw_info->soc_info;
for (i = 0; i < CAM_IFE_PIX_PATH_RES_MAX; i++) {
res = &csid_hw->path_res[i];
if (res->res_state != CAM_ISP_RESOURCE_STATE_STREAMING)
continue;
path_cfg = (struct cam_ife_csid_ver2_path_cfg *)res->res_priv;
cid_data = &csid_hw->cid_data[path_cfg->cid];
path_reg = csid_reg->path_reg[res->res_id];
state_head = atomic64_read(&path_cfg->frame_stats_cntr);
val0 = cam_io_r_mb(soc_info->reg_map[0].mem_base +
path_reg->format_measure1_addr);
val1 = cam_io_r_mb(soc_info->reg_map[0].mem_base +
path_reg->format_measure2_addr);
CAM_INFO(CAM_ISP,
"PATH: %s current hbi_min: %u hbi_max: %u vblank: %u",
res->res_name, (val0 & 0xFFF), ((val0 >> 0x10) & 0xFFF), val1);
CAM_INFO(CAM_ISP, "vc0: %u dt0: %u vc1: %u dt1: %u vc1_valid: %u",
cid_data->vc_dt[CAM_IFE_CSID_MULTI_VC_DT_GRP_0].vc,
cid_data->vc_dt[CAM_IFE_CSID_MULTI_VC_DT_GRP_0].dt,
cid_data->vc_dt[CAM_IFE_CSID_MULTI_VC_DT_GRP_1].vc,
cid_data->vc_dt[CAM_IFE_CSID_MULTI_VC_DT_GRP_1].dt,
cid_data->vc_dt[CAM_IFE_CSID_MULTI_VC_DT_GRP_1].valid);
if (state_head == -1)
continue;
if (state_head < CAM_CSID_MAX_FRAME_STATS_CNTR) {
num_entries = state_head + 1;
oldest_entry = 0;
} else {
num_entries = CAM_CSID_MAX_FRAME_STATS_CNTR;
div_u64_rem(state_head + 1, CAM_CSID_MAX_FRAME_STATS_CNTR,
&oldest_entry);
}
index = oldest_entry;
for (j = 0; j < num_entries; j++) {
CAM_INFO(CAM_ISP,
"PATH: %s Index: %u hbi_min: %u hbi_max: %u vblank: %u",
res->res_name, index, (path_cfg->frame_stats[index].hbi & 0xFFF),
((path_cfg->frame_stats[index].hbi >> 0x10) & 0xFFF),
path_cfg->frame_stats[index].vbi);
index = (index + 1) % CAM_CSID_MAX_FRAME_STATS_CNTR;
}
}
return 0; return 0;
} }
@ -6314,6 +6732,10 @@ static int cam_ife_csid_ver2_set_dynamic_switch_config(
switch_update = switch_update =
(struct cam_ife_csid_mode_switch_update_args *)cmd_args; (struct cam_ife_csid_mode_switch_update_args *)cmd_args;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
cam_ife_csid_ver2_dump_sof_ts(csid_hw);
#endif
if (switch_update->mup_args.use_mup) { if (switch_update->mup_args.use_mup) {
csid_hw->rx_cfg.mup = switch_update->mup_args.mup_val; csid_hw->rx_cfg.mup = switch_update->mup_args.mup_val;
CAM_DBG(CAM_ISP, "CSID[%u] MUP %u", CAM_DBG(CAM_ISP, "CSID[%u] MUP %u",
@ -7106,6 +7528,15 @@ static int cam_ife_csid_ver2_process_cmd(void *hw_priv,
cmd_args)->node_res; cmd_args)->node_res;
cam_ife_csid_ver2_print_hbi_vbi(csid_hw, res); cam_ife_csid_ver2_print_hbi_vbi(csid_hw, res);
} }
#if defined(CONFIG_SEC_E1Q_PROJECT) || defined(CONFIG_SEC_E2Q_PROJECT) || defined(CONFIG_SEC_E3Q_PROJECT)\
|| defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_B6Q_PROJECT) || defined(CONFIG_SEC_GTS10P_PROJECT) || defined(CONFIG_SEC_GTS10U_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
else if (debug_hbi_vbi[1] > 0) {
res = ((struct cam_csid_get_time_stamp_args *)
cmd_args)->node_res;
cam_ife_csid_ver2_print_hbi_vbi(csid_hw, res);
}
#endif
cam_ife_csid_ver2_update_frame_stats(csid_hw);
break; break;
case CAM_IFE_CSID_SET_CSID_DEBUG: case CAM_IFE_CSID_SET_CSID_DEBUG:
rc = cam_ife_csid_ver2_set_debug(csid_hw, rc = cam_ife_csid_ver2_set_debug(csid_hw,
@ -7114,6 +7545,11 @@ static int cam_ife_csid_ver2_process_cmd(void *hw_priv,
case CAM_IFE_CSID_SOF_IRQ_DEBUG: case CAM_IFE_CSID_SOF_IRQ_DEBUG:
rc = cam_ife_csid_ver2_sof_irq_debug(csid_hw, cmd_args); rc = cam_ife_csid_ver2_sof_irq_debug(csid_hw, cmd_args);
break; break;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
case CAM_IFE_CSID_SOF_IRQ_DEBUG_FOR_MODESWITCH:
cam_ife_csid_ver2_sof_irq_debug_4_mode_switch(csid_hw, cmd_args, true);
break;
#endif
case CAM_ISP_HW_CMD_CSID_CLOCK_UPDATE: case CAM_ISP_HW_CMD_CSID_CLOCK_UPDATE:
rc = cam_ife_csid_ver2_set_csid_clock(csid_hw, cmd_args); rc = cam_ife_csid_ver2_set_csid_clock(csid_hw, cmd_args);
break; break;
@ -7200,6 +7636,9 @@ static int cam_ife_csid_ver2_process_cmd(void *hw_priv,
sof_addr_args); sof_addr_args);
} }
break; break;
case CAM_IFE_CSID_CMD_GET_PATH_TIME_STAMP:
rc = cam_ife_csid_ver2_get_path_time_stamp(csid_hw, cmd_args);
break;
default: default:
CAM_ERR(CAM_ISP, "CSID:%u unsupported cmd:%d", CAM_ERR(CAM_ISP, "CSID:%u unsupported cmd:%d",
csid_hw->hw_intf->hw_idx, cmd_type); csid_hw->hw_intf->hw_idx, cmd_type);
@ -7273,6 +7712,7 @@ static int cam_ife_ver2_hw_alloc_res(
res->res_state = CAM_ISP_RESOURCE_STATE_AVAILABLE; res->res_state = CAM_ISP_RESOURCE_STATE_AVAILABLE;
res->hw_intf = hw_intf; res->hw_intf = hw_intf;
res->res_priv = path_cfg; res->res_priv = path_cfg;
atomic64_set(&path_cfg->frame_stats_cntr, -1);
return 0; return 0;
} }
@ -7539,6 +7979,116 @@ int cam_ife_csid_ver2_irq_line_test(void *hw_priv)
return rc; return rc;
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
static int cam_ife_csid_ver2_sof_irq_debug_4_mode_switch(
struct cam_ife_csid_ver2_hw* csid_hw,
void* cmd_args, bool sof_en)
{
uint32_t sof_en_val = 10;
if (csid_hw != NULL) {
if (sof_en == true) {
sof_en_val = 1;
csid_hw->debug_info.sof_path_mask |= IFE_CSID_VER2_PATH_INFO_INPUT_SOF;
ts_info_by_csid[csid_hw->hw_intf->hw_idx].mup_change = ktime_to_us(ktime_get());
}
else {
sof_en_val = 0;
csid_hw->debug_info.sof_path_mask &= ~IFE_CSID_VER2_PATH_INFO_INPUT_SOF;
}
if (((csid_hw->debug_info.path_mask & IFE_CSID_VER2_PATH_INFO_INPUT_SOF) == 0) && // user didn't turn on SOF irq debug on purpose
((sof_en_val == 0) || (sof_en_val == 1))) {
cam_ife_csid_ver2_sof_irq_debug(csid_hw, &sof_en_val);
}
}
return 0;
}
static void cam_ife_csid_ver2_dump_sof_ts(struct cam_ife_csid_ver2_hw* csid_hw)
{
int i, j, k = 0;
int ts_sum = 0;
char out_str[15 * CAM_ISP_DBG_SOF_INTERVAL_RECORD_MAX] = "";
char tmp_str[15] = "";
if (!csid_hw) {
CAM_ERR(CAM_ISP, "csid_hw null");
return;
}
if (csid_hw->hw_intf->hw_idx >= CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX) {
CAM_DBG(CAM_ISP, "invalid csid idx %d", csid_hw->hw_intf->hw_idx);
return;
}
if (csid_hw->debug_info.dbg_mode_switch == 0) {
CAM_DBG(CAM_ISP, "sof_interval_debug OFF");
return;
}
for (i = 0; i < CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX; i++) {
ts_sum = 0;
for (k = 0; k < CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX; k++) {
ts_sum += ts_sof_interval[i][k];
}
if (ts_sum == 0) continue;
memset(out_str, '\0', sizeof(out_str));
for (j = 0; j < CAM_ISP_DBG_SOF_INTERVAL_RECORD_MAX; j++) {
memset(tmp_str, '\0', sizeof(tmp_str));
sprintf(tmp_str, "%d.%d '", ts_sof_interval[i][j] / 1000,
((ts_sof_interval[i][j] / 10000) % 10));
strcat(out_str, tmp_str);
}
CAM_INFO(CAM_ISP, "[SEN_DBG]csid[%d] mup[%d](%d.%d) 1st_sof(%d.%d) %s ms", i,
csid_hw->rx_cfg.mup,
ts_info_by_csid[i].mup_change / 1000000, ((ts_info_by_csid[i].mup_change / 10000000)),
ts_info_by_csid[i].first_sof_after_mup / 1000000, ((ts_info_by_csid[i].first_sof_after_mup / 10000000)),
out_str);
for (k = 0; k < CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX; k++) {
ts_sof_interval[i][k] = 0;
}
count_sof_record[i] = 0;
}
}
static void cam_ife_csid_ver2_record_sof_ts(struct cam_ife_csid_ver2_hw* csid_hw,
uint32_t irq_status)
{
static ktime_t old_sof_ts, new_sof_ts;
if ((csid_hw->hw_intf->hw_idx < CAM_ISP_DBG_RDI0_SOF_CSID_HW_IDX_MAX) &&
((irq_status & csid_hw->debug_info.sof_path_mask) == IFE_CSID_VER2_PATH_INFO_INPUT_SOF) &&
(count_sof_record[csid_hw->hw_intf->hw_idx] < CAM_ISP_DBG_SOF_INTERVAL_RECORD_MAX))
{
new_sof_ts = ktime_get();
if (count_sof_record[csid_hw->hw_intf->hw_idx] == 0) {
ts_info_by_csid[csid_hw->hw_intf->hw_idx].first_sof_after_mup = ktime_to_us(new_sof_ts);
}
ts_sof_interval[csid_hw->hw_intf->hw_idx][count_sof_record[csid_hw->hw_intf->hw_idx]++] = ktime_to_us(ktime_sub(new_sof_ts, old_sof_ts));
old_sof_ts = new_sof_ts;
if (count_sof_record[csid_hw->hw_intf->hw_idx] == CAM_ISP_DBG_SOF_INTERVAL_RECORD_MAX) {
uint32_t sof_en = 0;
cam_ife_csid_ver2_sof_irq_debug_4_mode_switch(csid_hw, &sof_en, false);
CAM_DBG(CAM_ISP, "[%d] stop ts record", csid_hw->hw_intf->hw_idx);
count_sof_record[csid_hw->hw_intf->hw_idx] += 1;
}
}
}
#endif
int cam_ife_csid_hw_ver2_init(struct cam_hw_intf *hw_intf, int cam_ife_csid_hw_ver2_init(struct cam_hw_intf *hw_intf,
struct cam_ife_csid_core_info *core_info, struct cam_ife_csid_core_info *core_info,
bool is_custom) bool is_custom)

View File

@ -12,6 +12,8 @@
#include "cam_ife_csid_soc.h" #include "cam_ife_csid_soc.h"
#include "cam_ife_csid_common.h" #include "cam_ife_csid_common.h"
#define CAM_CSID_MAX_FRAME_STATS_CNTR 5
#define IFE_CSID_VER2_TOP_INFO_VOTE_UP BIT(16) #define IFE_CSID_VER2_TOP_INFO_VOTE_UP BIT(16)
#define IFE_CSID_VER2_TOP_INFO_VOTE_DN BIT(17) #define IFE_CSID_VER2_TOP_INFO_VOTE_DN BIT(17)
#define IFE_CSID_VER2_TOP_ERR_NO_VOTE_DN BIT(18) #define IFE_CSID_VER2_TOP_ERR_NO_VOTE_DN BIT(18)
@ -250,6 +252,11 @@ struct cam_ife_csid_ver2_rup_aup_mask {
uint32_t rup_aup_set_mask; uint32_t rup_aup_set_mask;
}; };
struct cam_ife_csid_ver2_frame_statistics {
uint32_t hbi;
uint32_t vbi;
};
/* /*
* struct cam_ife_csid_ver2_path_cfg: place holder for path parameters * struct cam_ife_csid_ver2_path_cfg: place holder for path parameters
* *
@ -306,6 +313,9 @@ struct cam_ife_csid_ver2_path_cfg {
struct timespec64 eof_ts; struct timespec64 eof_ts;
struct cam_ife_csid_path_format path_format[CAM_ISP_VC_DT_CFG]; struct cam_ife_csid_path_format path_format[CAM_ISP_VC_DT_CFG];
struct cam_csid_secondary_evt_config sec_evt_config; struct cam_csid_secondary_evt_config sec_evt_config;
atomic64_t frame_stats_cntr;
struct cam_ife_csid_ver2_frame_statistics frame_stats[
CAM_CSID_MAX_FRAME_STATS_CNTR];
uint32_t cid; uint32_t cid;
uint32_t in_format[CAM_ISP_VC_DT_CFG]; uint32_t in_format[CAM_ISP_VC_DT_CFG];
uint32_t out_format; uint32_t out_format;

View File

@ -358,11 +358,13 @@ enum cam_ife_csid_reset_type {
* struct cam_ife_csid_reset_cfg- csid reset configuration * struct cam_ife_csid_reset_cfg- csid reset configuration
* @ reset_type : Global reset or path reset * @ reset_type : Global reset or path reset
* @res_node : resource need to be reset * @res_node : resource need to be reset
* @power_on_reset : Set if the reset is issued prior to streaming
* *
*/ */
struct cam_csid_reset_cfg_args { struct cam_csid_reset_cfg_args {
enum cam_ife_csid_reset_type reset_type; enum cam_ife_csid_reset_type reset_type;
struct cam_isp_resource_node *node_res; struct cam_isp_resource_node *node_res;
bool power_on_reset;
}; };
/** /**
@ -481,6 +483,7 @@ struct cam_isp_csid_reg_update_args {
bool reg_write; bool reg_write;
uint32_t mup_val; uint32_t mup_val;
uint32_t mup_en; uint32_t mup_en;
uint32_t value;
}; };
/* /*
@ -568,6 +571,10 @@ struct cam_ife_csid_debug_cfg_args {
uint32_t csid_rx_capture_debug; uint32_t csid_rx_capture_debug;
uint32_t csid_testbus_debug; uint32_t csid_testbus_debug;
bool rx_capture_debug_set; bool rx_capture_debug_set;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
uint32_t csid_dbg_fps;
uint32_t dbg_mode_switch;
#endif
}; };
/* /*

View File

@ -256,10 +256,14 @@ enum cam_isp_hw_cmd_type {
CAM_ISP_HW_CMD_IRQ_INJECTION, CAM_ISP_HW_CMD_IRQ_INJECTION,
CAM_ISP_HW_CMD_DUMP_IRQ_DESCRIPTION, CAM_ISP_HW_CMD_DUMP_IRQ_DESCRIPTION,
CAM_ISP_HW_CMD_GET_SET_PRIM_SOF_TS_ADDR, CAM_ISP_HW_CMD_GET_SET_PRIM_SOF_TS_ADDR,
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
CAM_IFE_CSID_SOF_IRQ_DEBUG_FOR_MODESWITCH,
#endif
CAM_ISP_HW_CMD_DYNAMIC_CLOCK_UPDATE, CAM_ISP_HW_CMD_DYNAMIC_CLOCK_UPDATE,
CAM_ISP_HW_CMD_SET_SYNC_HW_IDX, CAM_ISP_HW_CMD_SET_SYNC_HW_IDX,
CAM_ISP_HW_CMD_BUS_WM_DISABLE, CAM_ISP_HW_CMD_BUS_WM_DISABLE,
CAM_ISP_HW_CMD_BUFFER_ALIGNMENT_UPDATE, CAM_ISP_HW_CMD_BUFFER_ALIGNMENT_UPDATE,
CAM_IFE_CSID_CMD_GET_PATH_TIME_STAMP,
CAM_ISP_HW_CMD_MAX, CAM_ISP_HW_CMD_MAX,
}; };

View File

@ -12,7 +12,7 @@
#include "cam_tfe.h" #include "cam_tfe.h"
/* MAX TFE CSID instance */ /* MAX TFE CSID instance */
#define CAM_TFE_CSID_HW_NUM_MAX 4 #define CAM_TFE_CSID_HW_NUM_MAX 3
#define CAM_TFE_CSID_RDI_MAX 3 #define CAM_TFE_CSID_RDI_MAX 3
/** /**

View File

@ -405,6 +405,9 @@ struct cam_vfe_generic_debug_config {
uint32_t vfe_perf_counter_val[CAM_VFE_PERF_CNT_MAX]; uint32_t vfe_perf_counter_val[CAM_VFE_PERF_CNT_MAX];
bool disable_ife_mmu_prefetch; bool disable_ife_mmu_prefetch;
bool enable_ife_frame_irqs; bool enable_ife_frame_irqs;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
uint32_t vfe_dbg_fps;
#endif
}; };
/* /*

View File

@ -1842,7 +1842,7 @@ static int cam_sfe_top_handle_irq_bottom_half(
void *handler_priv, void *evt_payload_priv) void *handler_priv, void *evt_payload_priv)
{ {
int i; int i;
uint32_t val0, val1, frame_cnt, offset0, offset1; uint32_t val0, val1, frame_cnt = 0, offset0, offset1;
uint32_t irq_status[CAM_SFE_IRQ_REGISTERS_MAX] = {0}; uint32_t irq_status[CAM_SFE_IRQ_REGISTERS_MAX] = {0};
enum cam_sfe_hw_irq_status ret = CAM_SFE_IRQ_STATUS_MAX; enum cam_sfe_hw_irq_status ret = CAM_SFE_IRQ_STATUS_MAX;
struct cam_isp_resource_node *res = handler_priv; struct cam_isp_resource_node *res = handler_priv;

View File

@ -294,7 +294,7 @@ static int cam_vfe_hw_dump(
void *cmd_args, void *cmd_args,
uint32_t arg_size) uint32_t arg_size)
{ {
int i, j; int size, i, j;
uint8_t *dst; uint8_t *dst;
uint32_t reg_start_offset; uint32_t reg_start_offset;
uint32_t reg_dump_size = 0; uint32_t reg_dump_size = 0;
@ -337,9 +337,17 @@ static int cam_vfe_hw_dump(
soc_info = top_priv->top_common.soc_info; soc_info = top_priv->top_common.soc_info;
/*Dump registers */ /*Dump registers */
for (i = 0; i < dump_data->num_reg_dump_entries; i++) for (i = 0; i < dump_data->num_reg_dump_entries; i++) {
reg_dump_size += (dump_data->reg_entry[i].reg_dump_end - size = (dump_data->reg_entry[i].reg_dump_end -
dump_data->reg_entry[i].reg_dump_start); dump_data->reg_entry[i].reg_dump_start);
if (size >= 0) {
reg_dump_size += size;
} else {
CAM_WARN(CAM_ISP, "Invalid size %d", size);
return -EINVAL;
}
}
/* /*
* We dump the offset as well, so the total size dumped becomes * We dump the offset as well, so the total size dumped becomes
* multiplied by 2 * multiplied by 2

View File

@ -47,6 +47,9 @@ struct cam_vfe_top_ver4_priv {
struct cam_vfe_top_ver4_perf_counter_cfg perf_counters[CAM_VFE_PERF_CNT_MAX]; struct cam_vfe_top_ver4_perf_counter_cfg perf_counters[CAM_VFE_PERF_CNT_MAX];
struct cam_vfe_top_ver4_prim_sof_ts_reg_addr sof_ts_reg_addr; struct cam_vfe_top_ver4_prim_sof_ts_reg_addr sof_ts_reg_addr;
bool enable_ife_frame_irqs; bool enable_ife_frame_irqs;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
uint32_t vfe_dbg_fps;
#endif
}; };
enum cam_vfe_top_ver4_fsm_state { enum cam_vfe_top_ver4_fsm_state {
@ -1457,6 +1460,9 @@ int cam_vfe_top_ver4_process_cmd(void *device_priv, uint32_t cmd_type,
debug_cfg->vfe_perf_counter_val[i]; debug_cfg->vfe_perf_counter_val[i];
top_priv->enable_ife_frame_irqs = debug_cfg->enable_ife_frame_irqs; top_priv->enable_ife_frame_irqs = debug_cfg->enable_ife_frame_irqs;
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
top_priv->vfe_dbg_fps = debug_cfg->vfe_dbg_fps;
#endif
} }
break; break;
case CAM_ISP_HW_CMD_GET_SET_PRIM_SOF_TS_ADDR: { case CAM_ISP_HW_CMD_GET_SET_PRIM_SOF_TS_ADDR: {
@ -1706,6 +1712,71 @@ static int cam_vfe_handle_eof(struct cam_vfe_mux_ver4_data *vfe_priv,
return 0; return 0;
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
#include <linux/ktime.h>
static ktime_t sof_ts[CAM_SFE_HW_NUM_MAX] = { 0, },
sof_curr_ts[CAM_SFE_HW_NUM_MAX] = { 0, },
eof_ts[CAM_SFE_HW_NUM_MAX] = { 0, },
epoch_ts[CAM_SFE_HW_NUM_MAX] = { 0, };
static void cam_vfe_print_debug_sensor_timing(
struct cam_vfe_mux_ver4_data* vfe_priv)
{
uint32_t dbg_hw_idx[2] = { 0, },
curr_idx = 0;
bool is_vfe_idx_matching_good = false;
if ((vfe_priv == NULL) || (vfe_priv->top_priv == NULL) ||
(vfe_priv->top_priv->vfe_dbg_fps == 100))// no config
return;
curr_idx = vfe_priv->hw_intf->hw_idx;
if (vfe_priv->top_priv->vfe_dbg_fps / 100 >= 2) {
dbg_hw_idx[0] = (vfe_priv->top_priv->vfe_dbg_fps >> 4) & 0xf;
dbg_hw_idx[0] = dbg_hw_idx[0] > (CAM_SFE_HW_NUM_MAX -1) ?
(CAM_SFE_HW_NUM_MAX - 1) : dbg_hw_idx[0];
dbg_hw_idx[1] = (vfe_priv->top_priv->vfe_dbg_fps & 0xf);
dbg_hw_idx[1] = dbg_hw_idx[1] > (CAM_SFE_HW_NUM_MAX - 1) ?
(CAM_SFE_HW_NUM_MAX - 1) : dbg_hw_idx[1];
is_vfe_idx_matching_good = (curr_idx == dbg_hw_idx[0]) ||
(curr_idx == dbg_hw_idx[1]);
}
else {
dbg_hw_idx[0] = (vfe_priv->top_priv->vfe_dbg_fps & 0xf);
dbg_hw_idx[0] = dbg_hw_idx[0] > (CAM_SFE_HW_NUM_MAX - 1) ?
(CAM_SFE_HW_NUM_MAX - 1) : dbg_hw_idx[0];
is_vfe_idx_matching_good = (curr_idx == dbg_hw_idx[0]);
}
if (is_vfe_idx_matching_good) // vfe idx
{
if (vfe_priv->fsm_state == VFE_TOP_VER4_FSM_SOF) // SOF
{
sof_curr_ts[curr_idx] = ktime_get();
CAM_INFO(CAM_ISP, "[%d] sof-sof %d us", curr_idx,
ktime_to_us(ktime_sub(sof_curr_ts[curr_idx], sof_ts[curr_idx])));
sof_ts[curr_idx] = sof_curr_ts[curr_idx];
}
else if (vfe_priv->fsm_state == VFE_TOP_VER4_FSM_EOF)
{
eof_ts[curr_idx] = ktime_get();
CAM_INFO(CAM_ISP, "[%d] vvalid %d us", curr_idx,
ktime_to_us(ktime_sub(eof_ts[curr_idx], sof_ts[curr_idx])));
}
else if (vfe_priv->fsm_state == VFE_TOP_VER4_FSM_EPOCH)
{
epoch_ts[curr_idx] = ktime_get();
CAM_INFO(CAM_ISP, "[%d] sof-epoch %d us", curr_idx,
ktime_to_us(ktime_sub(epoch_ts[curr_idx], sof_ts[curr_idx])));
}
}
}
#endif
static int __cam_vfe_handle_frame_timing_irqs(struct cam_isp_resource_node *vfe_res, bool event, static int __cam_vfe_handle_frame_timing_irqs(struct cam_isp_resource_node *vfe_res, bool event,
enum cam_isp_hw_event_type event_type, cam_vfe_handle_frame_irq_t handle_irq_fn, enum cam_isp_hw_event_type event_type, cam_vfe_handle_frame_irq_t handle_irq_fn,
struct cam_vfe_top_irq_evt_payload *payload, struct cam_isp_hw_event_info *evt_info) struct cam_vfe_top_irq_evt_payload *payload, struct cam_isp_hw_event_info *evt_info)
@ -1717,6 +1788,9 @@ static int __cam_vfe_handle_frame_timing_irqs(struct cam_isp_resource_node *vfe_
cam_isp_hw_evt_type_to_string(event_type)); cam_isp_hw_evt_type_to_string(event_type));
} else { } else {
handle_irq_fn(vfe_priv, payload, evt_info); handle_irq_fn(vfe_priv, payload, evt_info);
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_TIMING)
cam_vfe_print_debug_sensor_timing(vfe_priv);
#endif
if (!(vfe_priv->top_priv->enable_ife_frame_irqs) if (!(vfe_priv->top_priv->enable_ife_frame_irqs)
&& vfe_priv->event_cb) && vfe_priv->event_cb)
vfe_priv->event_cb(vfe_priv->priv, event_type, evt_info); vfe_priv->event_cb(vfe_priv->priv, event_type, evt_info);

View File

@ -20,6 +20,9 @@
#include "cam_common_util.h" #include "cam_common_util.h"
#include "cam_mem_mgr.h" #include "cam_mem_mgr.h"
#include "cam_cpas_api.h" #include "cam_cpas_api.h"
#if defined(CONFIG_CAMERA_CDR_TEST)
#include "cam_clock_data_recovery.h"
#endif
static struct cam_req_mgr_core_device *g_crm_core_dev; static struct cam_req_mgr_core_device *g_crm_core_dev;
static struct cam_req_mgr_core_link g_links[MAXIMUM_LINKS_CAPACITY]; static struct cam_req_mgr_core_link g_links[MAXIMUM_LINKS_CAPACITY];
@ -558,6 +561,38 @@ static int __cam_req_mgr_send_evt(
return 0; return 0;
} }
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_I2C)
static int __cam_req_mgr_send_evt_to_sensor(
uint64_t req_id,
enum cam_req_mgr_link_evt_type type,
enum cam_req_mgr_device_error error,
struct cam_req_mgr_core_link *link)
{
int i;
struct cam_req_mgr_link_evt_data evt_data = {0};
struct cam_req_mgr_connected_device *device = NULL;
CAM_DBG(CAM_CRM,
"Notify event type: %d to all connected devices on link: 0x%x",
type, link->link_hdl);
for (i = 0; i < link->num_devs; i++) {
device = &link->l_dev[i];
if ((device != NULL) && (NULL != strstr(device->dev_info.name, "sensor"))) {
evt_data.dev_hdl = device->dev_hdl;
evt_data.evt_type = type;
evt_data.link_hdl = link->link_hdl;
evt_data.req_id = req_id;
evt_data.u.error = error;
if (device->ops && device->ops->process_evt)
device->ops->process_evt(&evt_data);
}
}
return 0;
}
#endif
/** /**
* __cam_req_mgr_notify_error_on_link() * __cam_req_mgr_notify_error_on_link()
* *
@ -979,6 +1014,8 @@ static void __cam_req_mgr_reset_req_slot(struct cam_req_mgr_core_link *link,
slot->sync_mode = CAM_REQ_MGR_SYNC_MODE_NO_SYNC; slot->sync_mode = CAM_REQ_MGR_SYNC_MODE_NO_SYNC;
slot->status = CRM_SLOT_STATUS_NO_REQ; slot->status = CRM_SLOT_STATUS_NO_REQ;
slot->num_sync_links = 0; slot->num_sync_links = 0;
slot->ts = 0;
slot->apply_ts = 0;
for (i = 0; i < MAXIMUM_LINKS_PER_SESSION - 1; i++) for (i = 0; i < MAXIMUM_LINKS_PER_SESSION - 1; i++)
slot->sync_link_hdls[i] = 0; slot->sync_link_hdls[i] = 0;
@ -1423,6 +1460,8 @@ static int __cam_req_mgr_send_req(struct cam_req_mgr_core_link *link,
apply_req.dev_hdl = dev->dev_hdl; apply_req.dev_hdl = dev->dev_hdl;
apply_req.request_id = apply_req.request_id =
apply_data[pd].req_id; apply_data[pd].req_id;
idx = apply_data[pd].idx;
slot = &dev->pd_tbl->slot[idx];
apply_req.report_if_bubble = apply_req.report_if_bubble =
in_q->slot[idx].recover; in_q->slot[idx].recover;
@ -2446,6 +2485,7 @@ static int __cam_req_mgr_process_req(struct cam_req_mgr_core_link *link,
if (is_applied) { if (is_applied) {
slot->status = CRM_SLOT_STATUS_REQ_APPLIED; slot->status = CRM_SLOT_STATUS_REQ_APPLIED;
slot->apply_ts = ktime_get();
CAM_DBG(CAM_CRM, "req %d is applied on link %x success", CAM_DBG(CAM_CRM, "req %d is applied on link %x success",
slot->req_id, slot->req_id,
@ -2649,8 +2689,13 @@ static int __cam_req_mgr_process_sof_freeze(void *priv, void *data)
struct cam_req_mgr_req_queue *in_q = NULL; struct cam_req_mgr_req_queue *in_q = NULL;
struct cam_req_mgr_core_session *session = NULL; struct cam_req_mgr_core_session *session = NULL;
struct cam_req_mgr_message msg = {0}; struct cam_req_mgr_message msg = {0};
int rc = 0; struct cam_req_mgr_slot *slot;
int rc = 0, i, diff;
uint32_t wr_idx, iterator;
int64_t last_applied_req_id = -EINVAL; int64_t last_applied_req_id = -EINVAL;
struct cam_req_mgr_apply *apply_data;
struct timespec64 apply_time;
struct timespec64 sched_time;
if (!data || !priv) { if (!data || !priv) {
CAM_ERR(CAM_CRM, "input args NULL %pK %pK", data, priv); CAM_ERR(CAM_CRM, "input args NULL %pK %pK", data, priv);
@ -2665,14 +2710,18 @@ static int __cam_req_mgr_process_sof_freeze(void *priv, void *data)
} }
in_q = link->req.in_q; in_q = link->req.in_q;
if (in_q) { if (link->state == CAM_CRM_LINK_STATE_AVAILABLE || !in_q) {
mutex_lock(&link->req.lock); CAM_WARN(CAM_CRM, "Link %x not available state %d in_q %x",
if (in_q->last_applied_idx >= 0) link->link_hdl, link->state, in_q);
last_applied_req_id = return -EINVAL;
in_q->slot[in_q->last_applied_idx].req_id;
mutex_unlock(&link->req.lock);
} }
mutex_lock(&link->req.lock);
if (in_q->last_applied_idx >= 0)
last_applied_req_id =
in_q->slot[in_q->last_applied_idx].req_id;
mutex_unlock(&link->req.lock);
spin_lock_bh(&link->link_state_spin_lock); spin_lock_bh(&link->link_state_spin_lock);
if ((link->watchdog) && (link->watchdog->pause_timer)) { if ((link->watchdog) && (link->watchdog->pause_timer)) {
CAM_INFO(CAM_CRM, CAM_INFO(CAM_CRM,
@ -2683,6 +2732,24 @@ static int __cam_req_mgr_process_sof_freeze(void *priv, void *data)
} }
spin_unlock_bh(&link->link_state_spin_lock); spin_unlock_bh(&link->link_state_spin_lock);
wr_idx = in_q->wr_idx;
if (in_q->wr_idx > in_q->rd_idx)
diff = in_q->wr_idx - in_q->rd_idx;
else
diff = in_q->rd_idx - in_q->wr_idx;
iterator = in_q->rd_idx;
apply_data = link->req.apply_data;
for (i = 0; i < diff; i++) {
slot = &in_q->slot[iterator];
sched_time = ktime_to_timespec64(slot->ts);
apply_time = ktime_to_timespec64(slot->apply_ts);
CAM_INFO(CAM_CRM, "Open req for %llu sched_ts[%lld:%06ld] apply_ts[%lld:%06ld]",
slot->req_id, sched_time.tv_sec, sched_time.tv_nsec / NSEC_PER_USEC,
apply_time.tv_sec, apply_time.tv_nsec / NSEC_PER_USEC);
__cam_req_mgr_inc_idx(&iterator, 1, in_q->num_slots);
}
CAM_ERR(CAM_CRM, CAM_ERR(CAM_CRM,
"SOF freeze for session: %d link: 0x%x max_pd: %d last_req_id:%d", "SOF freeze for session: %d link: 0x%x max_pd: %d last_req_id:%d",
session->session_hdl, link->link_hdl, link->max_delay, session->session_hdl, link->link_hdl, link->max_delay,
@ -3221,6 +3288,7 @@ int cam_req_mgr_process_sched_req(void *priv, void *data)
slot->sync_mode = sched_req->sync_mode; slot->sync_mode = sched_req->sync_mode;
slot->skip_idx = 0; slot->skip_idx = 0;
slot->recover = sched_req->bubble_enable; slot->recover = sched_req->bubble_enable;
slot->ts = ktime_get();
if (sched_req->additional_timeout < 0) { if (sched_req->additional_timeout < 0) {
CAM_WARN(CAM_CRM, CAM_WARN(CAM_CRM,
@ -3784,6 +3852,11 @@ int cam_req_mgr_process_error(void *priv, void *data)
/* Apply immediately to highest pd device on same frame */ /* Apply immediately to highest pd device on same frame */
__cam_req_mgr_apply_on_bubble(link, err_info); __cam_req_mgr_apply_on_bubble(link, err_info);
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_I2C)
__cam_req_mgr_send_evt_to_sensor(err_info->req_id,
CAM_REQ_MGR_LINK_EVT_ERR, err_info->error, link);
#endif
} }
break; break;
case CRM_KMD_ERR_FATAL: case CRM_KMD_ERR_FATAL:
@ -5541,6 +5614,10 @@ int cam_req_mgr_link_control(struct cam_req_mgr_link_control *control)
"Activate link: 0x%x init_timeout: %d ms", "Activate link: 0x%x init_timeout: %d ms",
link->link_hdl, control->init_timeout[i]); link->link_hdl, control->init_timeout[i]);
/* Start SOF watchdog timer */ /* Start SOF watchdog timer */
#if defined(CONFIG_CAMERA_CDR_TEST)
if (cam_clock_data_recovery_is_requested())
init_timeout = 1800;
#endif
rc = crm_timer_init(&link->watchdog, rc = crm_timer_init(&link->watchdog,
(init_timeout + CAM_REQ_MGR_WATCHDOG_TIMEOUT), (init_timeout + CAM_REQ_MGR_WATCHDOG_TIMEOUT),
link, &__cam_req_mgr_sof_freeze); link, &__cam_req_mgr_sof_freeze);

View File

@ -338,6 +338,8 @@ struct cam_req_mgr_slot {
int32_t num_sync_links; int32_t num_sync_links;
int32_t sync_link_hdls[MAXIMUM_LINKS_PER_SESSION - 1]; int32_t sync_link_hdls[MAXIMUM_LINKS_PER_SESSION - 1];
uint32_t bubble_times; uint32_t bubble_times;
ktime_t ts;
ktime_t apply_ts;
bool internal_recovered; bool internal_recovered;
}; };

View File

@ -29,6 +29,9 @@
#include "cam_cpas_hw.h" #include "cam_cpas_hw.h"
#include "cam_compat.h" #include "cam_compat.h"
#include "camera_main.h" #include "camera_main.h"
#if defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
#include <linux/gpio.h>
#endif
#define CAM_REQ_MGR_EVENT_MAX 30 #define CAM_REQ_MGR_EVENT_MAX 30
#define CAM_I3C_MASTER_COMPAT "qcom,geni-i3c" #define CAM_I3C_MASTER_COMPAT "qcom,geni-i3c"
@ -1090,6 +1093,20 @@ static int cam_req_mgr_probe(struct platform_device *pdev)
uint32_t cam_bypass_driver = 0; uint32_t cam_bypass_driver = 0;
struct device_node *of_node = NULL; struct device_node *of_node = NULL;
#if defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
struct regulator *rgltr = NULL;
if (!gpio_get_value(UPPER_C2C_DET_GPIO)) {
rgltr = devm_regulator_get_optional(dev,
"CAM1_s2mpb03-l7");
if (IS_ERR_OR_NULL(rgltr)) {
CAM_ERR(CAM_CRM, "deferring probe, Wait PB03 probe");
rc = -EPROBE_DEFER;
goto end;
}
}
#endif
for (i = 0; i < ARRAY_SIZE(cam_component_i2c_drivers); i++) { for (i = 0; i < ARRAY_SIZE(cam_component_i2c_drivers); i++) {
while ((np = of_find_compatible_node(np, NULL, while ((np = of_find_compatible_node(np, NULL,
cam_component_i2c_drivers[i]->driver.of_match_table->compatible))) { cam_component_i2c_drivers[i]->driver.of_match_table->compatible))) {

View File

@ -11,6 +11,22 @@
#include "cam_trace.h" #include "cam_trace.h"
#include "cam_common_util.h" #include "cam_common_util.h"
#include "cam_packet_util.h" #include "cam_packet_util.h"
#if defined(CONFIG_USE_CAMERA_HW_BIG_DATA)
#include "cam_hw_bigdata.h"
#endif
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
#include "cam_ois_core.h"
#include "cam_ois_mcu_stm32g.h"
#endif
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
extern struct cam_ois_ctrl_t *g_o_ctrl;
#endif
#if defined(CONFIG_SAMSUNG_ACTUATOR_HW_SOFTLANDING)
#define ACTUATOR_IDLE 0x0
#define ACTUATOR_BUSY 0x1
#endif
int32_t cam_actuator_construct_default_power_setting( int32_t cam_actuator_construct_default_power_setting(
struct cam_sensor_power_ctrl_t *power_info) struct cam_sensor_power_ctrl_t *power_info)
@ -51,7 +67,11 @@ free_power_settings:
return rc; return rc;
} }
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
int32_t cam_actuator_power_up(struct cam_actuator_ctrl_t *a_ctrl)
#else
static int32_t cam_actuator_power_up(struct cam_actuator_ctrl_t *a_ctrl) static int32_t cam_actuator_power_up(struct cam_actuator_ctrl_t *a_ctrl)
#endif
{ {
int rc = 0; int rc = 0;
struct cam_hw_soc_info *soc_info = &a_ctrl->soc_info; struct cam_hw_soc_info *soc_info = &a_ctrl->soc_info;
@ -67,12 +87,21 @@ static int32_t cam_actuator_power_up(struct cam_actuator_ctrl_t *a_ctrl)
(power_info->power_down_setting == NULL)) { (power_info->power_down_setting == NULL)) {
CAM_INFO(CAM_ACTUATOR, CAM_INFO(CAM_ACTUATOR,
"Using default power settings"); "Using default power settings");
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
rc = cam_get_dt_power_setting_data(soc_info->dev->of_node,
soc_info, power_info);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "failed in getting power settings");
return rc;
}
#else
rc = cam_actuator_construct_default_power_setting(power_info); rc = cam_actuator_construct_default_power_setting(power_info);
if (rc < 0) { if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, CAM_ERR(CAM_ACTUATOR,
"Construct default actuator power setting failed."); "Construct default actuator power setting failed.");
return rc; return rc;
} }
#endif
} }
/* Parse and fill vreg params for power up settings */ /* Parse and fill vreg params for power up settings */
@ -123,7 +152,185 @@ cci_failure:
return rc; return rc;
} }
#if defined(CONFIG_SAMSUNG_ACTUATOR_HW_SOFTLANDING)
int32_t cam_actuator_i2c_read(struct cam_actuator_ctrl_t *a_ctrl, uint32_t addr,
uint32_t *data,
enum camera_sensor_i2c_type addr_type,
enum camera_sensor_i2c_type data_type)
{
int rc = 0;
if (a_ctrl == NULL) {
CAM_ERR(CAM_ACTUATOR, "failed. a_ctrl is NULL");
return -EINVAL;
}
rc = camera_io_dev_read(&a_ctrl->io_master_info, addr,
(uint32_t *)data, addr_type, data_type, false);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "Failed to read 0x%x", addr);
}
return rc;
}
int32_t cam_actuator_i2c_write(struct cam_actuator_ctrl_t *a_ctrl, uint32_t reg_addr,
uint32_t reg_data, uint32_t data_type)
{
struct cam_sensor_i2c_reg_setting reg_setting;
struct cam_sensor_i2c_reg_array reg_arr;
int rc = 0;
memset(&reg_setting, 0, sizeof(reg_setting));
memset(&reg_arr, 0, sizeof(reg_arr));
if (a_ctrl == NULL) {
CAM_ERR(CAM_ACTUATOR, "failed. a_ctrl is NULL");
return -EINVAL;
}
reg_setting.size = 1;
reg_setting.addr_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
reg_setting.data_type = data_type;
reg_setting.reg_setting = &reg_arr;
reg_arr.reg_addr = reg_addr;
reg_arr.reg_data = reg_data;
rc = camera_io_dev_write(&a_ctrl->io_master_info, &reg_setting);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "Failed to random write I2C settings for reg:0x%x data:0x%x err:%d", reg_addr, reg_data, rc);
}
return rc;
}
int32_t cam_actuator_get_status(struct cam_actuator_ctrl_t *a_ctrl, uint16_t *info)
{
int32_t rc = 0;
uint32_t val = 0;
rc = cam_actuator_i2c_read(a_ctrl, 0x05, &val, CAMERA_SENSOR_I2C_TYPE_BYTE, CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "get status i2c read fail:%d", rc);
return -EINVAL;
}
*info = ((val & 0x03) == 0) ? ACTUATOR_IDLE : ACTUATOR_BUSY;
return rc;
}
void cam_actuator_busywait(struct cam_actuator_ctrl_t *a_ctrl)
{
uint16_t info = 0, status_check_count = 0;
int32_t rc = 0;
CAM_INFO(CAM_ACTUATOR, "before to check status");
do {
rc = cam_actuator_get_status(a_ctrl, &info);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "cam_actuator_get_status failed:%d", rc);
}
if (info) {
CAM_DBG(CAM_ACTUATOR, "Busy");
msleep(10);
}
status_check_count++;
} while (info && status_check_count < 8);
if(status_check_count == 8)
CAM_ERR(CAM_ACTUATOR, "status check failed");
else
CAM_INFO(CAM_ACTUATOR, "Idle");
}
int32_t cam_actuator_do_soft_landing(struct cam_actuator_ctrl_t *a_ctrl)
{
int32_t rc = 0;
uint32_t pos1, pos2;
uint32_t position;
uint32_t reg_data;
// Check if IC is off
cam_actuator_busywait(a_ctrl);
rc = cam_actuator_i2c_read(a_ctrl, 0x02, &reg_data, CAMERA_SENSOR_I2C_TYPE_BYTE, CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "IC status - i2c read fail err:%d", rc);
return -EINVAL;
}
if ((reg_data & 0x01) == 0x01) {
CAM_ERR(CAM_ACTUATOR, "park lens skip for dev:0x%x reg[0x02]:0x%x", a_ctrl->io_master_info.client->addr, reg_data);
return rc;
}
// read DAC value to get position of lens
rc = cam_actuator_i2c_read(a_ctrl, 0x03, &pos1, CAMERA_SENSOR_I2C_TYPE_BYTE, CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "det pos1 - i2c read fail err:%d", rc);
return -EINVAL;
}
rc = cam_actuator_i2c_read(a_ctrl, 0x04, &pos2, CAMERA_SENSOR_I2C_TYPE_BYTE, CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "det pos2 - i2c read fail err:%d", rc);
return -EINVAL;
}
// PRESET initial position
pos1 = pos1 & 0x03;
position = ((uint16_t)pos1 << 8) | pos2;
CAM_INFO(CAM_ACTUATOR, "current position:%d ", position);
/*Max position is 1023, keep half of max. lens position*/
if( position > 512 ) {
position = 512;
rc = cam_actuator_i2c_write(a_ctrl, 0x03, position - 1, CAMERA_SENSOR_I2C_TYPE_WORD);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "preset register - i2c write fail err:%d", rc);
return -EINVAL;
}
cam_actuator_busywait(a_ctrl);
CAM_INFO(CAM_ACTUATOR, "current position is set to :%d ", position);
}
rc = cam_actuator_i2c_write(a_ctrl, 0x0A, ((position >> 1) - 1), CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "preset register - i2c write fail err:%d", rc);
return -EINVAL;
}
CAM_INFO(CAM_ACTUATOR, "preset initial position:%d ", position);
// NRC Time Setting
cam_actuator_i2c_write(a_ctrl, 0x0C, 0x85,CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "nrc timing issue- i2c write fail err:%d", rc);
return -EINVAL;
}
// Enable - softlanding
cam_actuator_i2c_write(a_ctrl, 0x0B, 0x01,CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "softlanding register configuration failed, rc:%d", rc);
return -EINVAL;
}
// Check if busy -> wait
cam_actuator_busywait(a_ctrl);
return rc;
}
#endif
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
int32_t cam_actuator_power_down(struct cam_actuator_ctrl_t *a_ctrl)
#else
static int32_t cam_actuator_power_down(struct cam_actuator_ctrl_t *a_ctrl) static int32_t cam_actuator_power_down(struct cam_actuator_ctrl_t *a_ctrl)
#endif
{ {
int32_t rc = 0; int32_t rc = 0;
struct cam_sensor_power_ctrl_t *power_info; struct cam_sensor_power_ctrl_t *power_info;
@ -135,6 +342,14 @@ static int32_t cam_actuator_power_down(struct cam_actuator_ctrl_t *a_ctrl)
return -EINVAL; return -EINVAL;
} }
#if defined(CONFIG_SAMSUNG_ACTUATOR_HW_SOFTLANDING)
rc = cam_actuator_do_soft_landing(a_ctrl);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "actuator soft landing is failed:%d", rc);
// Even if Soft landing fails, we must Power_down
}
#endif
soc_private = soc_private =
(struct cam_actuator_soc_private *)a_ctrl->soc_info.soc_private; (struct cam_actuator_soc_private *)a_ctrl->soc_info.soc_private;
power_info = &soc_private->power_info; power_info = &soc_private->power_info;
@ -253,6 +468,11 @@ int32_t cam_actuator_apply_settings(struct cam_actuator_ctrl_t *a_ctrl,
{ {
struct i2c_settings_list *i2c_list; struct i2c_settings_list *i2c_list;
int32_t rc = 0; int32_t rc = 0;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
uint32_t i = 0;
uint32_t size = 0;
int position = -1;
#endif
if (a_ctrl == NULL || i2c_set == NULL) { if (a_ctrl == NULL || i2c_set == NULL) {
CAM_ERR(CAM_ACTUATOR, "Invalid Args"); CAM_ERR(CAM_ACTUATOR, "Invalid Args");
@ -278,6 +498,31 @@ int32_t cam_actuator_apply_settings(struct cam_actuator_ctrl_t *a_ctrl,
"Success:request ID: %d", "Success:request ID: %d",
i2c_set->request_id); i2c_set->request_id);
} }
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
if ((!a_ctrl->use_mcu) &&
((a_ctrl->soc_info.index == SEC_WIDE_SENSOR) ||
(a_ctrl->soc_info.index == SEC_TELE_SENSOR) ||
(a_ctrl->soc_info.index == SEC_TELE2_SENSOR))) {
size = i2c_list->i2c_settings.size;
for (i = 0; i < size; i++) {
if (i2c_list->i2c_settings.reg_setting[i].reg_addr == 0x00) {
position = i2c_list->i2c_settings.reg_setting[i].reg_data >> 4; //using word data
CAM_DBG(CAM_ACTUATOR, "Position : %d\n", position);
break;
}
}
if (g_o_ctrl != NULL) {
mutex_lock(&(g_o_ctrl->ois_mutex));
if (position >= 0 && position < 4096)
// 1bit right shift af position, because OIS use 8bit af position
cam_ois_shift_calibration(g_o_ctrl, (position >> 4), a_ctrl->soc_info.index);
else
CAM_DBG(CAM_ACTUATOR, "Position is invalid %d \n", position);
mutex_unlock(&(g_o_ctrl->ois_mutex));
}
}
#endif
} }
return rc; return rc;
@ -616,6 +861,11 @@ int32_t cam_actuator_i2c_pkt_parse(struct cam_actuator_ctrl_t *a_ctrl,
&a_ctrl->i2c_data.init_settings); &a_ctrl->i2c_data.init_settings);
if (rc < 0) { if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "Cannot apply Init settings"); CAM_ERR(CAM_ACTUATOR, "Cannot apply Init settings");
#if defined(CONFIG_USE_CAMERA_HW_BIG_DATA)
if (a_ctrl != NULL) {
hw_bigdata_i2c_from_actuator(a_ctrl);
}
#endif
goto end; goto end;
} }
@ -1134,3 +1384,311 @@ int32_t cam_actuator_flush_request(struct cam_req_mgr_flush_request *flush_req)
mutex_unlock(&(a_ctrl->actuator_mutex)); mutex_unlock(&(a_ctrl->actuator_mutex));
return rc; return rc;
} }
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
/***** for only ois selftest , set the actuator initial position to 256 *****/
int16_t cam_actuator_move_for_ois_test(struct cam_actuator_ctrl_t *a_ctrl)
{
struct cam_sensor_i2c_reg_setting reg_setting;
int rc = 0;
int size = 0;
memset(&reg_setting, 0, sizeof(reg_setting));
if (a_ctrl == NULL) {
CAM_ERR(CAM_ACTUATOR, "failed. a_ctrl is NULL");
return -EINVAL;
}
if (a_ctrl->io_master_info.master_type == CCI_MASTER)
CAM_INFO(CAM_ACTUATOR, "Actuator[%d] sid 0x%x",
a_ctrl->soc_info.index,
a_ctrl->io_master_info.cci_client->sid);
else if (a_ctrl->io_master_info.master_type == I2C_MASTER)
CAM_INFO(CAM_ACTUATOR, "Actuator[%d] addr 0x%x",
a_ctrl->soc_info.index,
a_ctrl->io_master_info.client->addr);
reg_setting.reg_setting = kmalloc(sizeof(struct cam_sensor_i2c_reg_array) * 4, GFP_KERNEL);
if (!reg_setting.reg_setting) {
return -ENOMEM;
}
memset(reg_setting.reg_setting, 0, sizeof(struct cam_sensor_i2c_reg_array));
/* Init setting for ak7377 */
/* SET Standby Mode */
reg_setting.reg_setting[size].reg_addr = 0x02;
reg_setting.reg_setting[size].reg_data = 0x40;
size++;
reg_setting.size = size;
reg_setting.addr_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
reg_setting.data_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
reg_setting.delay = 5; //5ms delay
rc = camera_io_dev_write(&a_ctrl->io_master_info,
&reg_setting);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR,
"Actuator[%d] Failed to random write I2C settings: %d",
a_ctrl->soc_info.index, rc);
if (reg_setting.reg_setting) {
kfree(reg_setting.reg_setting);
reg_setting.reg_setting = NULL;
}
return rc;
}
memset(reg_setting.reg_setting, 0, sizeof(struct cam_sensor_i2c_reg_array));
size = 0;
/* SET Position MSB - 0x00 */
reg_setting.reg_setting[size].reg_addr = 0x00;
reg_setting.reg_setting[size].reg_data = 0x80;
size++;
/* SET Position LSB - 0x00 */
reg_setting.reg_setting[size].reg_addr = 0x01;
reg_setting.reg_setting[size].reg_data = 0x00;
reg_setting.reg_setting[size].delay= 2; //2ms delay
size++;
/* SET Active Mode */
reg_setting.reg_setting[size].reg_addr = 0x02;
reg_setting.reg_setting[size].reg_data = 0x00;
size++;
reg_setting.size = size;
reg_setting.addr_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
reg_setting.data_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
rc = camera_io_dev_write(&a_ctrl->io_master_info,
&reg_setting);
if (rc < 0)
CAM_ERR(CAM_ACTUATOR,
"Actuator[%d] Failed to random write I2C settings: %d",
a_ctrl->soc_info.index, rc);
if (reg_setting.reg_setting) {
kfree(reg_setting.reg_setting);
reg_setting.reg_setting = NULL;
}
return rc;
}
/***** for only ois hall_cal , set the actuator position *****/
int16_t cam_actuator_move_for_ois_read_hall_cal_test(struct cam_actuator_ctrl_t *a_ctrl,
uint16_t af_position)
{
struct cam_sensor_i2c_reg_setting reg_setting;
int rc = 0;
int size = 0;
memset(&reg_setting, 0, sizeof(reg_setting));
if (a_ctrl == NULL) {
CAM_ERR(CAM_ACTUATOR, "failed. a_ctrl is NULL");
return -EINVAL;
}
if (a_ctrl->io_master_info.master_type == CCI_MASTER)
CAM_INFO(CAM_ACTUATOR, "Actuator[%d] sid 0x%x",
a_ctrl->soc_info.index,
a_ctrl->io_master_info.cci_client->sid);
else if (a_ctrl->io_master_info.master_type == I2C_MASTER)
CAM_INFO(CAM_ACTUATOR, "Actuator[%d] addr 0x%x",
a_ctrl->soc_info.index,
a_ctrl->io_master_info.client->addr);
reg_setting.reg_setting = kmalloc(sizeof(struct cam_sensor_i2c_reg_array) * 4, GFP_KERNEL);
if (!reg_setting.reg_setting) {
return -ENOMEM;
}
memset(reg_setting.reg_setting, 0, sizeof(struct cam_sensor_i2c_reg_array));
/* Init setting for ak7377 */
/* SET Standby Mode */
reg_setting.reg_setting[size].reg_addr = 0x02;
reg_setting.reg_setting[size].reg_data = 0x40;
size++;
reg_setting.size = size;
reg_setting.addr_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
reg_setting.data_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
reg_setting.delay = 5; //5ms delay
rc = camera_io_dev_write(&a_ctrl->io_master_info,
&reg_setting);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR,
"Actuator[%d] Failed to random write I2C settings: %d",
a_ctrl->soc_info.index, rc);
if (reg_setting.reg_setting) {
kfree(reg_setting.reg_setting);
reg_setting.reg_setting = NULL;
}
return rc;
}
memset(reg_setting.reg_setting, 0, sizeof(struct cam_sensor_i2c_reg_array));
size = 0;
/* SET Position MSB - 0x00 */
reg_setting.reg_setting[size].reg_addr = 0x00;
reg_setting.reg_setting[size].reg_data = (af_position & 0x0FFF) >> 4;
size++;
/* SET Position LSB - 0x00 */
reg_setting.reg_setting[size].reg_addr = 0x01;
reg_setting.reg_setting[size].reg_data = (af_position & 0x000F) << 4;
reg_setting.reg_setting[size].delay= 2; //2ms delay
size++;
/* SET Active Mode */
reg_setting.reg_setting[size].reg_addr = 0x02;
reg_setting.reg_setting[size].reg_data = 0x00;
size++;
reg_setting.size = size;
reg_setting.addr_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
reg_setting.data_type = CAMERA_SENSOR_I2C_TYPE_BYTE;
rc = camera_io_dev_write(&a_ctrl->io_master_info,
&reg_setting);
if (rc < 0)
CAM_ERR(CAM_ACTUATOR,
"Actuator[%d] Failed to random write I2C settings: %d",
a_ctrl->soc_info.index, rc);
if (reg_setting.reg_setting) {
kfree(reg_setting.reg_setting);
reg_setting.reg_setting = NULL;
}
return rc;
}
#endif
#if defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
struct cam_sensor_i2c_reg_array wide_init_1[] = {
{ 0x02, 0x40, 0, 0},
};
struct cam_sensor_i2c_reg_array wide_init_2[] = {
{ 0x02, 0x8000, 0, 0},
};
struct cam_sensor_i2c_reg_array wide_init_3[] = {
{ 0x02, 0x00, 0, 0},
};
struct cam_sensor_i2c_reg_setting wide_init_setting[] = {
{ wide_init_1,
ARRAY_SIZE(wide_init_1),
CAMERA_SENSOR_I2C_TYPE_BYTE,
CAMERA_SENSOR_I2C_TYPE_BYTE,
2
},
{ wide_init_2,
ARRAY_SIZE(wide_init_2),
CAMERA_SENSOR_I2C_TYPE_BYTE,
CAMERA_SENSOR_I2C_TYPE_WORD,
1
},
{ wide_init_3,
ARRAY_SIZE(wide_init_3),
CAMERA_SENSOR_I2C_TYPE_BYTE,
CAMERA_SENSOR_I2C_TYPE_BYTE,
1
},
};
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
struct cam_sensor_i2c_reg_array tele_init_1[] = {
{ 0x0060, 0x00, 0, 0},
};
struct cam_sensor_i2c_reg_array tele_init_2[] = {
{ 0x0044, 0x8000, 0, 0},
};
struct cam_sensor_i2c_reg_setting tele_init_setting[] = {
{ tele_init_1,
ARRAY_SIZE(tele_init_1),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_BYTE,
1
},
{ tele_init_2,
ARRAY_SIZE(tele_init_2),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_WORD,
1
},
};
#endif
int32_t cam_actuator_default_init_setting(struct cam_actuator_ctrl_t *a_ctrl)
{
struct cam_sensor_i2c_reg_setting* init_setting;
struct cam_sensor_i2c_reg_setting reg_setting;
int rc = 0, i = 0, size = 0, init_size = 0;
if (a_ctrl == NULL) {
CAM_ERR(CAM_ACTUATOR, "failed. a_ctrl is NULL");
return -EINVAL;
}
if (a_ctrl->cam_act_state != CAM_ACTUATOR_INIT)
return rc;
CAM_INFO(CAM_ACTUATOR, "E");
init_setting = wide_init_setting;
init_size = ARRAY_SIZE(wide_init_setting);
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
if (a_ctrl->use_mcu) {
init_setting = tele_init_setting;
init_size = ARRAY_SIZE(tele_init_setting);
}
#endif
for (i = 0; i < init_size; i++) {
if (size < init_setting[i].size)
size = init_setting[i].size;
}
reg_setting.reg_setting = kmalloc(sizeof(struct cam_sensor_i2c_reg_array) * size, GFP_KERNEL);
if (!reg_setting.reg_setting) {
return -ENOMEM;
}
for (i = 0; i < init_size; i++) {
size = init_setting[i].size;
memcpy(reg_setting.reg_setting,
init_setting[i].reg_setting,
sizeof(struct cam_sensor_i2c_reg_array) * size);
reg_setting.size = size;
reg_setting.addr_type = init_setting[i].addr_type;
reg_setting.data_type = init_setting[i].data_type;
reg_setting.delay = init_setting[i].delay;
rc = camera_io_dev_write(&a_ctrl->io_master_info,
&reg_setting);
if (rc < 0)
CAM_ERR(CAM_ACTUATOR,
"Failed to random write I2C settings[%d]: %d", i, rc);
}
if (reg_setting.reg_setting) {
kfree(reg_setting.reg_setting);
reg_setting.reg_setting = NULL;
}
CAM_INFO(CAM_ACTUATOR, "X");
return rc;
}
#endif

View File

@ -66,4 +66,15 @@ void cam_actuator_shutdown(struct cam_actuator_ctrl_t *a_ctrl);
struct completion *cam_actuator_get_i3c_completion(uint32_t index); struct completion *cam_actuator_get_i3c_completion(uint32_t index);
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
int32_t cam_actuator_power_up(struct cam_actuator_ctrl_t *a_ctrl);
int32_t cam_actuator_power_down(struct cam_actuator_ctrl_t *a_ctrl);
#endif
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
int16_t cam_actuator_move_for_ois_test(struct cam_actuator_ctrl_t *a_ctrl);
int16_t cam_actuator_move_for_ois_read_hall_cal_test(struct cam_actuator_ctrl_t *a_ctrl, uint16_t af_position);
#endif
#if defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
int32_t cam_actuator_default_init_setting(struct cam_actuator_ctrl_t *a_ctrl);
#endif
#endif /* _CAM_ACTUATOR_CORE_H_ */ #endif /* _CAM_ACTUATOR_CORE_H_ */

View File

@ -12,6 +12,35 @@
#include "camera_main.h" #include "camera_main.h"
#include "cam_compat.h" #include "cam_compat.h"
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
struct cam_actuator_ctrl_t *g_a_ctrls[SEC_SENSOR_ID_MAX];
#endif
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
static int32_t cam_actuator_update_i2c_info(struct cam_actuator_ctrl_t *a_ctrl,
struct cam_actuator_i2c_info_t *i2c_info)
{
struct cam_sensor_cci_client *cci_client = NULL;
if (a_ctrl->io_master_info.master_type == CCI_MASTER) {
cci_client = a_ctrl->io_master_info.cci_client;
if (!cci_client) {
CAM_ERR(CAM_ACTUATOR, "failed: cci_client %pK",
cci_client);
return -EINVAL;
}
cci_client->cci_i2c_master = a_ctrl->cci_i2c_master;
cci_client->sid = (i2c_info->slave_addr) >> 1;
cci_client->retries = 3;
cci_client->id_map = 0;
cci_client->i2c_freq_mode = i2c_info->i2c_freq_mode;
}
return 0;
}
#endif
static struct cam_i3c_actuator_data { static struct cam_i3c_actuator_data {
struct cam_actuator_ctrl_t *a_ctrl; struct cam_actuator_ctrl_t *a_ctrl;
struct completion probe_complete; struct completion probe_complete;
@ -171,7 +200,7 @@ static int cam_actuator_init_subdev(struct cam_actuator_ctrl_t *a_ctrl)
CAM_SD_CLOSE_MEDIUM_PRIORITY; CAM_SD_CLOSE_MEDIUM_PRIORITY;
rc = cam_register_subdev(&(a_ctrl->v4l2_dev_str)); rc = cam_register_subdev(&(a_ctrl->v4l2_dev_str));
if (rc) if (rc < 0)
CAM_ERR(CAM_ACTUATOR, CAM_ERR(CAM_ACTUATOR,
"Fail with cam_register_subdev rc: %d", rc); "Fail with cam_register_subdev rc: %d", rc);
@ -256,6 +285,11 @@ static int cam_actuator_i2c_component_bind(struct device *dev,
a_ctrl->last_flush_req = 0; a_ctrl->last_flush_req = 0;
a_ctrl->cam_act_state = CAM_ACTUATOR_INIT; a_ctrl->cam_act_state = CAM_ACTUATOR_INIT;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
if (a_ctrl->soc_info.index < SEC_SENSOR_ID_MAX)
g_a_ctrls[a_ctrl->soc_info.index] = a_ctrl;
#endif
return rc; return rc;
unreg_subdev: unreg_subdev:
@ -410,6 +444,14 @@ static int cam_actuator_platform_component_bind(struct device *dev,
goto free_mem; goto free_mem;
} }
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
rc = cam_actuator_update_i2c_info(a_ctrl, &soc_private->i2c_info);
if (rc) {
CAM_ERR(CAM_ACTUATOR, "failed: to update i2c info rc %d", rc);
goto free_mem;
}
#endif
/* Fill platform device id*/ /* Fill platform device id*/
pdev->id = a_ctrl->soc_info.index; pdev->id = a_ctrl->soc_info.index;
@ -437,6 +479,11 @@ static int cam_actuator_platform_component_bind(struct device *dev,
g_i3c_actuator_data[a_ctrl->soc_info.index].a_ctrl = a_ctrl; g_i3c_actuator_data[a_ctrl->soc_info.index].a_ctrl = a_ctrl;
init_completion(&g_i3c_actuator_data[a_ctrl->soc_info.index].probe_complete); init_completion(&g_i3c_actuator_data[a_ctrl->soc_info.index].probe_complete);
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_ACTUATOR_PREVENT_SHAKING)
if (a_ctrl->soc_info.index < SEC_SENSOR_ID_MAX)
g_a_ctrls[a_ctrl->soc_info.index] = a_ctrl;
#endif
return rc; return rc;
free_mem: free_mem:

View File

@ -120,6 +120,9 @@ struct cam_actuator_ctrl_t {
struct cam_actuator_query_cap act_info; struct cam_actuator_query_cap act_info;
struct actuator_intf_params bridge_intf; struct actuator_intf_params bridge_intf;
uint32_t last_flush_req; uint32_t last_flush_req;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
uint32_t use_mcu;
#endif
}; };
/** /**

View File

@ -23,6 +23,7 @@ int32_t cam_actuator_parse_dt(struct cam_actuator_ctrl_t *a_ctrl,
struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info; struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info;
struct device_node *of_node = NULL; struct device_node *of_node = NULL;
struct device_node *of_parent = NULL; struct device_node *of_parent = NULL;
uint32_t temp = 0;
/* Initialize mutex */ /* Initialize mutex */
mutex_init(&(a_ctrl->actuator_mutex)); mutex_init(&(a_ctrl->actuator_mutex));
@ -65,19 +66,46 @@ int32_t cam_actuator_parse_dt(struct cam_actuator_ctrl_t *a_ctrl,
CAM_DBG(CAM_ACTUATOR, "cci-device %d", a_ctrl->cci_num); CAM_DBG(CAM_ACTUATOR, "cci-device %d", a_ctrl->cci_num);
} }
rc = of_property_read_u32(of_node, "slave-addr", &temp);
soc_private->i2c_info.slave_addr = temp;
if (rc < 0) {
CAM_DBG(CAM_ACTUATOR, "No slave-addr found");
rc = 0;
}
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
if (of_property_read_bool(of_node, "use-mcu")) {
CAM_INFO(CAM_ACTUATOR,
"actuator%u with MCU", soc_info->index);
a_ctrl->use_mcu = true;
}
#endif
/* Initialize regulators to default parameters */ /* Initialize regulators to default parameters */
for (i = 0; i < soc_info->num_rgltr; i++) { for (i = 0; i < soc_info->num_rgltr; i++) {
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev, #if defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
soc_info->rgltr_name[i]); if (soc_info->rgltr_subname[i] &&
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) { strstr(soc_info->rgltr_subname[i], "s2mpb03")) {
rc = PTR_ERR(soc_info->rgltr[i]); soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
rc = rc ? rc : -EINVAL; soc_info->rgltr_subname[i]);
CAM_ERR(CAM_ACTUATOR, "get failed for regulator %s %d", CAM_INFO(CAM_ACTUATOR, "get for regulator %s instead of %s",
soc_info->rgltr_name[i], rc); soc_info->rgltr_subname[i], soc_info->rgltr_name[i]);
return rc; }
else
#endif
{
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
soc_info->rgltr_name[i]);
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) {
rc = PTR_ERR(soc_info->rgltr[i]);
rc = rc ? rc : -EINVAL;
CAM_ERR(CAM_ACTUATOR, "get failed for regulator %s %d",
soc_info->rgltr_name[i], rc);
return rc;
}
CAM_DBG(CAM_ACTUATOR, "get for regulator %s",
soc_info->rgltr_name[i]);
} }
CAM_DBG(CAM_ACTUATOR, "get for regulator %s",
soc_info->rgltr_name[i]);
} }
if (!soc_info->gpio_data) { if (!soc_info->gpio_data) {
CAM_DBG(CAM_ACTUATOR, "No GPIO found"); CAM_DBG(CAM_ACTUATOR, "No GPIO found");

View File

@ -0,0 +1,114 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <linux/module.h>
#include <cam_sensor_cmn_header.h>
#include "cam_sec_actuator_core.h"
#include "cam_sensor_util.h"
#include "cam_trace.h"
#include "cam_common_util.h"
#include "cam_packet_util.h"
#if defined(CONFIG_SAMSUNG_ACTUATOR_READ_HALL_VALUE)
#define ACTUATOR_STATUS_REGISTER_ADDR 0x2
#define ACTUATOR_HALL_REGISTER_ADDR 0x84
static int32_t cam_sec_actuator_i2c_read(struct cam_actuator_ctrl_t *a_ctrl, uint32_t addr,
uint32_t *data,
enum camera_sensor_i2c_type addr_type,
enum camera_sensor_i2c_type data_type)
{
int rc = 0;
if (a_ctrl == NULL) {
CAM_ERR(CAM_ACTUATOR, "failed. a_ctrl is NULL");
return -EINVAL;
}
rc = camera_io_dev_read(&a_ctrl->io_master_info, addr,
(uint32_t *)data, addr_type, data_type, false);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "Failed to read 0x%x", addr);
}
return rc;
}
static int32_t cam_sec_actuator_get_status_for_hall_value(struct cam_actuator_ctrl_t *a_ctrl, uint16_t *info)
{
int32_t rc = 0;
uint32_t val = 0;
rc = cam_sec_actuator_i2c_read(a_ctrl, ACTUATOR_STATUS_REGISTER_ADDR, &val, CAMERA_SENSOR_I2C_TYPE_BYTE, CAMERA_SENSOR_I2C_TYPE_BYTE);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "get status i2c read fail:%d", rc);
return -EINVAL;
}
CAM_INFO(CAM_ACTUATOR, "[AF] val = 0x%x", val);
*info = (val & 0x60);
return rc;
}
static void cam_sec_actuator_busywait_for_hall_value(struct cam_actuator_ctrl_t *a_ctrl)
{
uint16_t info = 0, status_check_count = 0;
int32_t rc = 0;
do {
rc = cam_sec_actuator_get_status_for_hall_value(a_ctrl, &info);
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "cam_actuator_get_status failed:%d", rc);
}
if (info) {
CAM_INFO(CAM_ACTUATOR, "[AF] Not Active");
msleep(10);
}
status_check_count++;
} while (info && status_check_count < 8);
if (status_check_count == 8)
CAM_ERR(CAM_ACTUATOR, "[AF] status check failed");
else
CAM_INFO(CAM_ACTUATOR, "[AF] Active");
}
int32_t cam_sec_actuator_read_hall_value(struct cam_actuator_ctrl_t *a_ctrl, uint16_t* af_hall_value)
{
int32_t rc = 0;
uint8_t value[2];
uint16_t hallValue = 0;
if (a_ctrl == NULL) {
CAM_ERR(CAM_ACTUATOR, "failed. a_ctrl is NULL");
return -EINVAL;
}
cam_sec_actuator_busywait_for_hall_value(a_ctrl);
#if defined(CONFIG_SEC_FACTORY)
msleep(50);
#endif
rc = camera_io_dev_read_seq(&a_ctrl->io_master_info, ACTUATOR_HALL_REGISTER_ADDR, value, CAMERA_SENSOR_I2C_TYPE_BYTE, CAMERA_SENSOR_I2C_TYPE_BYTE, 2);
hallValue = (((uint16_t)value[0]) << 4) | ((uint16_t)value[1]) >> 4;
if (rc < 0) {
CAM_ERR(CAM_ACTUATOR, "get status i2c read fail:%d", rc);
return -EINVAL;
}
CAM_INFO(CAM_ACTUATOR, "[AF] RAW data = %u", hallValue);
*af_hall_value = hallValue;
return rc;
}
#endif

View File

@ -0,0 +1,16 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef _CAM_SEC_ACTUATOR_CORE_H_
#define _CAM_SEC_ACTUATOR_CORE_H_
#include "cam_actuator_dev.h"
#if defined(CONFIG_SAMSUNG_ACTUATOR_READ_HALL_VALUE)
int32_t cam_sec_actuator_read_hall_value(struct cam_actuator_ctrl_t *a_ctrl, uint16_t* af_hall_value);
#endif
#endif /* _CAM_SEC_ACTUATOR_CORE_H_ */

View File

@ -30,6 +30,10 @@ static struct cci_irq_data cci_irq_queue[QUEUE_SIZE] = { 0 };
static int32_t head; static int32_t head;
static int32_t tail; static int32_t tail;
#if defined(CONFIG_CAMERA_SYSFS_V2)
struct device *is_dev = NULL;
#endif
static inline int32_t increment_index(int32_t index) static inline int32_t increment_index(int32_t index)
{ {
return (index + 1) % QUEUE_SIZE; return (index + 1) % QUEUE_SIZE;
@ -829,6 +833,9 @@ static int cam_cci_platform_probe(struct platform_device *pdev)
rc = component_add(&pdev->dev, &cam_cci_component_ops); rc = component_add(&pdev->dev, &cam_cci_component_ops);
if (rc) if (rc)
CAM_ERR(CAM_CCI, "failed to add component rc: %d", rc); CAM_ERR(CAM_CCI, "failed to add component rc: %d", rc);
#if defined(CONFIG_CAMERA_SYSFS_V2)
is_dev = &pdev->dev;
#endif
return rc; return rc;
} }

View File

@ -17,6 +17,12 @@
#include "cam_mem_mgr.h" #include "cam_mem_mgr.h"
#include "cam_cpas_api.h" #include "cam_cpas_api.h"
#include "cam_compat.h" #include "cam_compat.h"
#if defined(CONFIG_CAMERA_ADAPTIVE_MIPI) && defined(CONFIG_CAMERA_RF_MIPI)
#include "cam_sensor_mipi.h"
#endif
#if defined(CONFIG_CAMERA_CDR_TEST)
#include "cam_clock_data_recovery.h"
#endif
#define SCM_SVC_CAMERASS 0x18 #define SCM_SVC_CAMERASS 0x18
#define SECURE_SYSCALL_ID 0x6 #define SECURE_SYSCALL_ID 0x6
@ -2179,6 +2185,32 @@ static void __cam_csiphy_get_preamble_status(
return; return;
} }
#if defined(CONFIG_CAMERA_ADAPTIVE_MIPI) && defined(CONFIG_CAMERA_RF_MIPI)
uint8_t cam_csiphy_core_check_rf_condition(void)
{
uint8_t ret = 0;
struct cam_cp_noti_cell_infos cell_infos;
get_rf_info(&cell_infos);
CAM_INFO(CAM_CSIPHY,
"[RF_MIPI_DBG] rat : %d, band : %d, channel : %d",
cell_infos.cell_list[0].rat,
cell_infos.cell_list[0].band,
cell_infos.cell_list[0].channel);
//add rf condition
// if (rf_info.band == CAM_BAND_257_NR5G_N002) {
// ret = 1;
// }
if (ret != 0) {
CAM_INFO(CAM_CSIPHY, "[RF_MIPI_DBG] Change mipi table : %d", ret);
}
return ret;
}
#endif
int32_t cam_csiphy_core_cfg(void *phy_dev, int32_t cam_csiphy_core_cfg(void *phy_dev,
void *arg) void *arg)
{ {
@ -2612,6 +2644,10 @@ int32_t cam_csiphy_core_cfg(void *phy_dev,
uint8_t data_rate_variant_idx = 0; uint8_t data_rate_variant_idx = 0;
unsigned long clk_rate = 0; unsigned long clk_rate = 0;
#if defined(CONFIG_CAMERA_ADAPTIVE_MIPI) && defined(CONFIG_CAMERA_RF_MIPI)
data_rate_variant_idx = cam_csiphy_core_check_rf_condition();
#endif
CAM_DBG(CAM_CSIPHY, "START_DEV Called"); CAM_DBG(CAM_CSIPHY, "START_DEV Called");
rc = copy_from_user(&config, (void __user *)cmd->handle, rc = copy_from_user(&config, (void __user *)cmd->handle,
sizeof(config)); sizeof(config));
@ -2842,6 +2878,13 @@ int32_t cam_csiphy_core_cfg(void *phy_dev,
if (csiphy_onthego_reg_count[soc_info->index]) if (csiphy_onthego_reg_count[soc_info->index])
cam_csiphy_apply_onthego_reg_values(csiphybase, soc_info->index); cam_csiphy_apply_onthego_reg_values(csiphybase, soc_info->index);
#if defined(CONFIG_CAMERA_CDR_TEST)
if (cam_clock_data_recovery_is_requested()) {
cam_clock_data_recovery_write_register(csiphybase);
cam_clock_data_recovery_reset_request();
}
#endif
cam_csiphy_release_from_reset_state(csiphy_dev, csiphybase, offset); cam_csiphy_release_from_reset_state(csiphy_dev, csiphybase, offset);
if (g_phy_data[soc_info->index].is_3phase) { if (g_phy_data[soc_info->index].is_3phase) {

View File

@ -13,6 +13,13 @@
#include <dt-bindings/msm-camera.h> #include <dt-bindings/msm-camera.h>
#include "cam_cpas_api.h" #include "cam_cpas_api.h"
#if defined(CONFIG_USE_CAMERA_HW_BIG_DATA)
#include "cam_sensor_cmn_header.h"
#endif
#if defined(CONFIG_CAMERA_CDR_TEST)
#include "cam_clock_data_recovery.h"
#endif
#define CSIPHY_DEBUGFS_NAME_MAX_SIZE 10 #define CSIPHY_DEBUGFS_NAME_MAX_SIZE 10
#define CAM_MAX_PHYS_PER_CP_CTRL_REG 4 #define CAM_MAX_PHYS_PER_CP_CTRL_REG 4
static struct dentry *root_dentry; static struct dentry *root_dentry;
@ -208,7 +215,16 @@ static void cam_csiphy_subdev_handle_message(struct v4l2_subdev *sd,
switch (message_type) { switch (message_type) {
case CAM_SUBDEV_MESSAGE_REG_DUMP: { case CAM_SUBDEV_MESSAGE_REG_DUMP: {
#if IS_ENABLED(CONFIG_SEC_ABC)
cam_abc_send_event_mipi_error(csiphy_dev->soc_info.index);
#if defined(CONFIG_SAMSUNG_DEBUG_HW_INFO)
cam_check_error_sensor_type(csiphy_dev->soc_info.index);
#endif
#endif
cam_csiphy_trigger_reg_dump(csiphy_dev); cam_csiphy_trigger_reg_dump(csiphy_dev);
#if defined(CONFIG_CAMERA_CDR_TEST)
cam_clock_data_recovery_set_result(CDR_ERROR_MIPI);
#endif
break; break;
} }
case CAM_SUBDEV_MESSAGE_APPLY_CSIPHY_AUX: { case CAM_SUBDEV_MESSAGE_APPLY_CSIPHY_AUX: {

View File

@ -30,6 +30,7 @@
#include "cam_context.h" #include "cam_context.h"
#define MAX_CSIPHY 8 #define MAX_CSIPHY 8
#define MAX_MIPI_ERROR_COUNT 3
#define CSIPHY_NUM_CLK_MAX 16 #define CSIPHY_NUM_CLK_MAX 16
@ -419,6 +420,7 @@ struct cam_csiphy_dev_aux_setting_params {
* @skip_aux_settings : Debugfs flag to ignore calls to update aux settings * @skip_aux_settings : Debugfs flag to ignore calls to update aux settings
* @domain_id_security : Flag to determine if target has domain-id based security * @domain_id_security : Flag to determine if target has domain-id based security
* @preamble_enable : To enable preamble pattern * @preamble_enable : To enable preamble pattern
* @mipi_error_count : Mipi Error Counter
*/ */
struct csiphy_device { struct csiphy_device {
char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH]; char device_name[CAM_CTX_DEV_NAME_MAX_LENGTH];
@ -458,6 +460,7 @@ struct csiphy_device {
bool skip_aux_settings; bool skip_aux_settings;
bool domain_id_security; bool domain_id_security;
uint16_t preamble_enable; uint16_t preamble_enable;
uint16_t mipi_error_count;
}; };
/** /**

View File

@ -271,14 +271,17 @@ struct csiphy_reg_t csiphy_2ph_v2_2_0_combo_mode_reg[] = {
}; };
struct csiphy_reg_t csiphy_3ph_v2_2_0_reg[] = { struct csiphy_reg_t csiphy_3ph_v2_2_0_reg[] = {
{0x0294, 0x09, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x02F4, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x02F4, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x02F8, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x02F8, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x02FC, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x02FC, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x02F0, 0xEF, 0xD3, CSIPHY_DEFAULT_PARAMS}, {0x02F0, 0xEF, 0xD3, CSIPHY_DEFAULT_PARAMS},
{0x0694, 0x09, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x06F4, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x06F4, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x06F8, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x06F8, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x06FC, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x06FC, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x06F0, 0xEF, 0xD3, CSIPHY_DEFAULT_PARAMS}, {0x06F0, 0xEF, 0xD3, CSIPHY_DEFAULT_PARAMS},
{0x0A94, 0x09, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0AF4, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0AF4, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0AF8, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0AF8, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0AFC, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0AFC, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
@ -348,7 +351,7 @@ struct csiphy_reg_t datarate_220_80Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -358,7 +361,7 @@ struct csiphy_reg_t datarate_220_80Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -368,7 +371,7 @@ struct csiphy_reg_t datarate_220_80Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -395,7 +398,7 @@ struct csiphy_reg_t datarate_220_100Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -405,7 +408,7 @@ struct csiphy_reg_t datarate_220_100Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -415,7 +418,7 @@ struct csiphy_reg_t datarate_220_100Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -442,7 +445,7 @@ struct csiphy_reg_t datarate_220_200Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -452,7 +455,7 @@ struct csiphy_reg_t datarate_220_200Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -462,7 +465,7 @@ struct csiphy_reg_t datarate_220_200Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -489,7 +492,7 @@ struct csiphy_reg_t datarate_220_300Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -499,7 +502,7 @@ struct csiphy_reg_t datarate_220_300Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -509,7 +512,7 @@ struct csiphy_reg_t datarate_220_300Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -536,7 +539,7 @@ struct csiphy_reg_t datarate_220_350Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -546,7 +549,7 @@ struct csiphy_reg_t datarate_220_350Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -556,7 +559,7 @@ struct csiphy_reg_t datarate_220_350Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -583,7 +586,7 @@ struct csiphy_reg_t datarate_220_400Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -593,7 +596,7 @@ struct csiphy_reg_t datarate_220_400Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -603,7 +606,7 @@ struct csiphy_reg_t datarate_220_400Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -630,7 +633,7 @@ struct csiphy_reg_t datarate_220_500Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -640,7 +643,7 @@ struct csiphy_reg_t datarate_220_500Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -650,7 +653,7 @@ struct csiphy_reg_t datarate_220_500Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -677,7 +680,7 @@ struct csiphy_reg_t datarate_220_600Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -687,7 +690,7 @@ struct csiphy_reg_t datarate_220_600Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -697,7 +700,7 @@ struct csiphy_reg_t datarate_220_600Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -724,7 +727,7 @@ struct csiphy_reg_t datarate_220_700Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -734,7 +737,7 @@ struct csiphy_reg_t datarate_220_700Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -744,7 +747,7 @@ struct csiphy_reg_t datarate_220_700Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -771,7 +774,7 @@ struct csiphy_reg_t datarate_220_800Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -781,7 +784,7 @@ struct csiphy_reg_t datarate_220_800Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -791,7 +794,7 @@ struct csiphy_reg_t datarate_220_800Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -818,7 +821,7 @@ struct csiphy_reg_t datarate_220_900Msps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -828,7 +831,7 @@ struct csiphy_reg_t datarate_220_900Msps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -838,7 +841,7 @@ struct csiphy_reg_t datarate_220_900Msps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -865,7 +868,7 @@ struct csiphy_reg_t datarate_220_1p0Gsps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -875,7 +878,7 @@ struct csiphy_reg_t datarate_220_1p0Gsps[] = {
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -885,7 +888,7 @@ struct csiphy_reg_t datarate_220_1p0Gsps[] = {
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x58, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
@ -912,31 +915,31 @@ struct csiphy_reg_t datarate_220_1p2Gsps[] = {
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x45, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0278, 0x45, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x1D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x028C, 0x38, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0270, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0270, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0274, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0274, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0668, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0668, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x45, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0678, 0x45, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x1D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x068C, 0x38, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0670, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0670, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0674, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0674, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A68, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A68, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x45, 0x00, CSIPHY_CDR_LN_SETTINGS}, {0x0A78, 0x45, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x1D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A8C, 0x38, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A70, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A70, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A74, 0x03, 0x0A, CSIPHY_DEFAULT_PARAMS}, {0x0A74, 0x03, 0x0A, CSIPHY_DEFAULT_PARAMS},
/* Datarate Sensitive */ /* Datarate Sensitive */
{0x020C, 0x35, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE}, {0x020C, 0x35, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
@ -951,6 +954,9 @@ struct csiphy_reg_t datarate_220_1p2Gsps[] = {
{0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE}, {0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A14, 0x09, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A14, 0x09, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0270, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0670, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0A70, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
}; };
struct csiphy_reg_t datarate_220_1p5Gsps[] = { struct csiphy_reg_t datarate_220_1p5Gsps[] = {
@ -1048,6 +1054,59 @@ struct csiphy_reg_t datarate_220_1p7Gsps[] = {
}; };
struct csiphy_reg_t datarate_220_2p0Gsps[] = { struct csiphy_reg_t datarate_220_2p0Gsps[] = {
/* AFE Settings */
{0x0268, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x28, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x1D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x88, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0270, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0274, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0668, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x28, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x1D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x88, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0670, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0674, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A68, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x28, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x1D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x05, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x88, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A70, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A74, 0x03, 0x0A, CSIPHY_DEFAULT_PARAMS},
/* Datarate Sensitive */
{0x020C, 0x27, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
{0x0208, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0210, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0214, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x060C, 0x27, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
{0x0608, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0610, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0614, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A0C, 0x27, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
{0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A14, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0270, 0x02, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0670, 0x02, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0A70, 0x02, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0278, 0x25, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0678, 0x25, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0A78, 0x25, 0x00, CSIPHY_AUXILIARY_SETTING},
};
struct csiphy_reg_t datarate_220_2p0Gsps_wide[] = {
/* AFE Settings */ /* AFE Settings */
{0x0268, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0268, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
@ -1092,6 +1151,12 @@ struct csiphy_reg_t datarate_220_2p0Gsps[] = {
{0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE}, {0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A14, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A14, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0270, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0670, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0A70, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0278, 0x2E, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0678, 0x2E, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0A78, 0x2E, 0x00, CSIPHY_AUXILIARY_SETTING},
}; };
struct csiphy_reg_t datarate_220_2p1Gsps[] = { struct csiphy_reg_t datarate_220_2p1Gsps[] = {
@ -1327,6 +1392,59 @@ struct csiphy_reg_t datarate_220_2p8Gsps[] = {
{0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE}, {0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A14, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A14, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0274, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0674, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0A74, 0x00, 0x00, CSIPHY_AUXILIARY_SETTING},
};
struct csiphy_reg_t datarate_220_2p8Gsps_ultrawide[] = {
/* AFE Settings */
{0x0268, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x17, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x026C, 0x2D, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x028C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x028C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0270, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0274, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0668, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x17, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x066C, 0x2D, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x068C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x068C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0670, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0674, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A68, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x17, 0x00, CSIPHY_CDR_LN_SETTINGS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A6C, 0x2D, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A8C, 0x30, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A8C, 0x37, 0x00, CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A70, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A74, 0x00, 0x0A, CSIPHY_DEFAULT_PARAMS},
/* Datarate Sensitive */
{0x020C, 0x21, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
{0x0208, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0210, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0214, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x060C, 0x21, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
{0x0608, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0610, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0614, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A0C, 0x21, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
{0x0A08, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
{0x0A10, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A14, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0274, 0x03, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0674, 0x03, 0x00, CSIPHY_AUXILIARY_SETTING},
{0x0A74, 0x03, 0x00, CSIPHY_AUXILIARY_SETTING},
}; };
struct csiphy_reg_t datarate_220_3p0Gsps[] = { struct csiphy_reg_t datarate_220_3p0Gsps[] = {
@ -1474,7 +1592,7 @@ struct csiphy_reg_t datarate_220_4p0Gsps[] = {
/* AFE Settings */ /* AFE Settings */
{0x0268, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0268, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0294, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0278, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0278, 0x08, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0278, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0278, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0288, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x026C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
@ -1485,7 +1603,7 @@ struct csiphy_reg_t datarate_220_4p0Gsps[] = {
{0x0274, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0274, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0668, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0668, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0694, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0678, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0678, 0x08, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0678, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0678, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0688, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x066C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
@ -1496,7 +1614,7 @@ struct csiphy_reg_t datarate_220_4p0Gsps[] = {
{0x0674, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0674, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A68, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A68, 0xF1, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A94, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A78, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A78, 0x08, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_SHORT_CHANNEL_PARAMS},
{0x0A78, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_STANDARD_CHANNEL_PARAMS}, {0x0A78, 0x0C, 0x00, CSIPHY_CDR_LN_SETTINGS | CSIPHY_STANDARD_CHANNEL_PARAMS},
{0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS}, {0x0A88, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
{0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS}, {0x0A6C, 0x3D, 0x00, CSIPHY_SHORT_CHANNEL_PARAMS},
@ -1922,7 +2040,7 @@ static struct data_rate_reg_info_t data_rate_settings_2_2_0[] = {
.data_rate_reg_array[2][0] = datarate_220_2p0Gsps, .data_rate_reg_array[2][0] = datarate_220_2p0Gsps,
.data_rate_reg_array[3][0] = datarate_220_2p0Gsps, .data_rate_reg_array[3][0] = datarate_220_2p0Gsps,
.data_rate_reg_array[4][0] = datarate_220_2p0Gsps, .data_rate_reg_array[4][0] = datarate_220_2p0Gsps,
.data_rate_reg_array[5][0] = datarate_220_2p0Gsps, .data_rate_reg_array[5][0] = datarate_220_2p0Gsps_wide,
.data_rate_reg_array[6][0] = datarate_220_2p0Gsps, .data_rate_reg_array[6][0] = datarate_220_2p0Gsps,
.data_rate_reg_array[7][0] = datarate_220_2p0Gsps, .data_rate_reg_array[7][0] = datarate_220_2p0Gsps,
}, },
@ -1984,7 +2102,7 @@ static struct data_rate_reg_info_t data_rate_settings_2_2_0[] = {
.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p8Gsps), .data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p8Gsps),
.data_rate_reg_array[0][0] = datarate_220_2p8Gsps, .data_rate_reg_array[0][0] = datarate_220_2p8Gsps,
.data_rate_reg_array[1][0] = datarate_220_2p8Gsps, .data_rate_reg_array[1][0] = datarate_220_2p8Gsps,
.data_rate_reg_array[2][0] = datarate_220_2p8Gsps, .data_rate_reg_array[2][0] = datarate_220_2p8Gsps_ultrawide,
.data_rate_reg_array[3][0] = datarate_220_2p8Gsps, .data_rate_reg_array[3][0] = datarate_220_2p8Gsps,
.data_rate_reg_array[4][0] = datarate_220_2p8Gsps, .data_rate_reg_array[4][0] = datarate_220_2p8Gsps,
.data_rate_reg_array[5][0] = datarate_220_2p8Gsps, .data_rate_reg_array[5][0] = datarate_220_2p8Gsps,

View File

@ -13,6 +13,12 @@
#include "cam_debug_util.h" #include "cam_debug_util.h"
#include "cam_common_util.h" #include "cam_common_util.h"
#include "cam_packet_util.h" #include "cam_packet_util.h"
#include "cam_hw_bigdata.h"
#if defined(CONFIG_CAMERA_SYSFS_V2)
#include "cam_sec_eeprom_core.h"
#define CAM_EEPROM_DBG 1
#endif
#define MAX_READ_SIZE 0x7FFFF #define MAX_READ_SIZE 0x7FFFF
@ -104,6 +110,45 @@ static int cam_eeprom_read_memory(struct cam_eeprom_ctrl_t *e_ctrl,
} }
if (emap[j].mem.valid_size) { if (emap[j].mem.valid_size) {
#if defined(CONFIG_CAMERA_SYSFS_V2)
uint32_t addr = 0, size = 0, read_size = 0;
size = emap[j].mem.valid_size;
addr = emap[j].mem.addr;
memptr = block->mapdata + addr;
CAM_DBG(CAM_EEPROM, "[%d / %d] memptr = %pK, addr = 0x%X, size = 0x%X, subdev = %d",
j, block->num_map, memptr, emap[j].mem.addr, emap[j].mem.valid_size, e_ctrl->soc_info.index);
CAM_DBG(CAM_EEPROM, "addr_type = %d, data_type = %d, device_type = %d",
emap[j].mem.addr_type, emap[j].mem.data_type, e_ctrl->eeprom_device_type);
if (emap[j].mem.data_type == 0) {
CAM_DBG(CAM_EEPROM,
"skipping read as data_type 0, skipped:%d",
read_size);
continue;
}
while(size > 0) {
read_size = size;
if (size > I2C_REG_DATA_MAX) {
read_size = I2C_REG_DATA_MAX;
}
rc = camera_io_dev_read_seq(&e_ctrl->io_master_info,
addr, memptr,
emap[j].mem.addr_type,
emap[j].mem.data_type,
read_size);
if (rc < 0) {
CAM_ERR(CAM_EEPROM, "read failed rc %d",
rc);
return rc;
}
size -= read_size;
addr += read_size;
memptr += read_size;
}
#else
rc = camera_io_dev_read_seq(&e_ctrl->io_master_info, rc = camera_io_dev_read_seq(&e_ctrl->io_master_info,
emap[j].mem.addr, memptr, emap[j].mem.addr, memptr,
emap[j].mem.addr_type, emap[j].mem.addr_type,
@ -115,6 +160,8 @@ static int cam_eeprom_read_memory(struct cam_eeprom_ctrl_t *e_ctrl,
return rc; return rc;
} }
memptr += emap[j].mem.valid_size; memptr += emap[j].mem.valid_size;
#endif
} }
if (emap[j].pageen.valid_size) { if (emap[j].pageen.valid_size) {
@ -191,6 +238,10 @@ static int cam_eeprom_power_up(struct cam_eeprom_ctrl_t *e_ctrl,
goto cci_failure; goto cci_failure;
} }
#if defined(CONFIG_SAMSUNG_CAMERA)
usleep_range(5000, 5010);
#endif
return rc; return rc;
cci_failure: cci_failure:
if (cam_sensor_util_power_down(power_info, soc_info)) if (cam_sensor_util_power_down(power_info, soc_info))
@ -234,6 +285,10 @@ static int cam_eeprom_power_down(struct cam_eeprom_ctrl_t *e_ctrl)
camera_io_release(&(e_ctrl->io_master_info)); camera_io_release(&(e_ctrl->io_master_info));
#if defined(CONFIG_SAMSUNG_CAMERA)
msleep(40);
#endif
return rc; return rc;
} }
@ -276,6 +331,12 @@ int32_t cam_eeprom_parse_read_memory_map(struct device_node *of_node,
struct cam_eeprom_soc_private *soc_private; struct cam_eeprom_soc_private *soc_private;
struct cam_sensor_power_ctrl_t *power_info; struct cam_sensor_power_ctrl_t *power_info;
#if defined(CONFIG_CAMERA_SYSFS_V2)
int i;
int normal_crc_value = 0;
#endif
if (!e_ctrl) { if (!e_ctrl) {
CAM_ERR(CAM_EEPROM, "failed: e_ctrl is NULL"); CAM_ERR(CAM_EEPROM, "failed: e_ctrl is NULL");
return -EINVAL; return -EINVAL;
@ -304,12 +365,48 @@ int32_t cam_eeprom_parse_read_memory_map(struct device_node *of_node,
goto power_down; goto power_down;
} }
} }
#if defined(CONFIG_CAMERA_SYSFS_V2)
normal_crc_value = 0;
for (i = 0; i < e_ctrl->cal_data.num_map>>1; i++)
normal_crc_value |= (1 << i);
e_ctrl->camera_normal_cal_crc = normal_crc_value;
CAM_INFO(CAM_EEPROM, "num_map = %d, CAMERA_NORMAL_CAL_CRC = 0x%X",
e_ctrl->cal_data.num_map, e_ctrl->camera_normal_cal_crc);
#endif
rc = cam_eeprom_read_memory(e_ctrl, &e_ctrl->cal_data); rc = cam_eeprom_read_memory(e_ctrl, &e_ctrl->cal_data);
if (rc) { if (rc) {
CAM_ERR(CAM_EEPROM, "read_eeprom_memory failed"); CAM_ERR(CAM_EEPROM, "read_eeprom_memory failed");
goto power_down; goto power_down;
} }
#if defined(CONFIG_CAMERA_SYSFS_V2)
e_ctrl->is_supported |= cam_sec_eeprom_match_crc(&e_ctrl->cal_data, e_ctrl->soc_info.index);
if (e_ctrl->is_supported != normal_crc_value)
CAM_ERR(CAM_EEPROM, "Any CRC values at F-ROM are not matched.");
else
CAM_INFO(CAM_EEPROM, "All CRC values are matched.");
rc = cam_sec_eeprom_update_module_info(e_ctrl);
if (rc < 0) {
CAM_ERR(CAM_EEPROM, "cam_sec_eeprom_update_module_info failed");
goto power_down;
}
#ifdef CAM_EEPROM_DBG_DUMP
if (e_ctrl->soc_info.index == 1 || e_ctrl->soc_info.index == 8 ) {
rc = cam_sec_eeprom_dump(e_ctrl->soc_info.index, e_ctrl->cal_data.mapdata, 0x0000, 0x7DF);
}
else if (e_ctrl->soc_info.index == 2) {
rc = cam_sec_eeprom_dump(e_ctrl->soc_info.index, e_ctrl->cal_data.mapdata, 0x0000, 0x7DF);
}
#endif
#endif
rc = cam_eeprom_power_down(e_ctrl); rc = cam_eeprom_power_down(e_ctrl);
if (rc) if (rc)
CAM_ERR(CAM_EEPROM, "failed: eeprom power down rc %d", rc); CAM_ERR(CAM_EEPROM, "failed: eeprom power down rc %d", rc);
@ -1235,6 +1332,12 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg)
(struct cam_eeprom_soc_private *)e_ctrl->soc_info.soc_private; (struct cam_eeprom_soc_private *)e_ctrl->soc_info.soc_private;
struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info; struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info;
#if defined(CONFIG_CAMERA_SYSFS_V2)
uint8_t crc_check_retry_cnt = 0;
int i;
int normal_crc_value = 0;
#endif
ioctl_ctrl = (struct cam_control *)arg; ioctl_ctrl = (struct cam_control *)arg;
if (copy_from_user(&dev_config, if (copy_from_user(&dev_config,
@ -1303,6 +1406,24 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg)
return rc; return rc;
} }
#if defined(CONFIG_CAMERA_SYSFS_V2)
if ((e_ctrl->cal_data.num_map == 0) &&
(e_ctrl->cal_data.map != NULL)) {
vfree(e_ctrl->cal_data.map);
e_ctrl->cal_data.map = NULL;
CAM_INFO(CAM_EEPROM, "No read settings privided");
return rc;
}
e_ctrl->cal_data.num_data = cam_sec_eeprom_calc_calmap_size(e_ctrl);
if (e_ctrl->cal_data.num_data == 0) {
rc = -ENOMEM;
CAM_ERR(CAM_EEPROM, "failed");
goto error;
}
#endif
e_ctrl->cal_data.mapdata = e_ctrl->cal_data.mapdata =
vzalloc(e_ctrl->cal_data.num_data); vzalloc(e_ctrl->cal_data.num_data);
if (!e_ctrl->cal_data.mapdata) { if (!e_ctrl->cal_data.mapdata) {
@ -1320,6 +1441,9 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg)
} }
} }
#if defined(CONFIG_CAMERA_SYSFS_V2)
eeropm_crc_check :
#endif
rc = cam_eeprom_power_up(e_ctrl, rc = cam_eeprom_power_up(e_ctrl,
&soc_private->power_info); &soc_private->power_info);
if (rc) { if (rc) {
@ -1328,13 +1452,146 @@ static int32_t cam_eeprom_pkt_parse(struct cam_eeprom_ctrl_t *e_ctrl, void *arg)
} }
e_ctrl->cam_eeprom_state = CAM_EEPROM_CONFIG; e_ctrl->cam_eeprom_state = CAM_EEPROM_CONFIG;
#if defined(CONFIG_CAMERA_SYSFS_V2)
normal_crc_value = 0;
for (i = 0; i < e_ctrl->cal_data.num_map>>1; i++)
normal_crc_value |= (1 << i);
e_ctrl->camera_normal_cal_crc = normal_crc_value;
CAM_INFO(CAM_EEPROM, "num_map = %d, CAMERA_NORMAL_CAL_CRC = 0x%X",
e_ctrl->cal_data.num_map, e_ctrl->camera_normal_cal_crc);
#endif
#if defined(CONFIG_SEC_GTS10U_PROJECT)
if (e_ctrl->soc_info.index == 2){
CAM_ERR(CAM_EEPROM, "HI847 REAR UW");
rc = cam_otp_hi847_read_memory(e_ctrl, &e_ctrl->cal_data);
}
else {
rc = cam_eeprom_read_memory(e_ctrl, &e_ctrl->cal_data);
}
#elif defined(CONFIG_SEC_GTS10P_PROJECT)
if (e_ctrl->soc_info.index == 1){
CAM_INFO(CAM_EEPROM, "HI1337 FRONT");
rc = cam_otp_hi1337_read_memory(e_ctrl, &e_ctrl->cal_data);
}
else if (e_ctrl->soc_info.index == 2){
CAM_ERR(CAM_EEPROM, "HI847 REAR UW");
rc = cam_otp_hi847_read_memory(e_ctrl, &e_ctrl->cal_data);
}
else if (e_ctrl->soc_info.index == 12){
CAM_INFO(CAM_EEPROM, "HI1337 FRONT FULL");
rc = cam_otp_hi1337_read_memory(e_ctrl, &e_ctrl->cal_data);
}
else {
rc = cam_eeprom_read_memory(e_ctrl, &e_ctrl->cal_data);
}
#else
rc = cam_eeprom_read_memory(e_ctrl, &e_ctrl->cal_data); rc = cam_eeprom_read_memory(e_ctrl, &e_ctrl->cal_data);
#endif
if (rc) { if (rc) {
CAM_ERR(CAM_EEPROM, CAM_ERR(CAM_EEPROM,
"read_eeprom_memory failed"); "read_eeprom_memory failed");
hw_bigdata_i2c_from_eeprom(e_ctrl);
#if defined(CONFIG_SAMSUNG_CAMERA)
CAM_ERR(CAM_EEPROM, "Retry to read F-ROM");
rc = cam_eeprom_power_down(e_ctrl);
if (rc) {
CAM_ERR(CAM_EEPROM, "failed power down rc %d", rc);
goto memdata_free;
}
usleep_range(10*1000, 11*1000);
rc = cam_eeprom_power_up(e_ctrl,
&soc_private->power_info);
if (rc) {
CAM_ERR(CAM_EEPROM, "failed power up rc %d", rc);
goto memdata_free;
}
rc = cam_eeprom_read_memory(e_ctrl, &e_ctrl->cal_data);
if (rc) {
CAM_ERR(CAM_EEPROM,
"read_eeprom_memory failed (retry)");
hw_bigdata_i2c_from_eeprom(e_ctrl);
cam_sec_eeprom_reset_module_info(e_ctrl);
goto power_down;
}
#else
goto power_down; goto power_down;
#endif
} }
#if defined(CONFIG_CAMERA_SYSFS_V2)
if (1 < e_ctrl->cal_data.num_map) {
if (crc_check_retry_cnt == 0) {
rc = cam_sec_eeprom_get_customInfo(e_ctrl, csl_packet);
if (rc < 0) {
CAM_INFO(CAM_EEPROM, "cam_sec_eeprom_get_customInfo failed");
}
}
e_ctrl->is_supported |= cam_sec_eeprom_match_crc(&e_ctrl->cal_data,
e_ctrl->soc_info.index);
if (e_ctrl->is_supported != normal_crc_value) {
CAM_ERR(CAM_EEPROM, "Any CRC values at F-ROM are not matched.");
hw_bigdata_crc_from_eeprom(e_ctrl);
if (crc_check_retry_cnt < 10) {
crc_check_retry_cnt++;
CAM_ERR(CAM_EEPROM, "Retry to read F-ROM : %d", crc_check_retry_cnt);
cam_eeprom_power_down(e_ctrl);
goto eeropm_crc_check;
}
} else {
CAM_INFO(CAM_EEPROM, "All CRC values are matched.");
crc_check_retry_cnt = 0;
}
#if defined(CONFIG_CAMERA_HW_ERROR_DETECT)
if (crc_check_retry_cnt > 0) {
if (e_ctrl->soc_info.index == SEC_WIDE_SENSOR) {
sprintf(retry_cnt[INDEX_REAR], "%d\n", crc_check_retry_cnt);
} else if (e_ctrl->soc_info.index == SEC_ULTRA_WIDE_SENSOR) {
sprintf(retry_cnt[INDEX_REAR2], "%d\n", crc_check_retry_cnt);
} else if (e_ctrl->soc_info.index == SEC_TELE_SENSOR) {
sprintf(retry_cnt[INDEX_REAR3], "%d\n", crc_check_retry_cnt);
} else if (e_ctrl->soc_info.index == SEC_TELE2_SENSOR) {
sprintf(retry_cnt[INDEX_REAR4], "%d\n", crc_check_retry_cnt);
} else if (e_ctrl->soc_info.index == SEC_FRONT_SENSOR) {
sprintf(retry_cnt[INDEX_FRONT], "%d\n", crc_check_retry_cnt);
}
}
#endif
rc = cam_sec_eeprom_update_module_info(e_ctrl);
if (rc < 0) {
CAM_ERR(CAM_EEPROM, "cam_sec_eeprom_update_module_info failed");
goto power_down;
}
#ifdef CAM_EEPROM_DBG_DUMP
if (e_ctrl->soc_info.index == 1 || e_ctrl->soc_info.index == 8)
rc = cam_sec_eeprom_dump(e_ctrl->soc_info.index,
e_ctrl->cal_data.mapdata, 0x0, 0x7DF);
else if (e_ctrl->soc_info.index == 2)
rc = cam_sec_eeprom_dump(e_ctrl->soc_info.index,
e_ctrl->cal_data.mapdata, 0x0, 0x7DF);
#endif
} else if (e_ctrl->cal_data.num_map == 1 &&
e_ctrl->cal_data.num_data == FROM_REAR_HEADER_SIZE) {
// run this on eebin check
rc = cam_sec_eeprom_get_phone_ver(e_ctrl, csl_packet);
if (rc < 0) {
CAM_ERR(CAM_EEPROM, "cam_sec_eeprom_get_phone_ver failed");
goto power_down;
}
}
#endif
rc = cam_eeprom_get_cal_data(e_ctrl, csl_packet); rc = cam_eeprom_get_cal_data(e_ctrl, csl_packet);
if (rc) if (rc)
CAM_WARN(CAM_EEPROM, "failed to get calibration data rc %d", rc); CAM_WARN(CAM_EEPROM, "failed to get calibration data rc %d", rc);

View File

@ -37,6 +37,380 @@
#define EEPROM_DRIVER_I2C "cam-i2c-eeprom" #define EEPROM_DRIVER_I2C "cam-i2c-eeprom"
#define EEPROM_DRIVER_I3C "i3c_camera_eeprom" #define EEPROM_DRIVER_I3C "i3c_camera_eeprom"
#define OK 1
#define CRASH 0
#define SYSFS_FW_VER_SIZE 40
#define SYSFS_MODULE_INFO_SIZE 96
#define FROM_MODULE_FW_INFO_SIZE 11
#define FROM_MTF_SIZE 54
#define FROM_MODULE_ID_SIZE 10
#define FROM_REAR_AF_CAL_SIZE 10
#define FROM_SENSOR_ID_SIZE 16
#define FROM_REAR_DUAL_CAL_SIZE 89
#define FROM_FRONT_DUAL_CAL_SIZE 1024
#define FROM_MAX_DUAL_CAL_SIZE ((FROM_REAR_DUAL_CAL_SIZE > FROM_FRONT_DUAL_CAL_SIZE) ? FROM_REAR_DUAL_CAL_SIZE : FROM_FRONT_DUAL_CAL_SIZE)
#define PAF_2PD_CAL_INFO_SIZE 4096
#define PAF_SPARSEPD_CAL_INFO_SIZE 2048
#define PAF_CAL_ERR_CHECK_OFFSET 0x14
#define CAMERA_CAL_CRC_WIDE 0x1FFF
#define FROM_REAR_HEADER_SIZE 0x0200
#define HW_INFO_MAX_SIZE (6)
#define SW_INFO_MAX_SIZE (5)
#define VENDOR_INFO_MAX_SIZE (2)
#define PROCESS_INFO_MAX_SIZE (2)
#define PROJECT_CAL_TYPE_MAX_SIZE (20)
#define MAKE_STRINGIZE(arg) #arg
#define X_ENUMS \
X(DEF_M_CORE_VER) \
X(DEF_M_VER_HW) \
X(DEF_M_VER_SW) \
X(DEF_M_VER_ETC) \
X(DEF_S_VER_HW) \
X(DEF_M_CHK_VER) \
X(SIZE_M_PAF_CAL) \
X(SIZE_S_PAF_CAL) \
X(SIZE_M_DUAL_CAL) \
X(SIZE_S_DUAL_CAL) \
X(SIZE_ONLY_M_CAL_CRC) \
X(ADDR_M_HEADER) \
X(ADDR_S_FW_VER) \
X(ADDR_M_FW_VER) \
X(ADDR_M_CALMAP_VER) \
X(ADDR_M_DLL_VER) \
X(ADDR_S_DLL_VER) \
X(ADDR_M_MODULE_ID) \
X(ADDR_M_SENSOR_ID) \
X(ADDR_M_SENSOR_VER) \
X(ADDR_S_SENSOR_ID) \
X(ADDR_M0_MTF) \
X(ADDR_M1_MTF) \
X(ADDR_M2_MTF) \
X(ADDR_S0_MTF) \
X(ADDR_M0_LSC) \
X(ADDR_M1_LSC) \
X(ADDR_M2_LSC) \
X(ADDR_M0_PAF) \
X(ADDR_M0_BP) \
X(ADDR_M0_PLC) \
X(ADDR_M1_PAF) \
X(ADDR_M1_BP) \
X(ADDR_M1_PLC) \
X(ADDR_M2_PAF) \
X(ADDR_M2_BP) \
X(ADDR_M2_PLC) \
X(ADDR_M_AF) \
X(ADDR_M0_MODULE_AWB) \
X(ADDR_M1_MODULE_AWB) \
X(ADDR_M2_MODULE_AWB) \
X(ADDR_M0_AE) \
X(ADDR_M1_AE) \
X(ADDR_M2_AE) \
X(ADDR_M_OIS) \
X(ADDR_M_CAL_VER_WHEN_CAL) \
X(ADDR_M_DUAL_CAL) \
X(ADDR_S_DUAL_CAL) \
X(ADDR_M_ATC_CAL) \
X(ADDR_S0_LSC) \
X(ADDR_S0_PAF) \
X(ADDR_S0_BP) \
X(ADDR_S0_PLC) \
X(ADDR_S0_AF) \
X(ADDR_S0_MODULE_AWB) \
X(ADDR_S0_AE) \
X(ADDR_S_OIS) \
X(ADDR_4PDC_CAL) \
X(ADDR_TCLSC_CAL) \
X(ADDR_SPDC_CAL) \
X(ADDR_PDXTC_CAL) \
X(ADDR_M_XTALK_CAL) \
X(ADDR_TOFCAL_START) \
X(ADDR_TOFCAL_SIZE) \
X(ADDR_TOFCAL_UID) \
X(ADDR_TOFCAL_RESULT) \
X(ADDR_VALIDATION_500) \
X(ADDR_VALIDATION_300) \
X(ADDR_CUSTOM_FW_VER) \
X(ADDR_CUSTOM_SENSOR_ID)
typedef enum _ConfigNameInfoIdx {
#define X(Enum) Enum,
X_ENUMS
#undef X
MAX_CONFIG_INFO_IDX
} eConfigNameInfoIdx;
static const char* ConfigInfoStrs[] =
{
#define X(String) MAKE_STRINGIZE(String),
X_ENUMS
#undef X
};
typedef enum _DualTiltMode {
DUAL_TILT_NONE,
DUAL_TILT_REAR_WIDE,
DUAL_TILT_REAR_UW,
DUAL_TILT_REAR_TELE,
DUAL_TILT_FRONT,
DUAL_TILT_TOF_REAR ,
DUAL_TILT_TOF_REAR2,
DUAL_TILT_TOF_REAR3,
DUAL_TILT_TOF_FRONT,
DUAL_TILT_MAX
} eDualTiltMode;
#define MaximumCustomStringLength (25) // should have the same value in chivendortag.h, camxpropertydefs.h
typedef struct _cam_eeprom_configInfo_t {
uint32_t isSet;
uint32_t value;
} ConfigInfo_t;
typedef enum _MainOrSub {
MAIN_MODULE,
SUB_MODULE,
} eMainSub;
typedef struct _cam_eeprom_dual_tilt_t {
int x;
int y;
int z;
int sx;
int sy;
int range;
int max_err;
int avg_err;
int dll_ver;
char project_cal_type[PROJECT_CAL_TYPE_MAX_SIZE];
} DualTilt_t;
typedef struct _cam_eeprom_module_ver_t {
char *sensor_id;
char *sensor2_id;
char *module_id;
char phone_hw_info[HW_INFO_MAX_SIZE];
char phone_sw_info[SW_INFO_MAX_SIZE];
char phone_vendor_info[VENDOR_INFO_MAX_SIZE];
char phone_process_info[PROCESS_INFO_MAX_SIZE];
char module_fw_ver[FROM_MODULE_FW_INFO_SIZE+1];
char load_fw_ver[FROM_MODULE_FW_INFO_SIZE+1];
char phone_fw_ver[FROM_MODULE_FW_INFO_SIZE+1];
char *module_info;
char *cam_cal_ack;
char *cam_fw_ver;
char *cam_fw_full_ver;
char *fw_factory_ver;
char *fw_user_ver;
uint8_t *dual_cal;
DualTilt_t *DualTilt;
} ModuleVer_t;
typedef struct _cam_eeprom_module_info_t {
ModuleVer_t mVer;
uint32_t type;
uint8_t mapVer;
eMainSub M_or_S;
char typeStr[FROM_MODULE_FW_INFO_SIZE];
} ModuleInfo_t;
typedef enum _AfOffsetIdx {
AF_CAL_NEAR_IDX = 0,
AF_CAL_FAR_IDX,
AF_CAL_M1_IDX,
AF_CAL_M2_IDX,
AF_CAL_M3_IDX,
AF_CAL_M4_IDX,
AF_CAL_M5_IDX,
AF_CAL_M6_IDX,
AF_CAL_M7_IDX,
AF_CAL_M8_IDX,
AF_CAL_IDX_MAX
} eAfOffsetIdx;
typedef struct _cam_eeprom_af_idx_t {
eAfOffsetIdx idx;
uint32_t offset;
} AfIdx_t;
#define AF_CAL_NEAR_OFFSET_FROM_AF 0x0010
#define AF_CAL_FAR_OFFSET_FROM_AF 0x0004
#define AF_CAL_M1_OFFSET_FROM_AF 0x0008
#define AF_CAL_M2_OFFSET_FROM_AF 0x000C
#define PAF_OFFSET_CAL_ERR_CHECK (0x0014)
#define PAF_MID_SIZE 936
#define PAF_MID_OFFSET (0x0730)
#define PAF_FAR_SIZE 234
#define PAF_FAR_OFFSET (0x0CD0)
#define TOFCAL_START_ADDR 0x0100
#define TOFCAL_END_ADDR 0x11A3
#define TOFCAL_TOTAL_SIZE (TOFCAL_END_ADDR - TOFCAL_START_ADDR + 1)
#define TOFCAL_SIZE (4096 - 1)
#define TOFCAL_EXTRA_SIZE (TOFCAL_TOTAL_SIZE - TOFCAL_SIZE)
#define TOFCAL_UID_ADDR 0x11A4
#define TOFCAL_UID (TOFCAL_UID_ADDR + 0x0000)
#define TOFCAL_RESULT_ADDR 0x00CA
#if 1
#define REAR_TOF_DUAL_CAL_SIZE (0x08FC)
#define FRONT_TOF_DUAL_CAL_SIZE (0x0800)
#else
#define REAR_TOF_DUAL_CAL_ADDR 0xB800
#define REAR_TOF_DUAL_CAL_END_ADDR 0xC0FB
#define REAR_TOF_DUAL_CAL_SIZE (REAR_TOF_DUAL_CAL_END_ADDR - REAR_TOF_DUAL_CAL_ADDR + 1)
#define REAR_TOF_DUAL_TILT_DLL_VERSION (REAR_TOF_DUAL_CAL_ADDR + 0x0000)
#define REAR_TOF_DUAL_TILT_X (REAR_TOF_DUAL_CAL_ADDR + 0x006C)
#define REAR_TOF_DUAL_TILT_Y (REAR_TOF_DUAL_CAL_ADDR + 0x0070)
#define REAR_TOF_DUAL_TILT_Z (REAR_TOF_DUAL_CAL_ADDR + 0x0074)
#define REAR_TOF_DUAL_TILT_SX (REAR_TOF_DUAL_CAL_ADDR + 0x03C0)
#define REAR_TOF_DUAL_TILT_SY (REAR_TOF_DUAL_CAL_ADDR + 0x03C4)
#define REAR_TOF_DUAL_TILT_RANGE (REAR_TOF_DUAL_CAL_ADDR + 0x04E0)
#define REAR_TOF_DUAL_TILT_MAX_ERR (REAR_TOF_DUAL_CAL_ADDR + 0x04E4)
#define REAR_TOF_DUAL_TILT_AVG_ERR (REAR_TOF_DUAL_CAL_ADDR + 0x04E8)
#define REAR2_TOF_DUAL_CAL_ADDR 0xB800
#define REAR2_TOF_DUAL_TILT_DLL_VERSION (REAR2_TOF_DUAL_CAL_ADDR + 0x0000)
#define REAR2_TOF_DUAL_TILT_X (REAR2_TOF_DUAL_CAL_ADDR + 0x0160)
#define REAR2_TOF_DUAL_TILT_Y (REAR2_TOF_DUAL_CAL_ADDR + 0x0164)
#define REAR2_TOF_DUAL_TILT_Z (REAR2_TOF_DUAL_CAL_ADDR + 0x0168)
#define REAR2_TOF_DUAL_TILT_SX (REAR2_TOF_DUAL_CAL_ADDR + 0x05C8)
#define REAR2_TOF_DUAL_TILT_SY (REAR2_TOF_DUAL_CAL_ADDR + 0x05CC)
#define REAR2_TOF_DUAL_TILT_RANGE (REAR2_TOF_DUAL_CAL_ADDR + 0x06E8)
#define REAR2_TOF_DUAL_TILT_MAX_ERR (REAR2_TOF_DUAL_CAL_ADDR + 0x06EC)
#define REAR2_TOF_DUAL_TILT_AVG_ERR (REAR2_TOF_DUAL_CAL_ADDR + 0x06F0)
#if defined(CONFIG_SAMSUNG_FRONT_TOF)
#define FRONT_TOF_DUAL_CAL_ADDR 0x2200
#define FRONT_TOF_DUAL_CAL_END_ADDR 0x29FF
#define FRONT_TOF_DUAL_CAL_SIZE (FRONT_TOF_DUAL_CAL_END_ADDR - FRONT_TOF_DUAL_CAL_ADDR + 1)
#define FRONT_TOF_DUAL_TILT_DLL_VERSION (FRONT_TOF_DUAL_CAL_ADDR + 0x07F4) // 29F4
#define FRONT_TOF_DUAL_TILT_X (FRONT_TOF_DUAL_CAL_ADDR + 0x04B8) // 26B8
#define FRONT_TOF_DUAL_TILT_Y (FRONT_TOF_DUAL_CAL_ADDR + 0x04BC) // 26BC
#define FRONT_TOF_DUAL_TILT_Z (FRONT_TOF_DUAL_CAL_ADDR + 0x04C0) // 26C0
#define FRONT_TOF_DUAL_TILT_SX (FRONT_TOF_DUAL_CAL_ADDR + 0x04DC) // 26DC
#define FRONT_TOF_DUAL_TILT_SY (FRONT_TOF_DUAL_CAL_ADDR + 0x04E0) // 26E0
#define FRONT_TOF_DUAL_TILT_RANGE (FRONT_TOF_DUAL_CAL_ADDR + 0x07EC) // 29EC
#define FRONT_TOF_DUAL_TILT_MAX_ERR (FRONT_TOF_DUAL_CAL_ADDR + 0x07E8) // 29E8
#define FRONT_TOF_DUAL_TILT_AVG_ERR (FRONT_TOF_DUAL_CAL_ADDR + 0x07E4) // 29E4
#endif
#endif
/*************************************************************************************************/
enum sysfs_index {
INDEX_REAR,
INDEX_REAR2,
INDEX_REAR3,
INDEX_REAR4,
INDEX_FRONT,
INDEX_FRONT2,
INDEX_FRONT3,
INDEX_MAX,
};
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32) || defined(CONFIG_SAMSUNG_OIS_RUMBA_S4)
#define OIS_XYGG_SIZE 8
#define OIS_CENTER_SHIFT_SIZE 4
#define OIS_XYSR_SIZE 4
#define OIS_CROSSTALK_SIZE 4
#define OIS_XYGG_START_OFFSET 0x10
#define OIS_CROSSTALK_START_OFFSET 0x1C
#define OIS_CAL_MARK_START_OFFSET 0x30
#define OIS_XYSR_START_OFFSET 0x38
#if defined(CONFIG_SAMSUNG_REAR_TRIPLE)
#define WIDE_OIS_CENTER_SHIFT_START_OFFSET 0x2AE
#define TELE_OIS_CENTER_SHIFT_START_OFFSET 0x2AA
#endif
#endif
#define MAX_AF_CAL_STR_SIZE 256
//extern int rear_af_cal[FROM_REAR_AF_CAL_SIZE + 1];
extern char af_cal_str[INDEX_MAX][MAX_AF_CAL_STR_SIZE];
extern char sensor_id[INDEX_MAX][FROM_SENSOR_ID_SIZE + 1];
extern uint8_t module_id[INDEX_MAX][FROM_MODULE_ID_SIZE + 1];
extern char module_info[INDEX_MAX][SYSFS_MODULE_INFO_SIZE];
extern char mtf_exif[INDEX_MAX][FROM_MTF_SIZE + 1];
extern char fw_ver[INDEX_MAX][SYSFS_FW_VER_SIZE];
extern char fw_full_ver[INDEX_MAX][SYSFS_FW_VER_SIZE];
extern char fw_factory_ver[INDEX_MAX][SYSFS_FW_VER_SIZE];
extern char fw_user_ver[INDEX_MAX][SYSFS_FW_VER_SIZE];
extern uint32_t paf_err_data_result[INDEX_MAX];
#if defined(CONFIG_SAMSUNG_REAR_DUAL)
extern uint8_t dual_cal[INDEX_MAX][FROM_MAX_DUAL_CAL_SIZE + 1];
extern DualTilt_t dual_tilt[INDEX_MAX];
#endif
#if defined(CONFIG_CAMERA_HW_ERROR_DETECT)
extern char retry_cnt[INDEX_MAX][5];
#endif
extern char cal_crc[SYSFS_FW_VER_SIZE];
extern char rear_mtf2_exif[FROM_MTF_SIZE + 1];
extern char rear_paf_cal_data_far[PAF_2PD_CAL_INFO_SIZE];
extern char rear_paf_cal_data_mid[PAF_2PD_CAL_INFO_SIZE];
extern char rear_f2_paf_cal_data_far[PAF_2PD_CAL_INFO_SIZE];
extern char rear_f2_paf_cal_data_mid[PAF_2PD_CAL_INFO_SIZE];
extern uint32_t f2_paf_err_data_result;
/* phone fw info */
extern uint32_t CAMERA_NORMAL_CAL_CRC;
#if !defined(CONFIG_SAMSUNG_FRONT_TOP_EEPROM)
extern uint32_t front_af_cal_pan;
extern uint32_t front_af_cal_macro;
#endif
#if defined(CONFIG_SAMSUNG_REAR_TOF)
extern char rear_tof_fw_ver[SYSFS_FW_VER_SIZE];
extern char rear_tof_fw_full_ver[SYSFS_FW_VER_SIZE];
extern char rear_tof_fw_user_ver[SYSFS_FW_VER_SIZE];
extern char rear_tof_fw_factory_ver[SYSFS_FW_VER_SIZE];
extern char rear_tof_module_info[SYSFS_MODULE_INFO_SIZE];
extern char rear_tof_sensor_id[FROM_SENSOR_ID_SIZE + 1];
extern uint8_t rear_tof_module_id[FROM_MODULE_ID_SIZE + 1];
extern int rear_tof_uid;
extern int rear_tof_validation_500;
extern int rear_tof_validation_300;
extern uint8_t rear_tof_cal[TOFCAL_SIZE + 1];
extern uint8_t rear_tof_cal_extra[TOFCAL_EXTRA_SIZE + 1];
extern uint8_t rear_tof_cal_result;
extern uint8_t rear_tof_dual_cal[REAR_TOF_DUAL_CAL_SIZE + 1];
extern DualTilt_t rear_tof_dual;
extern DualTilt_t rear2_tof_dual;
#endif
#if defined(CONFIG_SAMSUNG_FRONT_TOF)
extern char front_tof_cam_fw_ver[SYSFS_FW_VER_SIZE];
extern char front_tof_cam_fw_full_ver[SYSFS_FW_VER_SIZE];
extern char front_tof_cam_fw_user_ver[SYSFS_FW_VER_SIZE];
extern char front_tof_cam_fw_factory_ver[SYSFS_FW_VER_SIZE];
extern char front_tof_module_info[SYSFS_MODULE_INFO_SIZE];
extern char front_tof_sensor_id[FROM_SENSOR_ID_SIZE + 1];
extern int front_tof_uid;
extern uint8_t front_tof_cal[TOFCAL_SIZE + 1];
extern uint8_t front_tof_cal_extra[TOFCAL_EXTRA_SIZE+1];
extern uint8_t front_tof_cal_result;
extern uint8_t front_tof_dual_cal[FRONT_TOF_DUAL_CAL_SIZE + 1];
extern DualTilt_t front_tof_dual;
#endif
enum cam_eeprom_state { enum cam_eeprom_state {
CAM_EEPROM_INIT, CAM_EEPROM_INIT,
@ -197,6 +571,9 @@ struct cam_eeprom_ctrl_t {
uint16_t is_multimodule_mode; uint16_t is_multimodule_mode;
struct i2c_settings_array wr_settings; struct i2c_settings_array wr_settings;
struct eebin_info eebin_info; struct eebin_info eebin_info;
uint32_t is_supported;
uint32_t camera_normal_cal_crc;
}; };
int32_t cam_eeprom_update_i2c_info(struct cam_eeprom_ctrl_t *e_ctrl, int32_t cam_eeprom_update_i2c_info(struct cam_eeprom_ctrl_t *e_ctrl,

View File

@ -395,17 +395,28 @@ int cam_eeprom_parse_dt(struct cam_eeprom_ctrl_t *e_ctrl)
/* Initialize regulators to default parameters */ /* Initialize regulators to default parameters */
for (i = 0; i < soc_info->num_rgltr; i++) { for (i = 0; i < soc_info->num_rgltr; i++) {
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev, #if defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
soc_info->rgltr_name[i]); if (soc_info->rgltr_subname[i] &&
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) { strstr(soc_info->rgltr_subname[i], "s2mpb03")) {
rc = PTR_ERR(soc_info->rgltr[i]); soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
rc = rc ? rc : -EINVAL; soc_info->rgltr_subname[i]);
CAM_ERR(CAM_EEPROM, "get failed for regulator %s", CAM_INFO(CAM_EEPROM, "get for regulator %s instead of %s",
soc_info->rgltr_name[i]); soc_info->rgltr_subname[i], soc_info->rgltr_name[i]);
return rc; } else
#endif
{
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
soc_info->rgltr_name[i]);
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) {
rc = PTR_ERR(soc_info->rgltr[i]);
rc = rc ? rc : -EINVAL;
CAM_ERR(CAM_EEPROM, "get failed for regulator %s",
soc_info->rgltr_name[i]);
return rc;
}
CAM_DBG(CAM_EEPROM, "get for regulator %s",
soc_info->rgltr_name[i]);
} }
CAM_DBG(CAM_EEPROM, "get for regulator %s",
soc_info->rgltr_name[i]);
} }
return rc; return rc;

View File

@ -0,0 +1,45 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef _CAM_SEC_EEPROM_CORE_H_
#define _CAM_SEC_EEPROM_CORE_H_
#include "cam_eeprom_dev.h"
typedef enum{
EEPROM_FW_VER = 1,
PHONE_FW_VER,
LOAD_FW_VER
} cam_eeprom_fw_version_idx;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
extern uint8_t ois_xygg[INDEX_MAX][OIS_XYGG_SIZE];
extern uint8_t ois_cal_mark[INDEX_MAX];
extern int ois_gain_result[INDEX_MAX];
extern int ois_sr_result[INDEX_MAX];
extern uint8_t ois_center_shift[INDEX_MAX][OIS_CENTER_SHIFT_SIZE];
extern int ois_cross_talk_result[INDEX_MAX];
#endif
int cam_sec_eeprom_dump(uint32_t subdev_id, uint8_t *mapdata, uint32_t addr, uint32_t size);
void cam_sec_eeprom_reset_module_info(struct cam_eeprom_ctrl_t *e_ctrl);
int cam_sec_eeprom_update_module_info(struct cam_eeprom_ctrl_t *e_ctrl);
int32_t cam_sec_eeprom_check_firmware_cal(uint32_t camera_cal_crc, uint32_t camera_normal_cal_crc, ModuleInfo_t *mInfo);
uint32_t cam_sec_eeprom_match_crc(struct cam_eeprom_memory_block_t *data, uint32_t subdev_id);
int32_t cam_sec_eeprom_calc_calmap_size(struct cam_eeprom_ctrl_t *e_ctrl);
int32_t cam_sec_eeprom_fill_configInfo(char *configString, uint32_t value, ConfigInfo_t *ConfigInfo);
int32_t cam_sec_eeprom_get_customInfo(struct cam_eeprom_ctrl_t *e_ctrl, struct cam_packet *csl_packet);
int32_t cam_sec_eeprom_get_phone_ver(struct cam_eeprom_ctrl_t *e_ctrl, struct cam_packet *csl_packet);
#if defined(CONFIG_HI847_OTP)
int cam_otp_hi847_read_memory(struct cam_eeprom_ctrl_t *e_ctrl,
struct cam_eeprom_memory_block_t *block);
#endif
#if defined(CONFIG_HI1337_OTP)
int cam_otp_hi1337_read_memory( struct cam_eeprom_ctrl_t *e_ctrl,
struct cam_eeprom_memory_block_t *block);
#endif
#endif
/* _CAM_SEC_EEPROM_CORE_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,277 @@
#ifndef HI847_OTP_H
#define HI847_OTP_H
#define SENSOR_HI847_OTP_BANK_SELECT_REGISTER 0x0700
struct cam_sensor_i2c_reg_array load_sensor_hi847_otp_setfile_reg[] = {
{0x0B00, 0x0000},
{0x0790, 0x0100},
{0x2000, 0x1001},
{0x2002, 0x007F},
{0x2006, 0x4130},
{0x3800, 0x0000},
{0x3802, 0x0000},
{0x3804, 0x0000},
{0x3806, 0x0000},
{0x3808, 0x0000},
{0x380A, 0x0000},
{0x380C, 0x0000},
{0x026A, 0xFFFF},
{0x026C, 0x00FF},
{0x026E, 0x0000},
{0x0360, 0x1E8E},
{0x040E, 0x01EB},
{0x0600, 0x1130},
{0x0602, 0x3112},
{0x0604, 0x8048},
{0x0606, 0x00E9},
{0x067A, 0x0404},
{0x067C, 0x0404},
{0x06A8, 0x0240},
{0x06AA, 0x00CA},
{0x06AC, 0x0041},
{0x06B4, 0x3FFF},
{0x06DE, 0x0404},
{0x06E0, 0x0404},
{0x06E2, 0xFF00},
{0x06E4, 0x8333},
{0x06E6, 0x8333},
{0x06E8, 0x8333},
{0x06EA, 0x8333},
{0x052A, 0x0000},
{0x052C, 0x0000},
{0x0F06, 0x0002},
{0x0A04, 0xB4C5},
{0x0A06, 0xC400},
{0x0A08, 0x988A},
{0x0A0A, 0xA387},
{0x0A0E, 0xEEC0},
{0x0A12, 0x0000},
{0x0A18, 0x0010},
{0x0A1C, 0x0040},
{0x0A20, 0x0015},
{0x0C00, 0x0021},
{0x0C16, 0x0002},
{0x0708, 0x6FC0},
{0x070C, 0x0000},
{0x1244, 0x0000},
{0x105C, 0x0F0B},
{0x1958, 0x0000},
{0x195A, 0x004C},
{0x195C, 0x0097},
{0x195E, 0x0221},
{0x1960, 0x03FE},
{0x1980, 0x00E0},
{0x1982, 0x0010},
{0x1984, 0x2018},
{0x1986, 0x0008},
{0x1988, 0x0000},
{0x198A, 0x0000},
{0x198C, 0x0880},
{0x198E, 0x0000},
{0x1990, 0x1A00},
{0x1992, 0x0000},
{0x1994, 0x2800},
{0x1996, 0x0002},
{0x1962, 0x0000},
{0x1964, 0x004C},
{0x1966, 0x0097},
{0x1968, 0x0221},
{0x196A, 0x03FE},
{0x19C0, 0x00E0},
{0x19C2, 0x0010},
{0x19C4, 0x2018},
{0x19C6, 0x0008},
{0x19C8, 0x0000},
{0x19CA, 0x0000},
{0x19CC, 0x0880},
{0x19CE, 0x0000},
{0x19D0, 0x1A00},
{0x19D2, 0x0000},
{0x19D4, 0x2800},
{0x19D6, 0x0002},
{0x196C, 0x0000},
{0x196E, 0x004C},
{0x1970, 0x0097},
{0x1972, 0x0221},
{0x1974, 0x03FE},
{0x1A00, 0x00E0},
{0x1A02, 0x0010},
{0x1A04, 0x2018},
{0x1A06, 0x0008},
{0x1A08, 0x0000},
{0x1A0A, 0x0000},
{0x1A0C, 0x0880},
{0x1A0E, 0x0000},
{0x1A10, 0x1A00},
{0x1A12, 0x0000},
{0x1A14, 0x2800},
{0x1A16, 0x0002},
{0x1976, 0x0000},
{0x1978, 0x004C},
{0x197A, 0x0097},
{0x197C, 0x0221},
{0x197E, 0x03FE},
{0x1A40, 0x00E0},
{0x1A42, 0x0010},
{0x1A44, 0x2018},
{0x1A46, 0x0008},
{0x1A48, 0x0000},
{0x1A4A, 0x0000},
{0x1A4C, 0x0880},
{0x1A4E, 0x0000},
{0x1A50, 0x1A00},
{0x1A52, 0x0000},
{0x1A54, 0x2800},
{0x1A56, 0x0002},
{0x192A, 0x0201},
{0x0384, 0x0000},
{0x027E, 0x0100},
{0x0204, 0x0000},
{0x0206, 0x033C},
{0x020A, 0x0B26},
{0x020E, 0x0B2A},
{0x0214, 0x0200},
{0x0216, 0x0200},
{0x0218, 0x0200},
{0x021A, 0x0200},
{0x0224, 0x00B6},
{0x022A, 0x0017},
{0x022C, 0x0E1F},
{0x022E, 0x0939},
{0x0234, 0x1111},
{0x0236, 0x1111},
{0x0238, 0x1111},
{0x023A, 0x1111},
{0x0250, 0x0000},
{0x0252, 0x0006},
{0x0254, 0x0000},
{0x0256, 0x0000},
{0x0258, 0x0000},
{0x025A, 0x0000},
{0x025C, 0x0000},
{0x025E, 0x0202},
{0x0268, 0x00CB},
{0x0440, 0x001D},
{0x0F00, 0x0000},
{0x0F04, 0x00C0},
{0x0B02, 0x0100},
{0x0B04, 0x00DC},
{0x0B12, 0x0B50},
{0x0B14, 0x0880},
{0x0B20, 0x0100},
{0x1100, 0x1100},
{0x1102, 0x0008},
{0x1108, 0x0002},
{0x1118, 0x0086},
{0x0A10, 0xB040},
{0x0C14, 0x00C0},
{0x0C18, 0x0B50},
{0x0C1A, 0x0880},
{0x0730, 0x0001},
{0x0732, 0x0000},
{0x0734, 0x0300},
{0x0736, 0x004A},
{0x0738, 0x0001},
{0x073C, 0x0900},
{0x0740, 0x0000},
{0x0742, 0x0000},
{0x0744, 0x0300},
{0x0746, 0x005F},
{0x0748, 0x0001},
{0x074A, 0x0900},
{0x074C, 0x0000},
{0x074E, 0x0100},
{0x0750, 0x0000},
{0x1200, 0x0526},
{0x1202, 0x0E00},
{0x120E, 0xF027},
{0x1210, 0x8027},
{0x1246, 0x0102},
{0x1000, 0x0300},
{0x1002, 0xC311},
{0x1004, 0x2BAB},
{0x1010, 0x0100},
{0x1012, 0x015E},
{0x1014, 0x006E},
{0x1016, 0x006E},
{0x101A, 0x006E},
{0x1020, 0xC107},
{0x1022, 0x0922},
{0x1024, 0x0409},
{0x1026, 0x0C0C},
{0x1028, 0x150A},
{0x102A, 0x0D0A},
{0x102C, 0x1700},
{0x1038, 0x1100},
{0x103E, 0x0001},
{0x1040, 0x0000},
{0x1042, 0x0108},
{0x1044, 0x00B4},
{0x1046, 0x0004},
{0x1048, 0x00B4},
{0x1066, 0x0100},
{0x1600, 0xE000},
{0x1608, 0x00C8},
{0x160A, 0x0B40},
{0x160C, 0x0002},
{0x160E, 0x0880},
{0x0B00, 0x0100},
{0x0B00, 0x0000},
{0x027E, 0x0000},
{0x0700, 0x0117},
{0x0700, 0x0017},
{0x0790, 0x0100},
{0x2000, 0x0001},
{0x2002, 0x0058},
{0x2006, 0x1292},
{0x2008, 0x8446},
{0x200A, 0x90F2},
{0x200C, 0x0010},
{0x200E, 0x0260},
{0x2010, 0x23FC},
{0x2012, 0x1292},
{0x2014, 0x84BC},
{0x2016, 0x3FF9},
{0x2018, 0x4130},
{0x0708, 0xEF82},
{0x070C, 0x0000},
{0x0732, 0x0300},
{0x0734, 0x0300},
{0x0736, 0x0064},
{0x0738, 0x0003},
{0x0742, 0x0300},
{0x0746, 0x00FA},
{0x0748, 0x0003},
{0x074C, 0x0000},
{0x0266, 0x0000},
{0x0360, 0x2C8E},
{0x027E, 0x0100},
{0x0B00, 0x0000},
};
struct cam_sensor_i2c_reg_array hi847_otp_init_reg1[] = {
{0x0B00, 0x00, 0},
{0x027E, 0x00, 0},
};
struct cam_sensor_i2c_reg_array hi847_otp_init_reg2[] = {
{0x0260, 0x10, 0},
{0x027E, 0x01, 0},
{0x0B00, 0x01, 0},
};
struct cam_sensor_i2c_reg_array hi847_otp_finish_reg1[] = {
{0x0B00, 0x00, 0},
{0x027E, 0x00, 0},
};
struct cam_sensor_i2c_reg_array hi847_otp_finish_reg2[] = {
{0x0260, 0x00, 0},
{0x027E, 0x01, 0},
{0x0B00, 0x01, 0},
};
#endif /* HI847_OTP_H */

View File

@ -11,6 +11,13 @@
#include "cam_res_mgr_api.h" #include "cam_res_mgr_api.h"
#include "cam_common_util.h" #include "cam_common_util.h"
#include "cam_packet_util.h" #include "cam_packet_util.h"
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
#include <linux/leds-s2mpb02.h>
#endif
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
extern struct cam_flash_ctrl *g_flash_ctrl;
struct cam_flash_frame_setting g_flash_data;
#endif
int cam_flash_led_prepare(struct led_trigger *trigger, int options, int cam_flash_led_prepare(struct led_trigger *trigger, int options,
int *max_current, bool is_wled) int *max_current, bool is_wled)
@ -385,6 +392,12 @@ static int cam_flash_ops(struct cam_flash_ctrl *flash_ctrl,
for (i = 0; i < flash_ctrl->torch_num_sources; i++) { for (i = 0; i < flash_ctrl->torch_num_sources; i++) {
if (flash_ctrl->torch_trigger[i]) { if (flash_ctrl->torch_trigger[i]) {
max_current = soc_private->torch_max_current[i]; max_current = soc_private->torch_max_current[i];
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
curr = DIV_ROUND_CLOSEST(flash_data->led_current_ma[i], S2MPB02_TORCH_STEP_MA);
CAM_INFO(CAM_FLASH, "Led_Torch[%d]: Current: %dma (0x%x)",
i, flash_data->led_current_ma[i], curr);
flash_data->led_current_ma[i] = curr;
#endif
if (flash_data->led_current_ma[i] <= if (flash_data->led_current_ma[i] <=
max_current) max_current)
curr = flash_data->led_current_ma[i]; curr = flash_data->led_current_ma[i];
@ -401,6 +414,12 @@ static int cam_flash_ops(struct cam_flash_ctrl *flash_ctrl,
for (i = 0; i < flash_ctrl->flash_num_sources; i++) { for (i = 0; i < flash_ctrl->flash_num_sources; i++) {
if (flash_ctrl->flash_trigger[i]) { if (flash_ctrl->flash_trigger[i]) {
max_current = soc_private->flash_max_current[i]; max_current = soc_private->flash_max_current[i];
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
curr = DIV_ROUND_CLOSEST(flash_data->led_current_ma[i], S2MPB02_FLASH_STEP_MA);
CAM_INFO(CAM_FLASH, "LED_Flash[%d]: Current: %dma (0x%x)",
i, flash_data->led_current_ma[i], curr);
flash_data->led_current_ma[i] = curr;
#endif
if (flash_data->led_current_ma[i] <= if (flash_data->led_current_ma[i] <=
max_current) max_current)
curr = flash_data->led_current_ma[i]; curr = flash_data->led_current_ma[i];
@ -455,6 +474,10 @@ static int cam_flash_ops(struct cam_flash_ctrl *flash_ctrl,
int cam_flash_off(struct cam_flash_ctrl *flash_ctrl) int cam_flash_off(struct cam_flash_ctrl *flash_ctrl)
{ {
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
int i = 0;
#endif
if (!flash_ctrl) { if (!flash_ctrl) {
CAM_ERR(CAM_FLASH, "Flash control Null"); CAM_ERR(CAM_FLASH, "Flash control Null");
return -EINVAL; return -EINVAL;
@ -463,6 +486,18 @@ int cam_flash_off(struct cam_flash_ctrl *flash_ctrl)
if (flash_ctrl->switch_trigger) if (flash_ctrl->switch_trigger)
cam_res_mgr_led_trigger_event(flash_ctrl->switch_trigger, cam_res_mgr_led_trigger_event(flash_ctrl->switch_trigger,
(enum led_brightness)LED_SWITCH_OFF); (enum led_brightness)LED_SWITCH_OFF);
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
for (i = 0; i < flash_ctrl->flash_num_sources; i++)
if (flash_ctrl->flash_trigger[i])
cam_res_mgr_led_trigger_event(
flash_ctrl->flash_trigger[i],
LED_OFF);
for (i = 0; i < flash_ctrl->torch_num_sources; i++)
if (flash_ctrl->torch_trigger[i])
cam_res_mgr_led_trigger_event(
flash_ctrl->torch_trigger[i],
LED_OFF);
#endif
return 0; return 0;
} }
@ -470,18 +505,33 @@ static int cam_flash_low(
struct cam_flash_ctrl *flash_ctrl, struct cam_flash_ctrl *flash_ctrl,
struct cam_flash_frame_setting *flash_data) struct cam_flash_frame_setting *flash_data)
{ {
#if !IS_REACHABLE(CONFIG_LEDS_S2MPB02)
int i = 0, rc = 0; int i = 0, rc = 0;
#else
int rc = 0;
#endif
if (!flash_data) { if (!flash_data) {
CAM_ERR(CAM_FLASH, "Flash Data Null"); CAM_ERR(CAM_FLASH, "Flash Data Null");
return -EINVAL; return -EINVAL;
} }
#if !IS_REACHABLE(CONFIG_LEDS_S2MPB02)
for (i = 0; i < flash_ctrl->flash_num_sources; i++) for (i = 0; i < flash_ctrl->flash_num_sources; i++)
if (flash_ctrl->flash_trigger[i]) if (flash_ctrl->flash_trigger[i])
cam_res_mgr_led_trigger_event( cam_res_mgr_led_trigger_event(
flash_ctrl->flash_trigger[i], flash_ctrl->flash_trigger[i],
LED_OFF); LED_OFF);
#endif
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
if (flash_data->led_current_ma[0] != 0) {
uint32_t temp = flash_data->led_current_ma[0];
for (i = 0; i < CAM_FLASH_MAX_LED_TRIGGERS; i++) {
flash_data->led_current_ma[i] = temp / CAM_FLASH_MAX_LED_TRIGGERS;
}
}
#endif
rc = cam_flash_ops(flash_ctrl, flash_data, rc = cam_flash_ops(flash_ctrl, flash_data,
CAMERA_SENSOR_FLASH_OP_FIRELOW); CAMERA_SENSOR_FLASH_OP_FIRELOW);
@ -495,18 +545,33 @@ static int cam_flash_high(
struct cam_flash_ctrl *flash_ctrl, struct cam_flash_ctrl *flash_ctrl,
struct cam_flash_frame_setting *flash_data) struct cam_flash_frame_setting *flash_data)
{ {
#if !IS_REACHABLE(CONFIG_LEDS_S2MPB02)
int i = 0, rc = 0; int i = 0, rc = 0;
#else
int rc = 0;
#endif
if (!flash_data) { if (!flash_data) {
CAM_ERR(CAM_FLASH, "Flash Data Null"); CAM_ERR(CAM_FLASH, "Flash Data Null");
return -EINVAL; return -EINVAL;
} }
#if !IS_REACHABLE(CONFIG_LEDS_S2MPB02)
for (i = 0; i < flash_ctrl->torch_num_sources; i++) for (i = 0; i < flash_ctrl->torch_num_sources; i++)
if (flash_ctrl->torch_trigger[i]) if (flash_ctrl->torch_trigger[i])
cam_res_mgr_led_trigger_event( cam_res_mgr_led_trigger_event(
flash_ctrl->torch_trigger[i], flash_ctrl->torch_trigger[i],
LED_OFF); LED_OFF);
#endif
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
if (flash_data->led_current_ma[0] != 0) {
uint32_t temp = flash_data->led_current_ma[0];
for (i = 0; i < CAM_FLASH_MAX_LED_TRIGGERS; i++) {
flash_data->led_current_ma[i] = temp / CAM_FLASH_MAX_LED_TRIGGERS;
}
}
#endif
rc = cam_flash_ops(flash_ctrl, flash_data, rc = cam_flash_ops(flash_ctrl, flash_data,
CAMERA_SENSOR_FLASH_OP_FIREHIGH); CAMERA_SENSOR_FLASH_OP_FIREHIGH);
@ -1694,6 +1759,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
} }
flash_query_info = flash_query_info =
(struct cam_flash_query_curr *)cmd_buf; (struct cam_flash_query_curr *)cmd_buf;
#if !IS_REACHABLE(CONFIG_LEDS_S2MPB02) && !defined(CONFIG_SAMSUNG_PMIC_FLASH)
#if __or(IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2), \ #if __or(IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2), \
IS_REACHABLE(CONFIG_LEDS_QTI_FLASH)) IS_REACHABLE(CONFIG_LEDS_QTI_FLASH))
rc = cam_flash_led_prepare(fctrl->switch_trigger, rc = cam_flash_led_prepare(fctrl->switch_trigger,
@ -1704,6 +1770,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
query_curr_ma); query_curr_ma);
#else #else
rc = -EOPNOTSUPP; rc = -EOPNOTSUPP;
#endif
#endif #endif
if (rc) { if (rc) {
@ -1954,3 +2021,58 @@ int cam_flash_apply_request(struct cam_req_mgr_apply_request *apply)
return rc; return rc;
} }
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
ssize_t flash_power_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t size)
{
uint32_t value;
if(g_flash_ctrl == NULL) {
CAM_ERR(CAM_FLASH, "g_flash_ctrl handle is NULL");
return size;
}
if ((buf == NULL) || kstrtouint(buf, 10, &value)) {
CAM_ERR(CAM_FLASH, "Invalid Buffer");
return -EINVAL;
}
//default value
#if defined(CONFIG_SEC_B6Q_PROJECT)
g_flash_data.led_current_ma[0] = 100;
#else
g_flash_data.led_current_ma[0] = 75;
#endif
CAM_INFO(CAM_FLASH,"torch value=%u", value);
switch (buf[0]) {
case '0':
cam_flash_off(g_flash_ctrl);
g_flash_ctrl->flash_sysfs_control = false;
CAM_INFO(CAM_FLASH,"torch off");
break;
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
cam_flash_off(g_flash_ctrl);
g_flash_data.led_current_ma[0] = value;
g_flash_data.led_current_ma[1] = 0;
g_flash_data.opcode = CAMERA_SENSOR_FLASH_OP_FIRELOW;
cam_flash_low(g_flash_ctrl,&g_flash_data);
g_flash_ctrl->flash_sysfs_control = true;
CAM_INFO(CAM_FLASH,"torch on");
break;
default:
break;
}
return size;
}
EXPORT_SYMBOL(flash_power_store);
#endif

View File

@ -16,6 +16,9 @@ int cam_flash_process_evt(struct cam_req_mgr_link_evt_data *event_data);
int cam_flash_flush_request(struct cam_req_mgr_flush_request *flush); int cam_flash_flush_request(struct cam_req_mgr_flush_request *flush);
int cam_flash_led_prepare(struct led_trigger *trigger, int options, int cam_flash_led_prepare(struct led_trigger *trigger, int options,
int *max_current, bool is_wled); int *max_current, bool is_wled);
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
ssize_t flash_power_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t size);
#endif
#endif /*_CAM_FLASH_CORE_H_*/ #endif /*_CAM_FLASH_CORE_H_*/

View File

@ -10,7 +10,15 @@
#include "cam_flash_core.h" #include "cam_flash_core.h"
#include "cam_common_util.h" #include "cam_common_util.h"
#include "camera_main.h" #include "camera_main.h"
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
#include <cam_sensor_cmn_header.h>
#include <cam_sensor_util.h>
struct msm_pinctrl_info flash_pctrl;
#endif
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
struct msm_pinctrl_info flash_pctrl;
struct cam_flash_ctrl *g_flash_ctrl;
#endif
static int32_t cam_flash_driver_cmd(struct cam_flash_ctrl *fctrl, static int32_t cam_flash_driver_cmd(struct cam_flash_ctrl *fctrl,
void *arg, struct cam_flash_private_soc *soc_private) void *arg, struct cam_flash_private_soc *soc_private)
{ {
@ -135,6 +143,9 @@ static int32_t cam_flash_driver_cmd(struct cam_flash_ctrl *fctrl,
} }
fctrl->flash_state = CAM_FLASH_STATE_INIT; fctrl->flash_state = CAM_FLASH_STATE_INIT;
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
g_flash_ctrl->flash_sysfs_control = false;
#endif
break; break;
} }
case CAM_QUERY_CAP: { case CAM_QUERY_CAP: {
@ -189,6 +200,9 @@ static int32_t cam_flash_driver_cmd(struct cam_flash_ctrl *fctrl,
fctrl->func_tbl.flush_req(fctrl, FLUSH_ALL, 0); fctrl->func_tbl.flush_req(fctrl, FLUSH_ALL, 0);
fctrl->last_flush_req = 0; fctrl->last_flush_req = 0;
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
if (g_flash_ctrl->flash_sysfs_control == false)
#endif
cam_flash_off(fctrl); cam_flash_off(fctrl);
fctrl->flash_state = CAM_FLASH_STATE_ACQUIRE; fctrl->flash_state = CAM_FLASH_STATE_ACQUIRE;
break; break;
@ -206,6 +220,11 @@ static int32_t cam_flash_driver_cmd(struct cam_flash_ctrl *fctrl,
} }
break; break;
} }
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
case CAM_FLUSH_REQ:
CAM_DBG(CAM_FLASH, "Flush recveived");
break;
#endif
default: default:
CAM_ERR(CAM_FLASH, "Invalid Opcode: %d", cmd->op_code); CAM_ERR(CAM_FLASH, "Invalid Opcode: %d", cmd->op_code);
rc = -EINVAL; rc = -EINVAL;
@ -524,7 +543,21 @@ static int cam_flash_component_bind(struct device *dev,
mutex_init(&(fctrl->flash_mutex)); mutex_init(&(fctrl->flash_mutex));
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02) || defined(CONFIG_SAMSUNG_PMIC_FLASH)
if (msm_camera_pinctrl_init(&flash_pctrl, &pdev->dev) >= 0) {
// make pin state to suspend
rc = pinctrl_select_state(flash_pctrl.pinctrl, flash_pctrl.gpio_state_suspend);
if (rc < 0) {
CAM_ERR(CAM_FLASH, "Cannot set pin to suspend state %d", rc);
rc = 0;
}
}
#endif
fctrl->flash_state = CAM_FLASH_STATE_INIT; fctrl->flash_state = CAM_FLASH_STATE_INIT;
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
g_flash_ctrl = fctrl;
#endif
CAM_DBG(CAM_FLASH, "Component bound successfully"); CAM_DBG(CAM_FLASH, "Component bound successfully");
return rc; return rc;
@ -703,7 +736,9 @@ static int cam_flash_i2c_component_bind(struct device *dev,
mutex_init(&(fctrl->flash_mutex)); mutex_init(&(fctrl->flash_mutex));
fctrl->flash_state = CAM_FLASH_STATE_INIT; fctrl->flash_state = CAM_FLASH_STATE_INIT;
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
g_flash_ctrl = fctrl;
#endif
return rc; return rc;
unreg_subdev: unreg_subdev:

View File

@ -20,10 +20,9 @@
#include <media/cam_sensor.h> #include <media/cam_sensor.h>
#include <media/cam_req_mgr.h> #include <media/cam_req_mgr.h>
#if IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2) || IS_REACHABLE(CONFIG_BACKLIGHT_QCOM_SPMI_WLED) #if IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2)
#include <linux/leds-qpnp-flash.h> #include <linux/leds-qpnp-flash.h>
#endif #elif IS_REACHABLE(CONFIG_LEDS_QTI_FLASH)
#if IS_REACHABLE(CONFIG_LEDS_QTI_FLASH)
#include <linux/leds-qti-flash.h> #include <linux/leds-qti-flash.h>
#endif #endif
@ -218,6 +217,9 @@ struct cam_flash_ctrl {
struct camera_io_master io_master_info; struct camera_io_master io_master_info;
struct i2c_data_settings i2c_data; struct i2c_data_settings i2c_data;
uint32_t last_flush_req; uint32_t last_flush_req;
#if defined(CONFIG_SAMSUNG_PMIC_FLASH)
bool flash_sysfs_control;
#endif
}; };
int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg); int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg);

View File

@ -8,6 +8,9 @@
#include <linux/of_gpio.h> #include <linux/of_gpio.h>
#include "cam_flash_soc.h" #include "cam_flash_soc.h"
#include "cam_res_mgr_api.h" #include "cam_res_mgr_api.h"
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
#include <linux/leds-s2mpb02.h>
#endif
void cam_flash_put_source_node_data(struct cam_flash_ctrl *fctrl) void cam_flash_put_source_node_data(struct cam_flash_ctrl *fctrl)
{ {
@ -59,7 +62,117 @@ void cam_flash_put_source_node_data(struct cam_flash_ctrl *fctrl)
} }
} }
} }
#if IS_REACHABLE(CONFIG_LEDS_S2MPB02)
static int32_t cam_get_source_node_info(
struct device_node *of_node,
struct cam_flash_ctrl *fctrl,
struct cam_flash_private_soc *soc_private)
{
int32_t rc = 0;
uint32_t count = 0, i = 0;
struct device_node *flash_src_node = NULL;
struct device_node *torch_src_node = NULL;
if (of_get_property(of_node, "flash-source", &count)) {
count /= sizeof(uint32_t);
if (count > CAM_FLASH_MAX_LED_TRIGGERS) {
CAM_ERR(CAM_FLASH, "Invalid LED count: %d", count);
return -EINVAL;
}
fctrl->flash_num_sources = count;
for (i = 0; i < count; i++) {
flash_src_node = of_parse_phandle(of_node,
"flash-source", i);
if (!flash_src_node) {
CAM_WARN(CAM_FLASH, "flash_src_node NULL");
continue;
}
rc = of_property_read_string(flash_src_node,
"default-trigger",
&soc_private->flash_trigger_name[i]);
if (rc) {
CAM_WARN(CAM_FLASH,
"defalut-trigger read failed rc=%d", rc);
of_node_put(flash_src_node);
continue;
}
CAM_DBG(CAM_FLASH, "Flash default trigger %s",
soc_private->flash_trigger_name[i]);
cam_res_mgr_led_trigger_register(
soc_private->flash_trigger_name[i],
&fctrl->flash_trigger[i]);
soc_private->flash_max_current[i] = S2MPB02_FLASH_TORCH_CURRENT_MAX;
/* Read max-duration */
rc = of_property_read_u32(flash_src_node,
"timeout",
&soc_private->flash_max_duration[i]);
if (rc) {
CAM_DBG(CAM_FLASH,
"max-duration prop unavailable: %d",
rc);
rc = 0;
}
of_node_put(flash_src_node);
CAM_DBG(CAM_FLASH, "MainFlashMaxCurrent[%d]: %d",
i, soc_private->flash_max_current[i]);
}
}
if (of_get_property(of_node, "torch-source", &count)) {
count /= sizeof(uint32_t);
if (count > CAM_FLASH_MAX_LED_TRIGGERS) {
CAM_ERR(CAM_FLASH, "Invalid LED count : %d", count);
return -EINVAL;
}
fctrl->torch_num_sources = count;
CAM_DBG(CAM_FLASH, "torch_num_sources = %d",
fctrl->torch_num_sources);
for (i = 0; i < count; i++) {
torch_src_node = of_parse_phandle(of_node,
"torch-source", i);
if (!torch_src_node) {
CAM_WARN(CAM_FLASH, "torch_src_node NULL");
continue;
}
rc = of_property_read_string(torch_src_node,
"default-trigger",
&soc_private->torch_trigger_name[i]);
if (rc < 0) {
CAM_WARN(CAM_FLASH,
"default-trigger read failed");
of_node_put(torch_src_node);
continue;
}
CAM_DBG(CAM_FLASH, "Torch default trigger %s",
soc_private->torch_trigger_name[i]);
cam_res_mgr_led_trigger_register(
soc_private->torch_trigger_name[i],
&fctrl->torch_trigger[i]);
soc_private->torch_max_current[i] = S2MPB02_FLASH_TORCH_CURRENT_MAX;
of_node_put(torch_src_node);
CAM_DBG(CAM_FLASH, "TorchMaxCurrent[%d]: %d",
i, soc_private->torch_max_current[i]);
}
}
return rc;
}
#else
#if __or(IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2), \ #if __or(IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2), \
IS_REACHABLE(CONFIG_LEDS_QTI_FLASH)) IS_REACHABLE(CONFIG_LEDS_QTI_FLASH))
static int32_t cam_get_source_node_info( static int32_t cam_get_source_node_info(
@ -269,6 +382,7 @@ static int32_t cam_get_source_node_info(
return rc; return rc;
} }
#endif #endif
#endif
int cam_flash_get_dt_data(struct cam_flash_ctrl *fctrl, int cam_flash_get_dt_data(struct cam_flash_ctrl *fctrl,
struct cam_hw_soc_info *soc_info) struct cam_hw_soc_info *soc_info)
@ -302,8 +416,9 @@ int cam_flash_get_dt_data(struct cam_flash_ctrl *fctrl,
goto free_soc_private; goto free_soc_private;
} }
#if __or(IS_ENABLED(CONFIG_LEDS_QPNP_FLASH_V2), \ #if __or(__or(IS_ENABLED(CONFIG_LEDS_QPNP_FLASH_V2), \
IS_ENABLED(CONFIG_LEDS_QTI_FLASH)) IS_ENABLED(CONFIG_LEDS_QTI_FLASH)), \
IS_ENABLED(CONFIG_LEDS_S2MPB02))
rc = cam_get_source_node_info(of_node, fctrl, soc_info->soc_private); rc = cam_get_source_node_info(of_node, fctrl, soc_info->soc_private);
if (rc) { if (rc) {
CAM_ERR(CAM_FLASH, CAM_ERR(CAM_FLASH,

View File

@ -36,5 +36,11 @@ void cam_ois_shutdown(struct cam_ois_ctrl_t *o_ctrl);
struct completion *cam_ois_get_i3c_completion(uint32_t index); struct completion *cam_ois_get_i3c_completion(uint32_t index);
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
int cam_ois_power_up(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_power_down(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_apply_settings(struct cam_ois_ctrl_t *o_ctrl,
struct i2c_settings_array *i2c_set);
#endif
#endif #endif
/* _CAM_OIS_CORE_H_ */ /* _CAM_OIS_CORE_H_ */

View File

@ -11,6 +11,18 @@
#include "cam_debug_util.h" #include "cam_debug_util.h"
#include "camera_main.h" #include "camera_main.h"
#include "cam_compat.h" #include "cam_compat.h"
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
#include "cam_ois_mcu_stm32g.h"
#endif
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
struct cam_ois_ctrl_t *g_o_ctrl;
static struct ois_sensor_interface ois_reset;
#if IS_ENABLED(CONFIG_ADSP_FACTORY)
extern int ois_reset_register(struct ois_sensor_interface *ois);
#endif
#endif
static struct cam_i3c_ois_data { static struct cam_i3c_ois_data {
struct cam_ois_ctrl_t *o_ctrl; struct cam_ois_ctrl_t *o_ctrl;
@ -192,13 +204,18 @@ static int cam_ois_i2c_component_bind(struct device *dev,
struct i2c_client *client = NULL; struct i2c_client *client = NULL;
struct cam_ois_ctrl_t *o_ctrl = NULL; struct cam_ois_ctrl_t *o_ctrl = NULL;
struct cam_ois_soc_private *soc_private = NULL; struct cam_ois_soc_private *soc_private = NULL;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
int i = 0;
#endif
client = container_of(dev, struct i2c_client, dev); client = container_of(dev, struct i2c_client, dev);
#if 0
if (client == NULL) { if (client == NULL) {
CAM_ERR(CAM_OIS, "Invalid Args client: %pK", CAM_ERR(CAM_OIS, "Invalid Args client: %pK",
client); client);
return -EINVAL; return -EINVAL;
} }
#endif
o_ctrl = kzalloc(sizeof(*o_ctrl), GFP_KERNEL); o_ctrl = kzalloc(sizeof(*o_ctrl), GFP_KERNEL);
if (!o_ctrl) { if (!o_ctrl) {
@ -223,6 +240,13 @@ static int cam_ois_i2c_component_bind(struct device *dev,
} }
o_ctrl->soc_info.soc_private = soc_private; o_ctrl->soc_info.soc_private = soc_private;
#if 1
INIT_LIST_HEAD(&(o_ctrl->i2c_init_data.list_head));
INIT_LIST_HEAD(&(o_ctrl->i2c_calib_data.list_head));
INIT_LIST_HEAD(&(o_ctrl->i2c_mode_data.list_head));
INIT_LIST_HEAD(&(o_ctrl->i2c_time_data.list_head));
mutex_init(&(o_ctrl->ois_mutex));
#endif
rc = cam_ois_driver_soc_init(o_ctrl); rc = cam_ois_driver_soc_init(o_ctrl);
if (rc) { if (rc) {
CAM_ERR(CAM_OIS, "failed: cam_sensor_parse_dt rc %d", rc); CAM_ERR(CAM_OIS, "failed: cam_sensor_parse_dt rc %d", rc);
@ -238,6 +262,41 @@ static int cam_ois_i2c_component_bind(struct device *dev,
mutex_init(&(o_ctrl->ois_mutex)); mutex_init(&(o_ctrl->ois_mutex));
o_ctrl->cam_ois_state = CAM_OIS_INIT; o_ctrl->cam_ois_state = CAM_OIS_INIT;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
for (i = 0; i < MAX_BRIDGE_COUNT; i++)
o_ctrl->bridge_intf[i].device_hdl = -1;
o_ctrl->bridge_cnt = 0;
o_ctrl->start_cnt = 0;
o_ctrl->is_power_up = false;
o_ctrl->is_servo_on = false;
o_ctrl->gyro_raw_x = 0;
o_ctrl->gyro_raw_y = 0;
o_ctrl->gyro_raw_z = 0;
o_ctrl->efs_cal = 0;
mutex_init(&(o_ctrl->ois_mode_mutex));
o_ctrl->is_thread_started = false;
o_ctrl->ois_thread = NULL;
INIT_LIST_HEAD(&(o_ctrl->i2c_mode_data.list_head));
INIT_LIST_HEAD(&(o_ctrl->i2c_time_data.list_head));
INIT_LIST_HEAD(&(o_ctrl->list_head_thread.list));
init_waitqueue_head(&(o_ctrl->wait));
spin_lock_init(&(o_ctrl->thread_spinlock));
mutex_init(&(o_ctrl->i2c_init_data_mutex));
mutex_init(&(o_ctrl->i2c_mode_data_mutex));
mutex_init(&(o_ctrl->i2c_time_data_mutex));
g_o_ctrl = o_ctrl;
ois_reset.core = o_ctrl;
ois_reset.ois_func = &cam_ois_reset;
#if IS_ENABLED(CONFIG_ADSP_FACTORY)
ois_reset_register(&ois_reset);
#endif
#endif
return rc; return rc;
soc_free: soc_free:
@ -402,7 +461,9 @@ static int cam_ois_component_bind(struct device *dev,
CAM_ERR(CAM_OIS, "failed: to update i2c info rc %d", rc); CAM_ERR(CAM_OIS, "failed: to update i2c info rc %d", rc);
goto unreg_subdev; goto unreg_subdev;
} }
#if !defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
o_ctrl->bridge_intf.device_hdl = -1; o_ctrl->bridge_intf.device_hdl = -1;
#endif
cam_sensor_module_add_i2c_device((void *) o_ctrl, CAM_SENSOR_OIS); cam_sensor_module_add_i2c_device((void *) o_ctrl, CAM_SENSOR_OIS);
@ -412,6 +473,39 @@ static int cam_ois_component_bind(struct device *dev,
g_i3c_ois_data[o_ctrl->soc_info.index].o_ctrl = o_ctrl; g_i3c_ois_data[o_ctrl->soc_info.index].o_ctrl = o_ctrl;
init_completion(&g_i3c_ois_data[o_ctrl->soc_info.index].probe_complete); init_completion(&g_i3c_ois_data[o_ctrl->soc_info.index].probe_complete);
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
for (i = 0; i < MAX_BRIDGE_COUNT; i++)
o_ctrl->bridge_intf[i].device_hdl = -1;
o_ctrl->bridge_cnt = 0;
o_ctrl->start_cnt = 0;
o_ctrl->is_power_up = false;
o_ctrl->is_servo_on = false;
o_ctrl->gyro_raw_x = 0;
o_ctrl->gyro_raw_y = 0;
o_ctrl->gyro_raw_z = 0;
o_ctrl->efs_cal = 0;
mutex_init(&(o_ctrl->ois_mode_mutex));
o_ctrl->is_thread_started = false;
o_ctrl->ois_thread = NULL;
INIT_LIST_HEAD(&(o_ctrl->list_head_thread.list));
init_waitqueue_head(&(o_ctrl->wait));
spin_lock_init(&(o_ctrl->thread_spinlock));
mutex_init(&(o_ctrl->i2c_init_data_mutex));
mutex_init(&(o_ctrl->i2c_mode_data_mutex));
mutex_init(&(o_ctrl->i2c_time_data_mutex));
g_o_ctrl = o_ctrl;
ois_reset.core = o_ctrl;
ois_reset.ois_func = &cam_ois_reset;
#if IS_ENABLED(CONFIG_ADSP_FACTORY)
ois_reset_register(&ois_reset);
#endif
#endif
CAM_DBG(CAM_OIS, "Component bound successfully"); CAM_DBG(CAM_OIS, "Component bound successfully");
return rc; return rc;
unreg_subdev: unreg_subdev:

View File

@ -22,6 +22,12 @@
#include <cam_subdev.h> #include <cam_subdev.h>
#include "cam_soc_util.h" #include "cam_soc_util.h"
#include "cam_context.h" #include "cam_context.h"
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
#include <linux/wait.h>
#include <linux/freezer.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#endif
#define DEFINE_MSM_MUTEX(mutexname) \ #define DEFINE_MSM_MUTEX(mutexname) \
static struct mutex mutexname = __MUTEX_INITIALIZER(mutexname) static struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
@ -29,6 +35,47 @@
#define OIS_DRIVER_I2C "cam-i2c-ois" #define OIS_DRIVER_I2C "cam-i2c-ois"
#define OIS_DRIVER_I3C "i3c_camera_ois" #define OIS_DRIVER_I3C "i3c_camera_ois"
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
#if defined(CONFIG_SEC_E3Q_PROJECT)
#define MAX_BRIDGE_COUNT (3)
#else
#define MAX_BRIDGE_COUNT (2)
#endif
#define OIS_VER_SIZE (8)
#define NUM_AF_POSITION (4096)
struct cam_ois_shift_table_t {
bool ois_shift_used;
int16_t ois_shift_x[NUM_AF_POSITION];
int16_t ois_shift_y[NUM_AF_POSITION];
};
enum cam_ois_thread_msg_type {
CAM_OIS_THREAD_MSG_START,
CAM_OIS_THREAD_MSG_APPLY_SETTING,
CAM_OIS_THREAD_MSG_RESET,
CAM_OIS_THREAD_MSG_MAX
};
struct cam_ois_thread_msg_t {
struct list_head list;
int msg_type;
uint16_t ois_mode;
struct i2c_settings_array *i2c_reg_settings;
};
typedef struct sysboot_info_type_t{
uint32_t ver;
uint32_t id;
} sysboot_info_type;
struct ois_sensor_interface {
void *core;
void (*ois_func)(void *);
};
#endif
enum cam_ois_state { enum cam_ois_state {
CAM_OIS_INIT, CAM_OIS_INIT,
CAM_OIS_ACQUIRE, CAM_OIS_ACQUIRE,
@ -75,6 +122,18 @@ struct cam_ois_intf_params {
struct cam_req_mgr_crm_cb *crm_cb; struct cam_req_mgr_crm_cb *crm_cb;
}; };
#if defined(CONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT)
/**
* struct adc_temperature_table - adc_temperature table params
* @adc : adc
* @temperature : temperature
*/
struct adc_temperature_table {
uint32_t adc;
int temperature;
};
#endif
/** /**
* struct cam_ois_ctrl_t - OIS ctrl private data * struct cam_ois_ctrl_t - OIS ctrl private data
* @device_name : ois device_name * @device_name : ois device_name
@ -109,7 +168,12 @@ struct cam_ois_ctrl_t {
enum cci_device_num cci_num; enum cci_device_num cci_num;
struct cam_subdev v4l2_dev_str; struct cam_subdev v4l2_dev_str;
bool is_i3c_device; bool is_i3c_device;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
struct cam_ois_intf_params bridge_intf[MAX_BRIDGE_COUNT];
int bridge_cnt;
#else
struct cam_ois_intf_params bridge_intf; struct cam_ois_intf_params bridge_intf;
#endif
struct i2c_settings_array i2c_fwinit_data; struct i2c_settings_array i2c_fwinit_data;
struct i2c_settings_array i2c_init_data; struct i2c_settings_array i2c_init_data;
struct i2c_settings_array i2c_calib_data; struct i2c_settings_array i2c_calib_data;
@ -125,6 +189,56 @@ struct cam_ois_ctrl_t {
struct i2c_settings_array i2c_fw_init_data[MAX_OIS_FW_COUNT]; struct i2c_settings_array i2c_fw_init_data[MAX_OIS_FW_COUNT];
struct i2c_settings_array i2c_fw_finalize_data[MAX_OIS_FW_COUNT]; struct i2c_settings_array i2c_fw_finalize_data[MAX_OIS_FW_COUNT];
struct i2c_settings_array i2c_fw_version_data; struct i2c_settings_array i2c_fw_version_data;
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
int start_cnt;
bool is_power_up;
bool is_servo_on;
bool is_config;
char cal_ver[OIS_VER_SIZE + 1];
char module_ver[OIS_VER_SIZE + 1];
char phone_ver[OIS_VER_SIZE + 1];
char load_fw_name[256];
struct cam_ois_shift_table_t shift_tbl[2];
uint16_t module;
uint16_t ois_mode;
uint32_t x_center;
uint32_t y_center;
uint32_t err_reg;
uint32_t gyro_raw_x;
uint32_t gyro_raw_y;
uint32_t gyro_raw_z;
uint32_t efs_cal;
uint32_t poles[MAX_BRIDGE_COUNT * 2];
uint32_t gyro_orientation;
struct mutex ois_mode_mutex;
struct task_struct *ois_thread;
bool is_thread_started;
struct cam_ois_thread_msg_t list_head_thread;
spinlock_t thread_spinlock;
wait_queue_head_t wait;
struct mutex i2c_init_data_mutex;
struct mutex i2c_mode_data_mutex;
struct mutex i2c_time_data_mutex;
uint32_t driver_output_mask;
uint32_t slave_addr;
uint32_t slave_id;
sysboot_info_type info;
uint32_t reset_ctrl_gpio;
uint32_t boot0_ctrl_gpio;
bool sysfs_ois_power;
#if defined(CONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT)
struct adc_temperature_table *adc_temperature_table;
uint32_t adc_arr_size;
bool sysfs_ois_init;
#endif
#if defined(CONFIG_SAMSUNG_SUPPORT_RUMBA_FW_UPDATE)
uint32_t module_vendor_code;
uint32_t module_rumba_ver;
uint32_t phone_rumba_ver;
#endif
#endif
}; };
/** /**

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,449 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_OIS_MCU_STM32_H_
#define _CAM_OIS_MCU_STM32_H_
#include "cam_ois_dev.h"
#define MAX_MODULE_NUM (3)
#if defined(CONFIG_SAMSUNG_REAR_QUADRA)
#define CUR_MODULE_NUM (3)
#elif defined(CONFIG_SAMSUNG_REAR_DUAL) && defined(CONFIG_SEC_B6Q_PROJECT)
#define CUR_MODULE_NUM (1)
#else
#define CUR_MODULE_NUM (2)
#endif
#define INIT_X_TARGET (800)
#define STEP_VALUE (300)
#define STEP_COUNT (10)
#define RUMBA_WRITE_UILD (0x48)
#define RUMBA_READ_UILD (0x49)
#define AKM_W_X_WRITE_UCLD (0x1C)
#define AKM_W_X_READ_UCLD (0x1D)
#define AKM_W_Y_WRITE_UCLD (0x9C)
#define AKM_W_Y_READ_UCLD (0x9D)
#define AKM_T_X_WRITE_UCLD (0xE8)
#define AKM_T_X_READ_UCLD (0xE9)
#define AKM_T_Y_WRITE_UCLD (0x68)
#define AKM_T_Y_READ_UCLD (0x69)
#define HALL_CAL_COUNT (8)
#define CAMERA_OIS_EXT_CLK_12MHZ 0xB71B00
#define CAMERA_OIS_EXT_CLK_17MHZ 0x1036640
#define CAMERA_OIS_EXT_CLK_19P2MHZ 0x124F800
#define CAMERA_OIS_EXT_CLK_24MHZ 0x16E3600
#define CAMERA_OIS_EXT_CLK_26MHZ 0x18CBA80
#define MAX_EFS_DATA_LENGTH (30)
enum cam_ois_sinewave_log_t
{
SINX_COUNT,
SINY_COUNT,
SINX,
SINY,
SINX2Y2_COUNT,
SINX2Y2,
SINEWAVE_MAX,
};
int cam_ois_offset_test(struct cam_ois_ctrl_t *o_ctrl,
long *raw_data_x, long *raw_data_y, long *raw_data_z, bool is_need_cal);
int cam_ois_parsing_raw_data(struct cam_ois_ctrl_t *o_ctrl,
uint8_t *buf, uint32_t buf_size, long *raw_data_x, long *raw_data_y, long *raw_data_z);
int cam_ois_gyro_sensor_calibration(struct cam_ois_ctrl_t *o_ctrl,
long *raw_data_x, long *raw_data_y,long *raw_data_z);
int cam_ois_gyro_sensor_noise_check(struct cam_ois_ctrl_t *o_ctrl,
long *stdev_data_x, long *stdev_data_y);
uint32_t cam_ois_self_test(struct cam_ois_ctrl_t *o_ctrl);
bool cam_ois_sine_wavecheck(struct cam_ois_ctrl_t *o_ctrl, uint32_t threshold,
uint32_t frequency, uint32_t amplitude, char* buf, uint32_t module_mask);
int cam_ois_check_fw(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_wait_idle(struct cam_ois_ctrl_t *o_ctrl, int retries);
int cam_ois_init(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_i2c_write(struct cam_ois_ctrl_t *o_ctrl,
uint32_t addr, uint32_t data,
enum camera_sensor_i2c_type addr_type,
enum camera_sensor_i2c_type data_type);
int cam_ois_shift_calibration(struct cam_ois_ctrl_t *o_ctrl, uint16_t af_position, uint16_t subdev_id);
int32_t cam_ois_set_debug_info(struct cam_ois_ctrl_t *o_ctrl, uint16_t mode);
int cam_ois_set_servo_ctrl(struct cam_ois_ctrl_t *o_ctrl, uint32_t en);
int cam_ois_get_ois_mode(struct cam_ois_ctrl_t *o_ctrl, uint16_t *mode);
int cam_ois_set_ois_mode(struct cam_ois_ctrl_t *o_ctrl, uint16_t mode);
int cam_ois_set_shift(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_set_angle_for_compensation(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_set_ggfadeup(struct cam_ois_ctrl_t *o_ctrl, uint16_t value);
int cam_ois_set_ggfadedown(struct cam_ois_ctrl_t *o_ctrl, uint16_t value);
int cam_ois_fixed_aperture(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_write_xgg_ygg(struct cam_ois_ctrl_t *o_ctrl);
#if defined(CONFIG_SAMSUNG_REAR_TRIPLE)
int cam_ois_write_dual_cal(struct cam_ois_ctrl_t *o_ctrl);
#endif
int cam_ois_write_gyro_orientation(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_mcu_init(struct cam_ois_ctrl_t *o_ctrl);
void cam_ois_reset(void *ctrl);
int cam_ois_read_hall_position(struct cam_ois_ctrl_t *o_ctrl,
uint32_t* targetPosition, uint32_t* hallPosition);
int cam_ois_center_shift(struct cam_ois_ctrl_t *o_ctrl, int16_t* shift);
#if defined(CONFIG_SAMSUNG_OIS_TAMODE_CONTROL)
int ps_notifier_cb(struct notifier_block *nb, unsigned long event, void *data);
int cam_ois_add_tamode_msg(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_set_ta_mode(struct cam_ois_ctrl_t *o_ctrl);
#endif
int cam_ois_check_tele_cross_talk(struct cam_ois_ctrl_t *o_ctrl, uint16_t *result);
int cam_ois_check_ois_valid_show(struct cam_ois_ctrl_t *o_ctrl, uint16_t *result);
uint32_t cam_ois_check_ext_clk(struct cam_ois_ctrl_t *o_ctrl);
int32_t cam_ois_set_ext_clk(struct cam_ois_ctrl_t *o_ctrl, uint32_t clk);
int cam_ois_read_hall_cal(struct cam_ois_ctrl_t *o_ctrl, uint16_t subdev_id, uint16_t *result);
uint32_t cam_ois_get_mgless(struct cam_ois_ctrl_t *o_ctrl);
#if defined(CONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT)
int get_ois_adc_value(struct cam_ois_ctrl_t *o_ctrl, uint32_t *result);
#endif
#if defined(CONFIG_SAMSUNG_SUPPORT_RUMBA_FW_UPDATE)
int cam_ois_rumba_check_fw(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_rumba_check_validation(struct cam_ois_ctrl_t *o_ctrl);
#endif
#define OISCTRL (0x0000) // OIS Control Register
#define OISSTS (0x0001) // OIS Status Register
#define OISMODE (0x0002) // OIS Mode Select Register
#define OISERR (0x0004) // OIS Error Register
#define FWUPERR (0x0006) // Actuator Driver's FW Update Error
#define FWUPINDEX (0x0007) // FW Update Index
#define FWUPCHKSUM (0x0008) // FW Checksum Data
#define FWSIZE (0x000A) // FW Update Size
#define FWUPCTRL (0x000C) // FW Update Control Register
#define DFLSCTRL (0x000D) // DFSCTRL
#define DFLSCMD (0x000E) // DFLSCMD
#define DFLSSIZE_W (0x000F) // DFLSSIZE_W
#define DFLSADR (0x0010) // DFLSADR
#define GCCTRL (0x0014) // Gyro Calibration Control Register
#define XTARGET (0x0022) // X axis Fixed Mode Target
#define YTARGET (0x0024) // Y axis Fixed Mode Target
#define ByPassCtrl (0x0028) // By Pass Mode Control
#define GN_MSRCTRL (0x0029) // Gyro Noise Measure Contorl Register
#define MGLESS_KEY (0x002A) // MGLess Module Register
#define TACTRL (0x0035) // TA Mode Control
#define CACTRL (0x0039) // OIS Center Shift Compensation Control Register
#define CAAFPOSM1 (0x003A) // AF Position for Module1
#define CAAFPOSM2 (0x003B) // AF Position for Module2
#define AFTARGET_M1 (0x003C) // Target Position for Wide AF
#define AFTARGET_M2 (0x003E) // Target Position for Tele AF
#define AFHALL_M1 (0x0040) // Hall Position for Wide AF
#define AFHALL_M2 (0x0042) // Hall Position for Tele AF
#define AFTARGET_M3 (0x0044) // Target Position for Tele2 AF
#define AFHALL_M3 (0x0046) // Hall Position for Tele2 AF
#define CAAFPOSM3 (0x0048) // AF Position for Module3
#define MCERR_W (0x004C) // Module Test Error Register
#define MCSTH_M3 (0x004E) // Sinewave Check Error Decision Threshold Setting M3
#define MCCTRL (0x0050) // Module Check Control Register
#define MCERR_B (0x0051) // Module Test Error Register
#define MCSTH_M1 (0x0052) // Sinewave Check Error Decision Threshold Setting
#define MCSERRC (0x0053) // Sinewave Check Error Decision Count Setting
#define MCSFREQ (0x0054) // Sinewave Operation Frequency Register
#define MCSAMP (0x0055) // Sinewave Operation Amplitude Setting Register
#define MCSSKIPNUM (0x0056) // Sinewave Measurement Skip Frequency Setting Register
#define MCSNUM (0x0057) // Sinewave Measurement Skip Frequency Setting Register
#define MCSTH_M2 (0x005B) // Sinewave Check Error Decision Threshold Setting M2
#if defined(CONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT)
#define GETADC (0x0070) // GETADC Information
#endif
#define VDRINFO (0x007C) // Vendor Information
#define FWINFO_CTRL (0x0080) // F/W Internal Information Update Register
#define X_GYRO_CALC_M1 (0x0086) // X Target M1
#define Y_GYRO_CALC_M1 (0x0088) // Y Target M1
#define HAX_OUT_M1 (0x008E) // X Hall M1
#define HAY_OUT_M1 (0x0090) // Y Hall M1
#define X_GYRO_CALC_M3 (0x009E) // X Target M3
#define Y_GYRO_CALC_M3 (0x00A0) // Y Target M3
#define HAX_OUT_M3 (0x00A6) // X Hall M3
#define HAY_OUT_M3 (0x00A8) // Y Hall M3
#define X_GYRO_CALC_M2 (0x00AC) // X Target M2
#define Y_GYRO_CALC_M2 (0x00AE) // Y Target M2
#define HAX_OUT_M2 (0x00B4) // X Hall M2
#define HAY_OUT_M2 (0x00B6) // Y Hall M2
#define OISSEL (0x00BE) // OIS Driver Output Select Register
#define LGMCRES0_M1 (0x00C0) // LoopGain ModuleCheck M1 result1
#define LGMCRES1_M1 (0x00C2) // LoopGain ModuleCheck M1 result2
#define LGMCRES2_M1 (0x00C4) // LoopGain ModuleCheck M1 result3
#define LGMCRES3_M1 (0x00C6) // LoopGain ModuleCheck M1 result4
#define LGMCRES0_M3 (0x00D8) // LoopGain ModuleCheck M3 result0
#define LGMCRES1_M3 (0x00DA) // LoopGain ModuleCheck M3 result1
#define LGMCRES2_M3 (0x00DC) // LoopGain ModuleCheck M3 result2
#define LGMCRES3_M3 (0x00DE) // LoopGain ModuleCheck M3 result3
#define LGMCRES0_M2 (0x00E4) // LoopGain ModuleCheck M2 result0
#define LGMCRES1_M2 (0x00E6) // LoopGain ModuleCheck M2 result1
#define LGMCRES2_M2 (0x00E8) // LoopGain ModuleCheck M2 result2
#define LGMCRES3_M2 (0x00EA) // LoopGain ModuleCheck M2 result3
#define GSTLOG0 (0x00EC) // Gyro SelfTest X Result
#define GSTLOG1 (0x00EE) // Gyro SelfTest Y Result
#define GSTLOG2 (0x00F0) // Gyro SelfTest Z Result
#define HWVER (0x00F8) // HW Version
#define FLS_DATA (0x0100) // Code Flash Data Buffer
#define XCENTER_M1 (0x021A) // X Hall Center M1
#define YCENTER_M1 (0x021C) // Y Hall Center M1
#define GGFADEUP (0x0238) // Gyro Gain Fade Up Time Setting
#define GGFADEDOWN (0x023A) // Gyro Gain Fade Down Time Setting
#define GYRO_POLA_X_M1 (0x0240) // X Gyro Pola M1
#define GYRO_POLA_Y_M1 (0x0241) // Y Gyro Pola M1
#define GYRO_ORIENT (0x0242) // Gyro Cal. running time
#define XGZERO (0x0248) // X axis Gyro 0 Point Offset Setting Register
#define YGZERO (0x024A) // Y axis Gyro 0 Point Offset Setting Register
#define ZGZERO (0x024C) // Z axis Gyro 0 Point Offset Setting Register
#define XGN_STDEV (0x024E) // X axis Gyro Noise Standard Deviation Result
#define YGN_STDEV (0x0250) // Y axis Gyro Noise Standard Deviation Result
#define XGG_M1 (0x0254) // X axis Gyro Gain Coefficient Setting Module#1 Register
#define YGG_M1 (0x0258) // Y axis Gyro Gain Coefficient Setting Module#1 Register
#define COCTRL (0x0440) // Dual Cal. Center Offset Enable
#define XCOFFSET_M1 (0x0442) // Dual Cal. Offset X M1
#define YCOFFSET_M1 (0x0444) // Dual Cal. Offset Y M1
#define XCOFFSET_M2 (0x0446) // Dual Cal. Offset X M2
#define YCOFFSET_M2 (0x0448) // Dual Cal. Offset Y M2
#define XCOFFSET_M3 (0x044A) // Dual Cal. Offset X M3
#define YCOFFSET_M3 (0x044C) // Dual Cal. Offset Y M3
#define XGG_M3 (0x0514) // X axis Gyro Gain Coefficient Setting Module#3 Register
#define YGG_M3 (0x0518) // Y axis Gyro Gain Coefficient Setting Module#3 Register
#define GYRO_POLA_X_M2 (0x0552) // X Gyro Pola M2
#define GYRO_POLA_Y_M2 (0x0553) // Y Gyro Pola M2
#define XGG_M2 (0x0554) // X axis Gyro Gain Coefficient Setting Module#2 Register
#define YGG_M2 (0x0558) // Y axis Gyro Gain Coefficient Setting Module#2 Register
#define GYRO_POLA_X_M3 (0x054E) // X Gyro Pola M3
#define GYRO_POLA_Y_M3 (0x054F) // Y Gyro Pola M3
#define OIS_FW_FORCE_UPDATE_BIT_MCU (0x01)
#define OIS_FW_FORCE_UPDATE_BIT_RUMBA (0x02)
#define OIS_FW_FORCE_UPDATE_BIT_ALL (0x03)
#define OIS_FW_STATUS_OFFSET (0x00FC)
#define OIS_FW_STATUS_SIZE (4)
#define OIS_HW_VERSION_SIZE (3)
#define OIS_MCU_VERSION_SIZE (4)
#define OIS_MCU_VDRINFO_SIZE (4)
#define OIS_HW_VERSION_OFFSET (0xAFF1)
#define OIS_FW_VERSION_OFFSET (0xAFED)
#define OIS_MCU_VERSION_OFFSET (0x80F8)
#define OIS_MCU_VDRINFO_OFFSET (0x807C)
#define OIS_MCU_FW_NAME "ois_mcu_stm32g_fw.bin"
#define OIS_USER_DATA_START_ADDR (0xB400)
#define OIS_FW_UPDATE_PACKET_SIZE (256)
#define PROGCODE_SIZE (1024 * 44)
#define MAX_RETRY_COUNT (3)
#define OIS_GYRO_SCALE_FACTOR_LSM6DSO (114)
#if defined(CONFIG_SAMSUNG_SUPPORT_RUMBA_FW_UPDATE)
#define OIS_RUMBA_FW_NAME "ois_rumba_fw.bin"
#define OIS_RUMBA_FWUP_SUPPORT_MCU_VERSION "QK2M"
#define OIS_TELE_5X_MODULE_VERSION_PREFIX "H50"
#define OIS_TELE_5X_MODULE_VERSION_SIZE (3)
#define OIS_TELE_5X_MODULE_VALID_MARK 'H'
#define OIS_TELE_5X_MODULE_VENDOR_NAME 'S'
#define OIS_TELE_5X_MODULE_VENDOR_OFFSET (9)
#define OIS_RUMBA_VERSION_BASIS (38726)
#define OIS_RUMBA_VERSION_MAX (50000)
#define OIS_RUMBA_VERSION_PHONE_OFFSET (0xAFF4)
#define OIS_RUMBA_VERSION_MODULE_OFFSET (0x0064)
#define OIS_RUMBA_VERSION_SIZE (4)
#define OIS_RUMBA_VENDOR_CODE_INVALID (0xFF)
#define OIS_RUMBA_VENDOR_CODE_SUNNY (0x02)
#define OIS_RUMBA_VENDOR_CODE_SEMCO (0x03)
#define OIS_RUMBA_VENDOR_CODE_MASK (0x0F)
#define OIS_RUMBA_VENDOR_CODE_OFFSET (0x0068)
#define OIS_RUMBA_FWUPERR (0x0006)
#define OIS_RUMBA_FWUPINDEX (0x0007)
#define OIS_RUMBA_FWUPCHKSUM (0x0008)
#define OIS_RUMBA_FWUPSIZE (0x000A)
#define OIS_RUMBA_FWUPCTRL (0x000C)
#define OIS_RUMBA_FWUPBUFFER (0x0100)
#define OIS_RUMBA_FWUP_START (0x01)
#define OIS_RUMBA_FWUP_WRITE_PROG (0x02)
#define OIS_RUMBA_FWUP_CHECKSUM (0x03)
#define OIS_RUMBA_FWUP_DATAWRITE (0x04)
#define OIS_RUMBA_FWUP_END (0x05)
#define OIS_RUMBA_FWUP_PACKET_SIZE (64)
#define OIS_RUMBA_FWUP_CTRLBIT_ENABLE (0x01)
#define OIS_RUMBA_FWUP_CTRLBIT_WRITE (0x10)
#define OIS_RUMBA_FWUPERR_E_NOROM (0x01U)
#define OIS_RUMBA_FWUPERR_E_WAIT (0x02U)
#define OIS_RUMBA_FWUPERR_E_ERASE (0x04U)
#define OIS_RUMBA_FWUPERR_E_DATAWRITE (0x08U)
#define OIS_RUMBA_FWUPERR_E_WRITE (0x10U)
#define OIS_RUMBA_FWUPERR_E_VERIFY (0x20U)
#define OIS_RUMBA_FWUPERR_E_CHKSUM (0x40U)
#endif
/*
*Below code add for MCU sysboot cmd operation
*/
typedef struct
{
uint32_t page;
uint32_t count;
} sysboot_erase_param_type;
/* Target specific definitions
*/
#define BOOT_I2C_STARTUP_DELAY (sysboot_i2c_startup_delay) /* msecs */
#define BOOT_I2C_TARGET_PID (product_id)
#define BOOT_I2C_ADDR (sysboot_i2c_slave_address << 1) /* it used directly as parameter of I2C HAL API */
#define BOOT_I2C_HANDLE (hi2c1)
#define BOOT_I2C_LPHANDLE (&(BOOT_I2C_HANDLE))
/* Protocol specific definitions
* NOTE: timeout interval unit: msec
*/
#define BOOT_I2C_INTER_PKT_FRONT_INTVL (1)
#define BOOT_I2C_INTER_PKT_BACK_INTVL (1)
#define BOOT_I2C_SYNC_RETRY_COUNT (3)
#define BOOT_I2C_SYNC_RETRY_INTVL (50)
#define BOOT_I2C_CMD_TMOUT (30)
#define BOOT_I2C_WRITE_TMOUT (flash_prog_time)
#define BOOT_I2C_FULL_ERASE_TMOUT (flash_full_erase_time)
#define BOOT_I2C_PAGE_ERASE_TMOUT(n) (flash_page_erase_time * n)
#define BOOT_I2C_WAIT_RESP_TMOUT (30)
#define BOOT_I2C_WAIT_MAX_RESP_TMOUT (1500)
#define BOOT_I2C_WAIT_RESP_POLL_TMOUT (500)
#define BOOT_I2C_WAIT_RESP_POLL_INTVL (3)
#define BOOT_I2C_WAIT_RESP_POLL_RETRY (BOOT_I2C_WAIT_RESP_POLL_TMOUT / BOOT_I2C_WAIT_RESP_POLL_INTVL)
#define BOOT_I2C_XMIT_TMOUT(count) (5 + (1 * count))
#define BOOT_I2C_RECV_TMOUT(count) BOOT_I2C_XMIT_TMOUT(count)
/* Payload length info. */
#define BOOT_I2C_CMD_LEN (1)
#define BOOT_I2C_ADDRESS_LEN (4)
#define BOOT_I2C_NUM_READ_LEN (1)
#define BOOT_I2C_NUM_WRITE_LEN (1)
#define BOOT_I2C_NUM_ERASE_LEN (2)
#define BOOT_I2C_CHECKSUM_LEN (1)
#define BOOT_I2C_MAX_WRITE_LEN (256) /* Protocol limitation */
#define BOOT_I2C_MAX_ERASE_PARAM_LEN (4096) /* In case of erase parameter with 2048 pages */
#define BOOT_I2C_MAX_PAYLOAD_LEN (BOOT_I2C_MAX_ERASE_PARAM_LEN) /* Larger one between write and erase., */
#define BOOT_I2C_REQ_CMD_LEN (BOOT_I2C_CMD_LEN + BOOT_I2C_CHECKSUM_LEN)
#define BOOT_I2C_REQ_ADDRESS_LEN (BOOT_I2C_ADDRESS_LEN + BOOT_I2C_CHECKSUM_LEN)
#define BOOT_I2C_READ_PARAM_LEN (BOOT_I2C_NUM_READ_LEN + BOOT_I2C_CHECKSUM_LEN)
#define BOOT_I2C_WRITE_PARAM_LEN(len) (BOOT_I2C_NUM_WRITE_LEN + len + BOOT_I2C_CHECKSUM_LEN)
#define BOOT_I2C_ERASE_PARAM_LEN(len) (len + BOOT_I2C_CHECKSUM_LEN)
#define BOOT_I2C_RESP_GET_VER_LEN (0x01) /* bootloader version(1) */
#define BOOT_I2C_RESP_GET_ID_LEN (0x03) /* number of bytes - 1(1) + product ID(2) */
/* Commands and Response */
#define BOOT_I2C_CMD_GET (0x00)
#define BOOT_I2C_CMD_GET_VER (0x01)
#define BOOT_I2C_CMD_GET_ID (0x02)
#define BOOT_I2C_CMD_READ (0x11)
#define BOOT_I2C_CMD_GO (0x21)
#define BOOT_I2C_CMD_WRITE (0x31)
#define BOOT_I2C_CMD_ERASE (0x44)
#define BOOT_I2C_CMD_WRITE_UNPROTECT (0x73)
#define BOOT_I2C_CMD_READ_UNPROTECT (0x92)
#define BOOT_I2C_CMD_SYNC (0xFF)
#define BOOT_I2C_RESP_ACK (0x79)
#define BOOT_I2C_RESP_NACK (0x1F)
#define BOOT_I2C_RESP_BUSY (0x76)
/* Exported functions ------------------------------------------------------- */
int sysboot_i2c_sync(struct cam_ois_ctrl_t *o_ctrl, uint8_t *cmd);
int sysboot_i2c_info(struct cam_ois_ctrl_t *o_ctrl);
int sysboot_i2c_read(struct cam_ois_ctrl_t *o_ctrl, uint32_t address, uint8_t *dst, size_t len);
int sysboot_i2c_write(struct cam_ois_ctrl_t *o_ctrl, uint32_t address, uint8_t *src, size_t len);
int sysboot_i2c_erase(struct cam_ois_ctrl_t *o_ctrl, uint32_t address, size_t len);
int sysboot_i2c_go(struct cam_ois_ctrl_t *o_ctrl, uint32_t address);
int sysboot_i2c_write_unprotect(struct cam_ois_ctrl_t *o_ctrl);
int sysboot_i2c_read_unprotect(struct cam_ois_ctrl_t *o_ctrl);
/* Private definitaions ----------------------------------------------------- */
#define BOOT_NRST_PULSE_INTVL (2) /* msec */
/* Utility MACROs */
#ifndef NTOHL
#define NTOHL(x) ((((x) & 0xFF000000U) >> 24) | \
(((x) & 0x00FF0000U) >> 8) | \
(((x) & 0x0000FF00U) << 8) | \
(((x) & 0x000000FFU) << 24))
#endif
#ifndef HTONL
#define HTONL(x) NTOHL(x)
#endif
#ifndef NTOHS
#define NTOHS(x) (((x >> 8) & 0x00FF) | ((x << 8) & 0xFF00))
#endif
#ifndef HTONS
#define HTONS(x) NTOHS(x)
#endif
/* ERROR definitions -------------------------------------------------------- */
enum
{
/* BASE ERROR ------------------------------------------------------------- */
BOOT_ERR_BASE = -999, /* -9xx */
BOOT_ERR_INVALID_PROTOCOL_GET_INFO,
BOOT_ERR_INVALID_PROTOCOL_SYNC,
BOOT_ERR_INVALID_PROTOCOL_READ,
BOOT_ERR_INVALID_PROTOCOL_WRITE,
BOOT_ERR_INVALID_PROTOCOL_ERASE,
BOOT_ERR_INVALID_PROTOCOL_GO,
BOOT_ERR_INVALID_PROTOCOL_WRITE_UNPROTECT,
BOOT_ERR_INVALID_PROTOCOL_READ_UNPROTECT,
BOOT_ERR_INVALID_MAX_WRITE_BYTES,
/* I2C ERROR -------------------------------------------------------------- */
BOOT_ERR_I2C_BASE = -899, /* -8xx */
BOOT_ERR_I2C_RESP_NACK,
BOOT_ERR_I2C_RESP_UNKNOWN,
BOOT_ERR_I2C_RESP_API_FAIL,
BOOT_ERR_I2C_XMIT_API_FAIL,
BOOT_ERR_I2C_RECV_API_FAIL,
/* SPI ERROR -------------------------------------------------------------- */
BOOT_ERR_SPI_BASE = -799, /* -7xx */
/* UART ERROR ------------------------------------------------------------- */
BOOT_ERR_UART_BASE = -699, /* -6xx */
/* DEVICE ERROR ----------------------------------------------------------- */
BOOT_ERR_DEVICE_MEMORY_MAP = -599, /* -5xx */
BOOT_ERR_DEVICE_PAGE_SIZE_NOT_FOUND,
/* API ERROR (OFFSET) ----------------------------------------------------- */
BOOT_ERR_API_GET = -1000,
BOOT_ERR_API_GET_ID = -2000,
BOOT_ERR_API_GET_VER = -3000,
BOOT_ERR_API_SYNC = -4000,
BOOT_ERR_API_READ = -5000,
BOOT_ERR_API_WRITE = -6000,
BOOT_ERR_API_ERASE = -7000,
BOOT_ERR_API_GO = -8000,
BOOT_ERR_API_WRITE_UNPROTECT = -9000,
BOOT_ERR_API_READ_UNPROTECT = -10000,
BOOT_ERR_API_SAVE_CONTENTS = -11000,
BOOT_ERR_API_RESTORE_CONTENTS = -12000,
};
#endif/* _CAM_OIS_MCU_STM32_H_ */

View File

@ -27,6 +27,10 @@ static int cam_ois_get_dt_data(struct cam_ois_ctrl_t *o_ctrl)
(struct cam_ois_soc_private *)o_ctrl->soc_info.soc_private; (struct cam_ois_soc_private *)o_ctrl->soc_info.soc_private;
struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info; struct cam_sensor_power_ctrl_t *power_info = &soc_private->power_info;
struct device_node *of_node = NULL; struct device_node *of_node = NULL;
#if defined(CONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT)
int adc_arr_len;
uint32_t adc, tp;
#endif
of_node = soc_info->dev->of_node; of_node = soc_info->dev->of_node;
@ -52,17 +56,28 @@ static int cam_ois_get_dt_data(struct cam_ois_ctrl_t *o_ctrl)
/* Initialize regulators to default parameters */ /* Initialize regulators to default parameters */
for (i = 0; i < soc_info->num_rgltr; i++) { for (i = 0; i < soc_info->num_rgltr; i++) {
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev, #if defined(CONFIG_SEC_Q6Q_PROJECT) || defined(CONFIG_SEC_Q6AQ_PROJECT)
soc_info->rgltr_name[i]); if (soc_info->rgltr_subname[i] &&
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) { strstr(soc_info->rgltr_subname[i], "s2mpb03")) {
rc = PTR_ERR(soc_info->rgltr[i]); soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
rc = rc ? rc : -EINVAL; soc_info->rgltr_subname[i]);
CAM_ERR(CAM_OIS, "get failed for regulator %s", CAM_INFO(CAM_OIS, "get for regulator %s instead of %s",
soc_info->rgltr_name[i]); soc_info->rgltr_subname[i], soc_info->rgltr_name[i]);
return rc; } else
#endif
{
soc_info->rgltr[i] = devm_regulator_get(soc_info->dev,
soc_info->rgltr_name[i]);
if (IS_ERR_OR_NULL(soc_info->rgltr[i])) {
rc = PTR_ERR(soc_info->rgltr[i]);
rc = rc ? rc : -EINVAL;
CAM_ERR(CAM_OIS, "get failed for regulator %s",
soc_info->rgltr_name[i]);
return rc;
}
CAM_DBG(CAM_OIS, "get for regulator %s",
soc_info->rgltr_name[i]);
} }
CAM_DBG(CAM_OIS, "get for regulator %s",
soc_info->rgltr_name[i]);
} }
if (!soc_info->gpio_data) { if (!soc_info->gpio_data) {
@ -97,6 +112,65 @@ static int cam_ois_get_dt_data(struct cam_ois_ctrl_t *o_ctrl)
} }
} }
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
rc = of_property_read_u32(of_node, "slave-addr",
&o_ctrl->slave_addr);
if (rc < 0) {
pr_err("%s failed rc %d\n", __func__, rc);
}
o_ctrl->io_master_info.client->addr = o_ctrl->slave_addr;
o_ctrl->reset_ctrl_gpio =
power_info->gpio_num_info->gpio_num[SENSOR_RESET];
o_ctrl->boot0_ctrl_gpio =
power_info->gpio_num_info->gpio_num[SENSOR_CUSTOM_GPIO1];
rc = of_property_read_u32_array(of_node, "pole-values",
o_ctrl->poles, sizeof(o_ctrl->poles)/sizeof(o_ctrl->poles[0]));
if (rc) {
CAM_ERR(CAM_OIS, "No pole value found, rc=%d", rc);
}
#if defined(CONFIG_SEC_B6Q_CHN_PROJECT)
else {
o_ctrl->poles[0] = 0x01;
}
#endif
rc = of_property_read_u32(of_node, "gyro-orientation",
&o_ctrl->gyro_orientation);
if (rc) {
CAM_ERR(CAM_OIS, "failed to read gyro-orientation");
}
#if defined(CONFIG_SAMSUNG_OIS_ADC_TEMPERATURE_SUPPORT)
if(of_get_property(of_node, "adc_array", &adc_arr_len)) {
o_ctrl->adc_arr_size = adc_arr_len / sizeof(uint32_t);
o_ctrl->adc_temperature_table =
kzalloc(sizeof(*o_ctrl->adc_temperature_table) * o_ctrl->adc_arr_size, GFP_KERNEL);
} else {
CAM_ERR(CAM_OIS, "failed to read adc_array");
}
if(o_ctrl->adc_temperature_table) {
for (i = 0; i < o_ctrl->adc_arr_size; i++) {
if (of_property_read_u32_index(of_node, "adc_array", i, &adc)) {
CAM_ERR(CAM_OIS, "failed to read adc_array");
}
if (of_property_read_u32_index(of_node, "temp_array", i, &tp)) {
CAM_ERR(CAM_OIS, "failed to read temp_array");
}
o_ctrl->adc_temperature_table[i].adc = (int)adc;
o_ctrl->adc_temperature_table[i].temperature = (int)tp;
//CAM_INFO(CAM_OIS, "adc =%d temperature=%d",o_ctrl->adc_temperature_table[i].adc, o_ctrl->adc_temperature_table[i].temperature);
}
} else {
CAM_ERR(CAM_OIS, "o_ctrl->adc_table is NULL");
}
#endif
#endif
return rc; return rc;
} }
/** /**

View File

@ -0,0 +1,258 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/module.h>
#include <linux/firmware.h>
#include <cam_sensor_cmn_header.h>
#include "cam_ois_thread.h"
#include "cam_ois_soc.h"
#include "cam_ois_core.h"
#include "cam_sensor_util.h"
#include "cam_debug_util.h"
#if defined(CONFIG_SAMSUNG_OIS_MCU_STM32)
#include "cam_ois_mcu_stm32g.h"
#endif
#if defined(CONFIG_SAMSUNG_OIS_RUMBA_S4)
#include "cam_ois_rumba_s4.h"
#endif
/**
* cam_ois_thread_add_msg - add msg to list
* @o_ctrl: ctrl structure
* @msg: Camera control command argument
*
* Returns success or failure
*/
int cam_ois_thread_add_msg(
struct cam_ois_ctrl_t *o_ctrl,
struct cam_ois_thread_msg_t *msg)
{
unsigned long flags;
if (!o_ctrl) {
CAM_ERR(CAM_OIS, "Invalid Args");
return -EINVAL;
}
if (!o_ctrl->is_thread_started) {
CAM_ERR(CAM_OIS, "Thread is not started");
return -EINVAL;
}
spin_lock_irqsave(&(o_ctrl->thread_spinlock), flags);
list_add_tail(&(msg->list),
&(o_ctrl->list_head_thread.list));
spin_unlock_irqrestore(&(o_ctrl->thread_spinlock), flags);
wake_up(&(o_ctrl->wait));
return 0;
}
/**
* cam_ois_thread_func - create thread
* @data: ctrl structure
*
* Returns success or failure
*/
static int cam_ois_thread_func(void *data)
{
int rc = 0;
struct cam_ois_ctrl_t *o_ctrl = NULL;
struct cam_ois_thread_msg_t *msg = NULL;
unsigned long flags;
if (!data) {
CAM_ERR(CAM_OIS, "Invalid Args");
return -EINVAL;
}
CAM_INFO(CAM_OIS, "E");
o_ctrl = (struct cam_ois_ctrl_t *)data;
o_ctrl->is_thread_started = true;
while (true) {
wait_event_freezable(
o_ctrl->wait,
(!list_empty(&(o_ctrl->list_head_thread.list)))
|| kthread_should_stop());
if (!o_ctrl->is_thread_started) {
CAM_INFO(CAM_OIS, "Thread is stopped");
break;
}
spin_lock_irqsave(&(o_ctrl->thread_spinlock), flags);
msg = list_first_entry_or_null(
&o_ctrl->list_head_thread.list,
struct cam_ois_thread_msg_t, list);
if (msg != NULL) {
list_del(&(msg->list));
spin_unlock_irqrestore(&(o_ctrl->thread_spinlock), flags);
if ((msg->msg_type >= 0) &&
(msg->msg_type < CAM_OIS_THREAD_MSG_MAX)) {
switch (msg->msg_type) {
case CAM_OIS_THREAD_MSG_START:
mutex_lock(&(o_ctrl->ois_mode_mutex));
CAM_DBG(CAM_OIS, "CAM_OIS_THREAD_MSG_START");
usleep_range(10000, 10050);
rc = cam_ois_init(o_ctrl);
if (rc < 0)
CAM_ERR(CAM_OIS, "OIS init failed %d", rc);
#if !defined(CONFIG_SAMSUNG_OIS_RUMBA_S4)
// OIS centering
cam_ois_set_ois_mode(o_ctrl, 0x05);
if (rc < 0)
CAM_ERR(CAM_OIS, "OIS centering failed %d", rc);
#endif
msleep(40);
mutex_unlock(&(o_ctrl->ois_mode_mutex));
break;
case CAM_OIS_THREAD_MSG_APPLY_SETTING:
mutex_lock(&(o_ctrl->ois_mode_mutex));
CAM_DBG(CAM_OIS, "CAM_OIS_THREAD_MSG_APPLY_SETTING");
mutex_lock(&(o_ctrl->i2c_mode_data_mutex));
if (msg->i2c_reg_settings->is_settings_valid == 1) {
rc = cam_ois_apply_settings(o_ctrl, msg->i2c_reg_settings);
if (rc < 0)
CAM_ERR(CAM_OIS, "Cannot apply settings");
rc = delete_request(msg->i2c_reg_settings);
if (rc < 0)
CAM_ERR(CAM_OIS,
"delete request: %lld rc: %d",
msg->i2c_reg_settings->request_id, rc);
}
mutex_unlock(&(o_ctrl->i2c_mode_data_mutex));
mutex_unlock(&(o_ctrl->ois_mode_mutex));
break;
case CAM_OIS_THREAD_MSG_RESET:
mutex_lock(&(o_ctrl->ois_mode_mutex));
CAM_DBG(CAM_OIS, "CAM_OIS_THREAD_MSG_RESET_MCU");
rc = cam_ois_set_ois_mode(o_ctrl, 0x16);
if (rc < 0)
CAM_ERR(CAM_OIS, "OIS centering failed %d", rc);
mutex_unlock(&(o_ctrl->ois_mode_mutex));
break;
#if defined(CONFIG_SAMSUNG_OIS_TAMODE_CONTROL)
case CAM_OIS_THREAD_MSG_SET_TAMODE:
mutex_lock(&(o_ctrl->ois_mode_mutex));
CAM_DBG(CAM_OIS, "CAM_OIS_THREAD_MSG_SET_TAMODE");
rc = cam_ois_set_ta_mode(o_ctrl);
if (rc < 0)
CAM_ERR(CAM_OIS, "set ta mode failed %d", rc);
mutex_unlock(&(o_ctrl->ois_mode_mutex));
break;
#endif
}
}
kfree(msg);
msg = NULL;
} else {
spin_unlock_irqrestore(&(o_ctrl->thread_spinlock), flags);
}
}
CAM_INFO(CAM_OIS, "X");
return rc;
}
/**
* cam_ois_thread_create - create thread
* @o_ctrl: ctrl structure
*
* Returns success or failure
*/
int cam_ois_thread_create(struct cam_ois_ctrl_t *o_ctrl)
{
int rc = 0;
int retries = 100;
CAM_INFO(CAM_OIS, "E");
if (!o_ctrl) {
CAM_ERR(CAM_OIS, "Invalid Args");
return -EINVAL;
}
if (o_ctrl->is_thread_started) {
CAM_ERR(CAM_OIS, "Already started");
return -EBUSY;
}
INIT_LIST_HEAD(&o_ctrl->list_head_thread.list);
spin_lock_init(&(o_ctrl->thread_spinlock));
o_ctrl->is_thread_started = false;
o_ctrl->ois_thread = kthread_run(cam_ois_thread_func, (void *)o_ctrl, "CAM_OIS");
if (IS_ERR(o_ctrl->ois_thread))
return -EINVAL;
while (o_ctrl->is_thread_started == false) {
usleep_range(2000, 2100);
if (retries < 0) {
CAM_ERR(CAM_OIS, "Fail to start thread");
rc = -EBUSY;
break;
}
retries--;
}
CAM_INFO(CAM_OIS, "X");
return rc;
}
/**
* cam_ois_thread_destroy - destroy thread
* @o_ctrl: ctrl structure
*
* Returns success or failure
*/
int cam_ois_thread_destroy(struct cam_ois_ctrl_t *o_ctrl)
{
struct cam_ois_thread_msg_t *msg_list = NULL, *msg_next = NULL;
unsigned long flags;
CAM_INFO(CAM_OIS, "E");
if (!o_ctrl) {
CAM_ERR(CAM_OIS, "Invalid Args");
return -EINVAL;
}
if (!o_ctrl->is_thread_started) {
CAM_WARN(CAM_OIS, "Thread is not started");
return 0;
}
o_ctrl->is_thread_started = false;
if (o_ctrl->ois_thread) {
spin_lock_irqsave(&(o_ctrl->thread_spinlock), flags);
list_for_each_entry_safe(msg_list, msg_next,
&o_ctrl->list_head_thread.list, list) {
list_del(&(msg_list->list));
kfree(msg_list);
}
spin_unlock_irqrestore(&(o_ctrl->thread_spinlock), flags);
kthread_stop(o_ctrl->ois_thread);
wake_up(&o_ctrl->wait);
o_ctrl->ois_thread = NULL;
}
CAM_INFO(CAM_OIS, "X");
return 0;
}

View File

@ -0,0 +1,22 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_OIS_THREAD_H_
#define _CAM_OIS_THREAD_H_
#include "cam_ois_dev.h"
int cam_ois_thread_add_msg(struct cam_ois_ctrl_t *o_ctrl, struct cam_ois_thread_msg_t *msg);
int cam_ois_thread_create(struct cam_ois_ctrl_t *o_ctrl);
int cam_ois_thread_destroy(struct cam_ois_ctrl_t *o_ctrl);
#endif
/* _CAM_OIS_THREAD_H_ */

View File

@ -0,0 +1,444 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_IMX258_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_IMX258_H_
#include "cam_sensor_dev.h"
int num_uw_mipi_setting = 1;
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_IMX258_SET_A_505_MHZ = 0,
CAM_IMX258_SET_A_646_MHZ = 1,
CAM_IMX258_SET_A_540_MHZ = 2,
CAM_IMX258_SET_A_566_MHZ = 3,
};
struct cam_sensor_i2c_reg_array MIPI_505_MHZ_REG_ARRAY[] = {
{0x030F, 0x9E, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_646_MHZ_REG_ARRAY[] = {
{0x030F, 0xCA, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_540_MHZ_REG_ARRAY[] = {
{0x030F, 0xA9, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_566_MHZ_REG_ARRAY[] = {
{0x030F, 0xB1, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx258_setfile_A_mipi_505_mhz[] = {
{ MIPI_505_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_505_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx258_setfile_A_mipi_646_mhz[] = {
{ MIPI_646_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_646_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx258_setfile_A_mipi_540_mhz[] = {
{ MIPI_540_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_540_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx258_setfile_A_mipi_566_mhz[] = {
{ MIPI_566_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_566_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx258_setfile_A_mipi_setting[] = {
{ "505 Mhz",
sensor_imx258_setfile_A_mipi_505_mhz, ARRAY_SIZE(sensor_imx258_setfile_A_mipi_505_mhz) },
{ "646 Mhz",
sensor_imx258_setfile_A_mipi_646_mhz, ARRAY_SIZE(sensor_imx258_setfile_A_mipi_646_mhz) },
{ "540 Mhz",
sensor_imx258_setfile_A_mipi_540_mhz, ARRAY_SIZE(sensor_imx258_setfile_A_mipi_540_mhz) },
{ "566 Mhz",
sensor_imx258_setfile_A_mipi_566_mhz, ARRAY_SIZE(sensor_imx258_setfile_A_mipi_566_mhz) },
};
static const struct cam_mipi_channel sensor_imx258_setfile_A_mipi_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10580, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10581, 10628, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10629, 10649, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10650, 10706, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10707, 10781, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10782, 10832, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10833, 10838, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9696, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9697, 9733, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9734, 9770, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9771, 9821, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9822, 9832, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9833, 9885, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9886, 9896, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9897, 9938, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1200, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1201, 1263, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1264, 1335, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1336, 1373, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1374, 1389, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1390, 1441, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1442, 1476, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1477, 1513, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1555, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1556, 1603, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1604, 1624, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1625, 1681, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1682, 1738, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4386, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4387, 4400, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4401, 4458, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2252, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2253, 2308, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2309, 2359, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2360, 2405, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2406, 2413, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2414, 2434, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2435, 2485, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2486, 2500, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2501, 2543, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2544, 2563, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2948, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2949, 3002, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3003, 3014, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3015, 3065, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3066, 3088, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 60, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 61, 156, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 157, 198, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 199, 312, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 313, 462, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 463, 565, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 566, 599, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 690, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 691, 693, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 694, 766, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 767, 840, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 841, 943, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 944, 964, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 965, 1069, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1070, 1093, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1094, 1199, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1300, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1301, 1426, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1427, 1571, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1572, 1647, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1648, 1679, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1680, 1782, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1783, 1851, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1852, 1932, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1933, 1949, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2010, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2011, 2106, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2107, 2148, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2149, 2262, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2263, 2399, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2482, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2483, 2511, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2512, 2632, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2633, 2649, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2766, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2767, 2804, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2805, 2916, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2917, 3018, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3019, 3110, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3111, 3127, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3128, 3168, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3169, 3271, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3272, 3300, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3301, 3386, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3387, 3421, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3422, 3449, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3478, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3479, 3497, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3498, 3604, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3605, 3628, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3629, 3731, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3732, 3799, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5087, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5088, 5126, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5127, 5179, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5228, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5229, 5279, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5358, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5359, 5379, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5757, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5758, 5796, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5797, 5849, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5901, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5902, 5920, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5921, 5999, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6022, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6023, 6051, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6052, 6149, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6254, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6255, 6276, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6277, 6386, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6387, 6404, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6405, 6449, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6481, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6482, 6583, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6584, 6599, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8130, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8131, 8206, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8207, 8280, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8281, 8383, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8384, 8404, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8405, 8509, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8510, 8533, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8534, 8636, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8637, 8689, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8751, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8752, 8770, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8771, 8872, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8873, 8901, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8902, 9022, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9023, 9039, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9288, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9289, 9391, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9392, 9396, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9397, 9461, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9462, 9541, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9542, 9644, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9645, 9659, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9746, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9747, 9769, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9819, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9820, 9855, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9856, 9869, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9987, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9988, 10018, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10019, 10137, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10138, 10240, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10241, 10338, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10339, 10359, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36249, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36250, 36349, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37760, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37761, 37830, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37831, 37910, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37911, 38013, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38014, 38154, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38155, 38163, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38164, 38249, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38334, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38335, 38448, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38449, 38484, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38485, 38587, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38588, 38593, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38594, 38649, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38729, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38730, 38832, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38833, 38896, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38897, 38979, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38980, 38982, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38983, 39085, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39086, 39199, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39200, 39235, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39236, 39338, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39339, 39488, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39489, 39590, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39591, 39641, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39642, 39649, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39792, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39793, 39903, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39904, 39974, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39975, 40044, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40045, 40165, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40166, 40297, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40298, 40400, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40401, 40470, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40471, 40550, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40551, 40653, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40654, 40794, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40795, 40803, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40804, 40906, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40907, 40944, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40945, 41056, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41057, 41158, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41159, 41250, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41251, 41267, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41268, 41308, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41309, 41411, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41412, 41440, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41441, 41526, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41527, 41561, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41562, 41589, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41643, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41644, 41774, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41775, 41793, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41794, 41910, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41911, 42045, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42046, 42182, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42183, 42247, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42248, 42298, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42299, 42401, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42402, 42459, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42460, 42546, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42547, 42551, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42552, 42654, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42655, 42762, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42763, 42804, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42805, 42907, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42908, 43057, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43058, 43159, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43160, 43212, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43213, 43309, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43310, 43412, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43413, 43478, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43479, 43511, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43512, 43562, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43563, 43589, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55309, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55310, 55362, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55363, 55459, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55460, 55562, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55563, 55628, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55629, 55661, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55662, 55712, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55713, 55815, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55816, 55863, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55864, 55898, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55899, 55940, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55941, 56068, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56069, 56186, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56187, 56208, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56209, 56321, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56322, 56336, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56337, 56471, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56472, 56581, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56582, 56659, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56660, 56723, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56724, 56739, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66496, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66497, 66592, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66593, 66634, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66635, 66748, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66749, 66898, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66899, 67001, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67002, 67042, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67043, 67065, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67066, 67151, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67152, 67254, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67255, 67313, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67314, 67335, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68660, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68661, 68804, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68805, 68810, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68811, 68935, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174540, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174541, 176480, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176481, 178580, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178581, 178780, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 185640, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185641, 186860, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 186861, 189720, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189721, 189840, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189841, 191580, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191581, 191980, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 147340, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147341, 149200, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 159120, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159121, 159220, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159221, 160000, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160001, 163000, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163001, 164180, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 153260, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153261, 154060, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154061, 154320, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154321, 154860, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154861, 156840, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156841, 159120, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159121, 159380, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159381, 159820, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159821, 160580, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 123980, CAM_IMX258_SET_A_505_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123981, 126860, CAM_IMX258_SET_A_646_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126861, 127380, CAM_IMX258_SET_A_540_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 127381, 128800, CAM_IMX258_SET_A_566_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 128801, 130380, CAM_IMX258_SET_A_505_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_A_mode[] = {
{
sensor_imx258_setfile_A_mipi_channel, ARRAY_SIZE(sensor_imx258_setfile_A_mipi_channel),
sensor_imx258_setfile_A_mipi_setting, ARRAY_SIZE(sensor_imx258_setfile_A_mipi_setting)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_UW_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_UW_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_uw_setfile_dummy_mhz[] = {
{ MIPI_UW_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_UW_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_uw_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_uw_setfile_dummy_mhz, ARRAY_SIZE(sensor_uw_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_uw_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_UW_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_B_mode[] = {
{
sensor_uw_setfile_dummy_channel, ARRAY_SIZE(sensor_uw_setfile_dummy_channel),
sensor_uw_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_uw_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_C_mode[] = {
{
sensor_uw_setfile_dummy_channel, ARRAY_SIZE(sensor_uw_setfile_dummy_channel),
sensor_uw_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_uw_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_D_mode[] = {
{
sensor_uw_setfile_dummy_channel, ARRAY_SIZE(sensor_uw_setfile_dummy_channel),
sensor_uw_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_uw_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_IMX258_H_ */

View File

@ -0,0 +1,568 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_IMX374_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_IMX374_H_
#include "cam_sensor_dev.h"
int num_front_mipi_setting = 2;
/*
Mode A : Full mode (860.8 / 995.2 / 1011.2 / 1046.4)
Mode B : 4k2k 60fps mode (1196.8 / 1011.2 / 1139.2 / 1094.4)
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_IMX374_SET_A_FULL_860_MHZ = 0,
CAM_IMX374_SET_A_FULL_995_MHZ = 1,
CAM_IMX374_SET_A_FULL_1011_MHZ = 2,
CAM_IMX374_SET_A_FULL_1046_MHZ = 3,
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1046_MHZ_REG_ARRAY[] = {
{0x030F, 0x47, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_860_MHZ_REG_ARRAY[] = {
{0x030F, 0x0D, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_995_MHZ_REG_ARRAY[] = {
{0x030F, 0x37, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1011_MHZ_REG_ARRAY[] = {
{0x030F, 0x3C, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_A_mipi_FULL_1046_mhz[] = {
{ MIPI_FULL_1046_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1046_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_A_mipi_FULL_860_mhz[] = {
{ MIPI_FULL_860_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_860_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_A_mipi_FULL_995_mhz[] = {
{ MIPI_FULL_995_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_995_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_A_mipi_FULL_1011_mhz[] = {
{ MIPI_FULL_1011_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1011_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx374_setfile_A_mipi_setting_FULL[] = {
{ "860 Mhz",
sensor_imx374_setfile_A_mipi_FULL_860_mhz, ARRAY_SIZE(sensor_imx374_setfile_A_mipi_FULL_860_mhz) },
{ "995 Mhz",
sensor_imx374_setfile_A_mipi_FULL_995_mhz, ARRAY_SIZE(sensor_imx374_setfile_A_mipi_FULL_995_mhz) },
{ "1011 Mhz",
sensor_imx374_setfile_A_mipi_FULL_1011_mhz, ARRAY_SIZE(sensor_imx374_setfile_A_mipi_FULL_1011_mhz) },
{ "1046 Mhz",
sensor_imx374_setfile_A_mipi_FULL_1046_mhz, ARRAY_SIZE(sensor_imx374_setfile_A_mipi_FULL_1046_mhz) },
};
static const struct cam_mipi_channel sensor_imx374_setfile_A_mipi_channel_FULL[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10582, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10583, 10722, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10723, 10735, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10736, 10797, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10798, 10838, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9665, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9666, 9721, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9722, 9861, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9862, 9914, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9915, 9936, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9937, 9938, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1200, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1201, 1341, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1342, 1368, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1369, 1416, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1417, 1513, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1557, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1558, 1697, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1698, 1710, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1711, 1738, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4458, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2273, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2274, 2289, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2290, 2429, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2430, 2504, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2505, 2563, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2996, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2997, 3064, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3065, 3071, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3072, 3088, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 763, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 64, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 65, 344, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 345, 371, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 372, 494, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 495, 599, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 631, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 632, 742, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 743, 1023, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1024, 1128, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1129, 1173, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1174, 1199, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1301, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1302, 1582, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1583, 1636, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1637, 1732, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1733, 1949, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2014, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2015, 2294, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2295, 2321, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2322, 2399, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2649, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2847, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2848, 2879, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2880, 3159, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3160, 3309, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3310, 3449, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3593, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3594, 3729, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3730, 3743, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3744, 3799, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5108, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5109, 5111, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5112, 5179, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5372, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5373, 5379, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5778, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5779, 5781, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5782, 5849, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5932, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5933, 5999, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6149, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6342, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6343, 6449, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6479, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6480, 6493, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6494, 6599, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8071, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8072, 8182, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8183, 8463, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8464, 8568, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8569, 8613, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8614, 8689, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8782, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8783, 9039, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9302, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9303, 9452, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9453, 9659, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9731, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9732, 9769, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9866, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9867, 9869, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9958, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9959, 10108, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10109, 10359, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36253, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36254, 36349, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37798, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37799, 37850, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37851, 37910, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37911, 37948, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37949, 38229, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38230, 38249, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38312, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38313, 38433, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38434, 38462, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38463, 38649, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38816, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38817, 38962, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38963, 38966, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38967, 39246, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39247, 39396, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39397, 39649, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39728, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39729, 40008, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40009, 40044, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40045, 40142, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40143, 40158, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40159, 40438, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40439, 40490, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40491, 40550, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40551, 40588, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40589, 40869, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40870, 40987, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40988, 41019, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41020, 41299, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41300, 41449, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41450, 41589, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41666, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41667, 41947, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41948, 41999, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42000, 42097, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42098, 42377, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42378, 42401, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42402, 42497, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42498, 42527, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42528, 42807, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42808, 42844, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42845, 42907, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42908, 42957, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42958, 43238, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43239, 43342, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43343, 43388, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43389, 43589, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55388, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55389, 55492, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55493, 55538, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55539, 55818, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55819, 55968, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55969, 56249, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56250, 56399, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56400, 56679, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56680, 56739, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66500, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66501, 66780, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66781, 66807, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66808, 66930, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66931, 67211, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67212, 67305, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67306, 67335, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68796, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68797, 68809, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68810, 68913, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68914, 68935, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174540, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174541, 178360, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178361, 178780, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 186960, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 186961, 190230, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190231, 191480, CAM_IMX374_SET_A_FULL_1046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191481, 191760, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191761, 191980, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 147760, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147761, 147820, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147821, 149200, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 162040, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 162041, 164180, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 152540, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 152541, 156820, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156821, 157340, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157341, 160580, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 126700, CAM_IMX374_SET_A_FULL_860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126701, 126960, CAM_IMX374_SET_A_FULL_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126961, 129040, CAM_IMX374_SET_A_FULL_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129041, 130380, CAM_IMX374_SET_A_FULL_1046_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_A_mode[] = {
{
sensor_imx374_setfile_A_mipi_channel_FULL, ARRAY_SIZE(sensor_imx374_setfile_A_mipi_channel_FULL),
sensor_imx374_setfile_A_mipi_setting_FULL, ARRAY_SIZE(sensor_imx374_setfile_A_mipi_setting_FULL)
},
};
/*************************************/
/* ========== Mode B =============== */
/*************************************/
enum {
CAM_IMX374_SET_B_4K2K_1196_MHZ = 0,
CAM_IMX374_SET_B_4K2K_1011_MHZ = 1,
CAM_IMX374_SET_B_4K2K_1139_MHZ = 2,
CAM_IMX374_SET_B_4K2K_1094_MHZ = 3,
};
struct cam_sensor_i2c_reg_array MIPI_4K2K_1196_MHZ_REG_ARRAY[] = {
{0x030F, 0x76, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_4K2K_1011_MHZ_REG_ARRAY[] = {
{0x030F, 0x3C, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_4K2K_1139_MHZ_REG_ARRAY[] = {
{0x030F, 0x64, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_4K2K_1094_MHZ_REG_ARRAY[] = {
{0x030F, 0x56, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_B_mipi_4K2K_1196_mhz[] = {
{ MIPI_4K2K_1196_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_4K2K_1196_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_B_mipi_4K2K_1011_mhz[] = {
{ MIPI_4K2K_1011_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_4K2K_1011_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_B_mipi_4K2K_1139_mhz[] = {
{ MIPI_4K2K_1139_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_4K2K_1139_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx374_setfile_B_mipi_4K2K_1094_mhz[] = {
{ MIPI_4K2K_1094_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_4K2K_1094_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx374_setfile_B_mipi_setting_4K2K[] = {
{ "1196 Mhz",
sensor_imx374_setfile_B_mipi_4K2K_1196_mhz, ARRAY_SIZE(sensor_imx374_setfile_B_mipi_4K2K_1196_mhz) },
{ "1011 Mhz",
sensor_imx374_setfile_B_mipi_4K2K_1011_mhz, ARRAY_SIZE(sensor_imx374_setfile_B_mipi_4K2K_1011_mhz) },
{ "1139 Mhz",
sensor_imx374_setfile_B_mipi_4K2K_1139_mhz, ARRAY_SIZE(sensor_imx374_setfile_B_mipi_4K2K_1139_mhz) },
{ "1094 Mhz",
sensor_imx374_setfile_B_mipi_4K2K_1094_mhz, ARRAY_SIZE(sensor_imx374_setfile_B_mipi_4K2K_1094_mhz) },
};
static const struct cam_mipi_channel sensor_imx374_setfile_B_mipi_channel_4K2K[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10733, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10734, 10781, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10782, 10808, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10809, 10838, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9686, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9687, 9761, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9762, 9836, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9837, 9896, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9897, 9911, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9912, 9938, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1362, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1363, 1437, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1438, 1513, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1708, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1709, 1738, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4450, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4451, 4458, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2258, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2259, 2308, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2309, 2327, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2328, 2551, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2552, 2560, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2561, 2563, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 3049, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3050, 3065, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3066, 3088, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 367, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 368, 462, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 463, 517, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 518, 599, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 672, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 673, 822, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 823, 972, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 973, 1093, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1094, 1122, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1123, 1199, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1625, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1626, 1775, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1776, 1949, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2317, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2318, 2399, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2610, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2611, 2632, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2633, 2649, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2815, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2816, 2916, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2917, 2954, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2955, 3402, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3403, 3421, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3422, 3449, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3699, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3700, 3731, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3732, 3799, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5124, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5125, 5179, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5228, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5229, 5274, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5275, 5279, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5794, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5795, 5849, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5999, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6149, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6449, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6525, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6526, 6599, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8112, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8113, 8262, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8263, 8412, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8413, 8533, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8534, 8562, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8563, 8689, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 9000, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9001, 9022, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9023, 9039, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9334, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9335, 9484, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9485, 9659, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9745, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9746, 9769, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10284, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10285, 10359, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37760, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37761, 37856, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37857, 38249, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38523, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38524, 38587, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38588, 38649, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38912, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38913, 38954, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38955, 38982, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38983, 39062, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39063, 39510, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39511, 39590, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39591, 39648, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39649, 39649, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39747, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39748, 39894, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39895, 39897, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39898, 40046, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40047, 40196, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40197, 40346, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40347, 40400, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40401, 40496, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40497, 40955, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40956, 41056, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41057, 41094, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41095, 41542, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41543, 41561, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41562, 41589, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41623, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41624, 41643, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41644, 41691, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41692, 41744, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41745, 41923, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41924, 42045, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42046, 42073, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42074, 42222, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42223, 42372, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42373, 42820, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42821, 42907, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42908, 42970, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42971, 43419, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43420, 43549, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43550, 43562, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43563, 43569, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43570, 43589, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55569, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55570, 55699, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55700, 55712, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55713, 55719, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55720, 56167, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56168, 56218, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56219, 56317, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56318, 56739, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66803, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66804, 66898, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66899, 66953, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66954, 67335, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68923, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68924, 68935, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 177100, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 177101, 178780, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 189080, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189081, 189720, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189721, 191260, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191261, 191980, CAM_IMX374_SET_B_4K2K_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 164180, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 153180, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153181, 154060, CAM_IMX374_SET_B_4K2K_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154061, 157980, CAM_IMX374_SET_B_4K2K_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157981, 160580, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 129240, CAM_IMX374_SET_B_4K2K_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129241, 130380, CAM_IMX374_SET_B_4K2K_1139_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_B_mode[] = {
{
sensor_imx374_setfile_B_mipi_channel_4K2K, ARRAY_SIZE(sensor_imx374_setfile_B_mipi_channel_4K2K),
sensor_imx374_setfile_B_mipi_setting_4K2K, ARRAY_SIZE(sensor_imx374_setfile_B_mipi_setting_4K2K)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_FRONT_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_FRONT_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_front_setfile_dummy_mhz[] = {
{ MIPI_FRONT_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FRONT_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_front_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_front_setfile_dummy_mhz, ARRAY_SIZE(sensor_front_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_front_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_FRONT_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_C_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_D_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_IMX374_H_ */

View File

@ -0,0 +1,409 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_IMX471_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_IMX471_H_
#include "cam_sensor_dev.h"
int num_front_top_mipi_setting = 1;
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_IMX471_SET_A_Full_793p6_MHZ = 0,
CAM_IMX471_SET_A_Full_723p2_MHZ = 1,
CAM_IMX471_SET_A_Full_771p2_MHZ = 2,
CAM_IMX471_SET_A_Full_774p4_MHZ = 3,
};
struct cam_sensor_i2c_reg_array MIPI_FULL_793p6_MHZ_REG_ARRAY[] = {
{0x030F, 0xF8, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_723p2_MHZ_REG_ARRAY[] = {
{0x030F, 0xE2, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_771p2_MHZ_REG_ARRAY[] = {
{0x030F, 0xF1, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_774p4_MHZ_REG_ARRAY[] = {
{0x030F, 0xF2, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx471_setfile_A_mipi_FULL_793p6_mhz[] = {
{ MIPI_FULL_793p6_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_793p6_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx471_setfile_A_mipi_FULL_723p2_mhz[] = {
{ MIPI_FULL_723p2_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_723p2_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx471_setfile_A_mipi_FULL_771p2_mhz[] = {
{ MIPI_FULL_771p2_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_771p2_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx471_setfile_A_mipi_FULL_774p4_mhz[] = {
{ MIPI_FULL_774p4_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_774p4_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx471_setfile_A_mipi_setting_FULL[] = {
{ "793.6 Mhz",
sensor_imx471_setfile_A_mipi_FULL_793p6_mhz, ARRAY_SIZE(sensor_imx471_setfile_A_mipi_FULL_793p6_mhz) },
{ "723.2 Mhz",
sensor_imx471_setfile_A_mipi_FULL_723p2_mhz, ARRAY_SIZE(sensor_imx471_setfile_A_mipi_FULL_723p2_mhz) },
{ "771.2 Mhz",
sensor_imx471_setfile_A_mipi_FULL_771p2_mhz, ARRAY_SIZE(sensor_imx471_setfile_A_mipi_FULL_771p2_mhz) },
{ "774.4 Mhz",
sensor_imx471_setfile_A_mipi_FULL_774p4_mhz, ARRAY_SIZE(sensor_imx471_setfile_A_mipi_FULL_774p4_mhz) },
};
static const struct cam_mipi_channel sensor_imx471_setfile_A_mipi_channel_FULL[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10676, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10677, 10704, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10705, 10751, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10752, 10838, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9684, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9685, 9725, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9726, 9759, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9760, 9882, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9883, 9906, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9907, 9938, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1213, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1214, 1288, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1289, 1412, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1413, 1487, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1488, 1513, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1651, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1652, 1679, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1680, 1726, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1727, 1738, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4376, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4377, 4402, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4403, 4458, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2256, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2257, 2380, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2381, 2455, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2456, 2563, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 3024, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3025, 3038, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3039, 3088, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 5, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 6, 252, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 253, 309, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 310, 402, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 403, 599, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 668, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 669, 751, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 752, 818, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 819, 1064, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1065, 1112, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1113, 1199, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1327, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1328, 1477, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1478, 1724, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1725, 1874, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1875, 1949, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 1955, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1956, 2202, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2203, 2259, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2260, 2352, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2353, 2399, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2463, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2464, 2514, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2515, 2649, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2813, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2814, 3060, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3061, 3210, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3211, 3449, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3648, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3649, 3676, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3677, 3799, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5179, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5184, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5185, 5238, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5239, 5279, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5314, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5315, 5379, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5904, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5905, 5999, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6003, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6004, 6054, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6055, 6149, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6250, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6251, 6449, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6494, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6495, 6599, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8108, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8109, 8191, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8192, 8258, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8259, 8504, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8505, 8552, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8553, 8654, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8655, 8689, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8754, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8755, 8853, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8854, 8904, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8905, 9039, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9244, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9245, 9490, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9491, 9510, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9511, 9640, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9641, 9659, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9707, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9708, 9769, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10006, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10007, 10150, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10151, 10156, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10157, 10359, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36261, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36262, 36274, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36275, 36349, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37766, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37767, 37798, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37799, 37916, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37917, 38163, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38164, 38249, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38421, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38422, 38539, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38540, 38571, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38572, 38649, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38717, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38718, 38739, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38740, 38986, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38987, 39078, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39079, 39096, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39097, 39136, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39137, 39382, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39383, 39440, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39441, 39482, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39483, 39532, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39533, 39649, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39678, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39679, 39715, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39716, 39763, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39764, 40010, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40011, 40064, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40065, 40076, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40077, 40160, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40161, 40406, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40407, 40438, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40439, 40556, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40557, 40803, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40804, 40953, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40954, 41200, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41201, 41350, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41351, 41589, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41639, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41640, 41655, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41656, 41789, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41790, 42036, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42037, 42186, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42187, 42433, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42434, 42583, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42584, 42830, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42831, 42951, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42952, 42980, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42981, 43227, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43228, 43313, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43314, 43375, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43376, 43377, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43378, 43589, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55377, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55378, 55463, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55464, 55525, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55526, 55527, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55528, 55773, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55774, 55825, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55826, 55911, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55912, 55923, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55924, 56170, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56171, 56186, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56187, 56297, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56298, 56320, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56321, 56567, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56568, 56682, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56683, 56698, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56699, 56717, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56718, 56739, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66441, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66442, 66688, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66689, 66745, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66746, 66838, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66839, 67084, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67085, 67106, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67107, 67234, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67235, 67335, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68689, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68690, 68839, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68840, 68935, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174960, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174961, 175830, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 175831, 178380, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178381, 178780, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 185620, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185621, 187480, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187481, 190380, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190381, 190420, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190421, 191980, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 148380, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 148381, 148920, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 148921, 149200, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 159540, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159541, 160660, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160661, 161500, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 161501, 163920, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163921, 164180, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 152820, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 152821, 154260, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154261, 156700, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156701, 159540, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159541, 160580, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 636667, 637567, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 637568, 638147, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 638148, 638567, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 638568, 640207, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 640208, 640547, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 640548, 641127, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 641128, 641207, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 641208, 642867, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 642868, 642967, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 642968, 643707, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 643708, 643867, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 643868, 645507, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 645508, 646267, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 646268, 646387, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 646388, 646507, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_303_NR5G_N048), 646508, 646666, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124950, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124951, 125780, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 125781, 126300, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126301, 129300, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129301, 130380, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 620000, 621380, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 621381, 625540, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 625541, 627880, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 627881, 628300, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 628301, 634600, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 634601, 637580, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 637581, 640740, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 640741, 641540, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 641541, 647820, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 647821, 649640, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 649641, 653580, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 653581, 654660, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 654661, 661060, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 661061, 661700, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 661701, 666440, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 666441, 667980, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 667981, 674280, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 674281, 679300, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_332_NR5G_N077), 679301, 680000, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 620000, 620900, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 620901, 623760, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 623761, 625380, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 625381, 628580, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 628581, 633540, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 633541, 636200, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 636201, 638260, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 638261, 641640, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 641641, 646180, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 646181, 648660, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 648661, 651140, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_333_NR5G_N078), 651141, 653333, CAM_IMX471_SET_A_Full_774p4_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 693334, 694434, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 694435, 700734, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 700735, 704794, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 704795, 707674, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 707675, 713954, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 713955, 716834, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 716835, 720894, CAM_IMX471_SET_A_Full_723p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 720895, 727194, CAM_IMX471_SET_A_Full_793p6_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 727195, 728894, CAM_IMX471_SET_A_Full_771p2_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_334_NR5G_N079), 728895, 733333, CAM_IMX471_SET_A_Full_723p2_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_A_mode[] = {
{
sensor_imx471_setfile_A_mipi_channel_FULL, ARRAY_SIZE(sensor_imx471_setfile_A_mipi_channel_FULL),
sensor_imx471_setfile_A_mipi_setting_FULL, ARRAY_SIZE(sensor_imx471_setfile_A_mipi_setting_FULL)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_FRONT_TOP_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_FRONT_TOP_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_front_top_setfile_dummy_mhz[] = {
{ MIPI_FRONT_TOP_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FRONT_TOP_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_front_top_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_front_top_setfile_dummy_mhz, ARRAY_SIZE(sensor_front_top_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_front_top_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_FRONT_TOP_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_B_mode[] = {
{
sensor_front_top_setfile_dummy_channel, ARRAY_SIZE(sensor_front_top_setfile_dummy_channel),
sensor_front_top_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_top_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_C_mode[] = {
{
sensor_front_top_setfile_dummy_channel, ARRAY_SIZE(sensor_front_top_setfile_dummy_channel),
sensor_front_top_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_top_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_D_mode[] = {
{
sensor_front_top_setfile_dummy_channel, ARRAY_SIZE(sensor_front_top_setfile_dummy_channel),
sensor_front_top_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_top_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_IMX471_H_ */

View File

@ -0,0 +1,994 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_IMX564_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_IMX564_H_
#include "cam_sensor_dev.h"
int num_uw_mipi_setting = 4;
/*
Mode A : 4x4 (10/12bit) (2713.6 / 2720.0 / 2784.0)
Mode B : FastAE/SM 4x4&2x2 (10bit) (2988.8 / 2944 / 2860.8)
Mode C : SSM 4x4&2x2 (10bit) (1356.8 / 1331.2 / 1382.4 / 1414.4)
Mode D : Pro Video 120Fps non bin (10bit) (3379.2 / 3331.2)
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_IMX564_SET_A_2713_MHZ = 0,
CAM_IMX564_SET_A_2720_MHZ = 1,
CAM_IMX564_SET_A_2784_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_A_2713_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xA8, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_A_2720_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xA9, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_A_2784_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x02, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0x22, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_A_2713_mhz[] = {
{ MIPI_A_2713_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_2713_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_A_2720_mhz[] = {
{ MIPI_A_2720_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_2720_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_A_2784_mhz[] = {
{ MIPI_A_2784_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_2784_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx564_setfile_A_mipi_setting[] = {
{ "2713 Msps",
sensor_imx564_setfile_A_2713_mhz, ARRAY_SIZE(sensor_imx564_setfile_A_2713_mhz) },
{ "2720 Msps",
sensor_imx564_setfile_A_2720_mhz, ARRAY_SIZE(sensor_imx564_setfile_A_2720_mhz) },
{ "2784 Msps",
sensor_imx564_setfile_A_2784_mhz, ARRAY_SIZE(sensor_imx564_setfile_A_2784_mhz) },
};
static const struct cam_mipi_channel sensor_imx564_setfile_A_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10570, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10571, 10640, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10641, 10838, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9907, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9908, 9938, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1369, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1370, 1439, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1440, 1513, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1545, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1546, 1615, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1616, 1738, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4458, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2347, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2348, 2385, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2386, 2417, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2418, 2563, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 3088, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 763, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 41, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 42, 181, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 182, 599, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 1115, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1116, 1199, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1639, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1640, 1779, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1780, 1949, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 1991, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1992, 2131, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2132, 2399, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2649, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2994, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2995, 3071, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3072, 3134, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3135, 3449, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3799, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5179, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5999, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6149, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6449, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6599, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8555, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8556, 8689, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 9039, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9313, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9314, 9331, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9332, 9453, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9454, 9659, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9667, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9668, 9769, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10052, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10053, 10359, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37831, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37832, 37924, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37925, 37971, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37972, 38249, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38602, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38603, 38649, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38779, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38780, 38907, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38908, 39442, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39443, 39562, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39563, 39649, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39808, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39809, 39913, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39914, 40471, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40472, 40564, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40565, 40611, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40612, 41134, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41135, 41211, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41212, 41274, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41275, 41589, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41763, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41764, 41843, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41844, 41903, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41904, 42409, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42410, 42491, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42492, 42549, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42550, 43055, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43056, 43139, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43140, 43195, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43196, 43589, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55289, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55290, 55345, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55346, 55851, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55852, 55936, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55937, 55991, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55992, 56497, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56498, 56584, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56585, 56637, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56638, 56739, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66477, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66478, 66617, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66618, 67140, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67141, 67280, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67281, 67335, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68806, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68807, 68822, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68823, 68935, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 178500, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178501, 178780, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 191420, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191421, 191880, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191881, 191980, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 164180, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 152660, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 152661, 153020, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153021, 157070, CAM_IMX564_SET_A_2784_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157071, 160580, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 126800, CAM_IMX564_SET_A_2713_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126801, 127120, CAM_IMX564_SET_A_2720_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 127121, 130380, CAM_IMX564_SET_A_2784_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_A_mode[] = {
{
sensor_imx564_setfile_A_channel, ARRAY_SIZE(sensor_imx564_setfile_A_channel),
sensor_imx564_setfile_A_mipi_setting, ARRAY_SIZE(sensor_imx564_setfile_A_mipi_setting)
},
};
/*************************************/
/* ========== Mode B =============== */
/*************************************/
enum {
CAM_IMX564_SET_B_2988_MHZ = 0,
CAM_IMX564_SET_B_2944_MHZ = 1,
CAM_IMX564_SET_B_2860_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_B_2988_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xD3, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_B_2944_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xCC, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_B_2860_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xBF, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_B_2988_mhz[] = {
{ MIPI_B_2988_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_B_2988_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_B_2944_mhz[] = {
{ MIPI_B_2944_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_B_2944_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_B_2860_mhz[] = {
{ MIPI_B_2860_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_B_2860_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx564_setfile_B_mipi_setting[] = {
{ "2988 Mhz",
sensor_imx564_setfile_B_2988_mhz, ARRAY_SIZE(sensor_imx564_setfile_B_2988_mhz) },
{ "2944 Mhz",
sensor_imx564_setfile_B_2944_mhz, ARRAY_SIZE(sensor_imx564_setfile_B_2944_mhz) },
{ "2860 Mhz",
sensor_imx564_setfile_B_2860_mhz, ARRAY_SIZE(sensor_imx564_setfile_B_2860_mhz) },
};
static const struct cam_mipi_channel sensor_imx564_setfile_B_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10620, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10621, 10639, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10640, 10709, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10710, 10838, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9927, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9928, 9938, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1348, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1349, 1359, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1360, 1411, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1412, 1429, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1430, 1499, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1500, 1513, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1595, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1596, 1614, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1615, 1684, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1685, 1738, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4393, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4394, 4458, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4393, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4394, 4413, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2254, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2255, 2324, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2325, 2563, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2960, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2961, 3088, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 718, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 719, 763, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 0, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 1, 140, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 141, 178, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 179, 318, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 319, 599, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 1155, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1156, 1199, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1596, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1597, 1619, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1620, 1722, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1723, 1759, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1760, 1899, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1900, 1949, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 1950, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1951, 2090, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2091, 2128, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2129, 2268, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2269, 2399, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2497, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2498, 2649, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2771, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2772, 2809, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2810, 2949, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2950, 3449, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3521, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3522, 3799, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5121, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5122, 5146, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5147, 5179, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5261, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5262, 5279, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5791, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5792, 5816, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5817, 5849, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5859, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5860, 5897, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5898, 5906, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5907, 5999, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6037, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6038, 6149, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6449, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6504, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6505, 6599, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8595, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8596, 8689, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8709, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8710, 8747, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8748, 8756, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8757, 8887, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8888, 9039, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9387, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9388, 9410, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9411, 9527, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9528, 9659, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9676, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9677, 9769, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9823, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9824, 9861, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9862, 9869, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10273, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10274, 10359, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 38131, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38132, 38249, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38593, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38594, 38649, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 39063, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39064, 39203, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39204, 39241, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39242, 39381, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39382, 39649, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39666, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39667, 40238, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40239, 40378, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40379, 40771, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40772, 40911, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40912, 40949, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40950, 41089, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41090, 41589, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41717, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41718, 42088, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42089, 42228, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42229, 42258, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42259, 42398, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42399, 42939, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42940, 43079, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43080, 43280, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43281, 43408, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43409, 43420, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43421, 43589, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55430, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55431, 55558, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55559, 55570, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55571, 55770, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55771, 55910, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55911, 56451, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56452, 56470, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56471, 56591, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56592, 56622, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56623, 56739, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66436, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66437, 66576, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66577, 66614, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66615, 66754, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66755, 67326, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67327, 67335, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68619, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68620, 68654, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68655, 68712, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68713, 68750, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68751, 68794, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68795, 68890, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68891, 68935, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174120, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174121, 176740, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176741, 178780, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187420, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187421, 191980, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 147020, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147021, 149200, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 158940, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158941, 164180, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 151810, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151811, 154140, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154141, 156600, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156601, 158940, CAM_IMX564_SET_B_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 158941, 160580, CAM_IMX564_SET_B_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 128560, CAM_IMX564_SET_B_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 128561, 130380, CAM_IMX564_SET_B_2944_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_B_mode[] = {
{
sensor_imx564_setfile_B_channel, ARRAY_SIZE(sensor_imx564_setfile_B_channel),
sensor_imx564_setfile_B_mipi_setting, ARRAY_SIZE(sensor_imx564_setfile_B_mipi_setting)
},
};
/*************************************/
/* ========== Mode C =============== */
/*************************************/
enum {
CAM_IMX564_SET_C_1356_MHZ = 0,
CAM_IMX564_SET_C_1331_MHZ = 1,
CAM_IMX564_SET_C_1382_MHZ = 2,
CAM_IMX564_SET_C_1414_MHZ = 3,
};
struct cam_sensor_i2c_reg_array MIPI_C_1356_MHZ_REG_ARRAY[] = {
{0x030B, 0x02, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xA8, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_C_1331_MHZ_REG_ARRAY[] = {
{0x030B, 0x02, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xA0, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_C_1382_MHZ_REG_ARRAY[] = {
{0x030B, 0x02, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xB0, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_C_1414_MHZ_REG_ARRAY[] = {
{0x030B, 0x02, 0x00, 0x00},
{0x030D, 0x03, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0xBA, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_C_1356_mhz[] = {
{ MIPI_C_1356_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_1356_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_C_1331_mhz[] = {
{ MIPI_C_1331_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_1331_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_C_1382_mhz[] = {
{ MIPI_C_1382_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_1382_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_C_1414_mhz[] = {
{ MIPI_C_1414_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_1414_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx564_setfile_C_mipi_setting[] = {
{ "1356 Mhz",
sensor_imx564_setfile_C_1356_mhz, ARRAY_SIZE(sensor_imx564_setfile_C_1356_mhz) },
{ "1331 Mhz",
sensor_imx564_setfile_C_1331_mhz, ARRAY_SIZE(sensor_imx564_setfile_C_1331_mhz) },
{ "1382 Mhz",
sensor_imx564_setfile_C_1382_mhz, ARRAY_SIZE(sensor_imx564_setfile_C_1382_mhz) },
{ "1414 Mhz",
sensor_imx564_setfile_C_1414_mhz, ARRAY_SIZE(sensor_imx564_setfile_C_1414_mhz) },
};
static const struct cam_mipi_channel sensor_imx564_setfile_C_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10625, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10626, 10652, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10653, 10695, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10696, 10787, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10788, 10811, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10812, 10838, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9674, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9675, 9702, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9703, 9726, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9727, 9817, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9818, 9839, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9840, 9860, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9861, 9887, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9888, 9938, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1188, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1189, 1205, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1206, 1296, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1297, 1305, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1306, 1351, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1352, 1366, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1367, 1458, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1459, 1470, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1471, 1510, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1511, 1513, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1600, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1601, 1627, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1628, 1670, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1671, 1738, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4396, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4397, 4458, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4396, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4397, 4413, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2243, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2244, 2334, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2335, 2401, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2402, 2404, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2405, 2496, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2497, 2560, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2561, 2563, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2949, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2950, 3019, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3020, 3088, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 721, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 722, 763, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 151, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 152, 205, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 206, 291, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 292, 474, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 475, 522, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 523, 599, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 612, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 613, 649, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 650, 704, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 705, 752, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 753, 935, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 936, 978, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 979, 1021, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1022, 1075, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1076, 1199, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1276, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1277, 1310, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1311, 1493, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1494, 1511, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1512, 1602, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1603, 1633, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1634, 1816, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1817, 1841, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1842, 1920, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1921, 1949, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2101, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2102, 2155, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2156, 2241, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2242, 2399, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2502, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2503, 2649, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2786, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2787, 2969, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2970, 3103, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3104, 3109, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3110, 3292, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3293, 3420, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3421, 3432, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3433, 3449, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3498, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3499, 3638, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3639, 3799, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5080, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5081, 5179, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5220, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5221, 5279, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5750, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5751, 5849, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5902, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5903, 5999, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6042, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6043, 6149, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6246, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6247, 6386, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6387, 6449, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6599, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8052, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8053, 8089, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8090, 8144, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8145, 8192, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8193, 8375, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8376, 8418, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8419, 8461, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8462, 8515, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8516, 8689, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8752, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8753, 8892, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8893, 9039, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9313, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9314, 9453, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9454, 9636, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9637, 9659, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9667, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9668, 9769, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9782, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9783, 9794, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9795, 9869, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9952, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9953, 10007, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10008, 10190, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10191, 10254, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10255, 10330, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10331, 10359, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37823, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37824, 37963, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37964, 38146, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38147, 38249, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38256, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38257, 38439, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38440, 38470, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38471, 38537, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38538, 38579, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38580, 38649, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38656, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38657, 38839, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38840, 38857, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38858, 38979, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38980, 39162, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39163, 39174, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39175, 39302, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39303, 39485, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39486, 39491, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39492, 39625, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39626, 39649, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39817, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39818, 39957, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39958, 40140, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40141, 40280, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40281, 40463, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40464, 40603, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40604, 40786, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40787, 40926, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40927, 41109, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41110, 41243, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41244, 41249, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41250, 41432, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41433, 41560, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41561, 41572, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41573, 41589, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41763, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41764, 41880, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41881, 41903, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41904, 42086, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42087, 42207, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42208, 42226, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42227, 42409, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42410, 42524, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42525, 42549, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42550, 42732, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42733, 42738, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42739, 42841, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42842, 42872, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42873, 43055, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43056, 43067, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43068, 43158, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43159, 43195, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43196, 43378, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43379, 43396, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43397, 43475, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43476, 43518, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43519, 43589, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55308, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55309, 55345, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55346, 55528, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55529, 55546, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55547, 55625, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55626, 55668, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55669, 55851, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55852, 55875, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55876, 55942, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55943, 55991, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55992, 56174, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56175, 56204, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56205, 56259, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56260, 56314, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56315, 56497, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56498, 56534, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56535, 56576, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56577, 56637, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56638, 56739, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66587, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66588, 66641, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66642, 66727, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66728, 66910, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66911, 66958, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66959, 67050, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67051, 67233, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67234, 67275, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67276, 67335, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68623, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68624, 68806, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68807, 68825, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68826, 68935, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 175080, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 175081, 176080, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176081, 178500, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178501, 178780, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 186200, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 186201, 187760, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187761, 189130, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189131, 191420, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191421, 191980, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 146710, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 146711, 148180, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 148181, 149200, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 159120, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159121, 159810, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159811, 160860, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160861, 163160, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163161, 164180, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 153230, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153231, 154520, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154521, 156680, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156681, 157460, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157461, 159120, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159121, 159810, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159811, 160580, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124380, CAM_IMX564_SET_C_1331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124381, 125140, CAM_IMX564_SET_C_1414_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 125141, 127130, CAM_IMX564_SET_C_1356_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 127131, 129180, CAM_IMX564_SET_C_1382_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129181, 130380, CAM_IMX564_SET_C_1331_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_C_mode[] = {
{
sensor_imx564_setfile_C_channel, ARRAY_SIZE(sensor_imx564_setfile_C_channel),
sensor_imx564_setfile_C_mipi_setting, ARRAY_SIZE(sensor_imx564_setfile_C_mipi_setting)
},
};
/*************************************/
/* ========== Mode D =============== */
/*************************************/
enum {
CAM_IMX564_SET_D_3379_MHZ = 0,
CAM_IMX564_SET_D_3331_MHZ = 1,
};
struct cam_sensor_i2c_reg_array MIPI_D_3379_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x02, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0x60, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_D_3331_MHZ_REG_ARRAY[] = {
{0x030B, 0x01, 0x00, 0x00},
{0x030D, 0x02, 0x00, 0x00},
{0x030E, 0x01, 0x00, 0x00},
{0x030F, 0x5B, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_D_3379_mhz[] = {
{ MIPI_D_3379_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_D_3379_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx564_setfile_D_3331_mhz[] = {
{ MIPI_D_3331_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_D_3331_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx564_setfile_D_mipi_setting[] = {
{ "3379 Mhz",
sensor_imx564_setfile_D_3379_mhz, ARRAY_SIZE(sensor_imx564_setfile_D_3379_mhz) },
{ "3331 Mhz",
sensor_imx564_setfile_D_3331_mhz, ARRAY_SIZE(sensor_imx564_setfile_D_3331_mhz) },
};
static const struct cam_mipi_channel sensor_imx564_setfile_D_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10594, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10595, 10826, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10827, 10838, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9685, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9686, 9820, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9821, 9885, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9886, 9938, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1261, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1262, 1311, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1312, 1342, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1343, 1412, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1413, 1513, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1569, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1570, 1738, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4394, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4395, 4458, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4394, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4395, 4413, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2365, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2366, 2435, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2436, 2465, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2466, 2535, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2536, 2563, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 3023, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3024, 3088, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 719, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 720, 763, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 89, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 90, 553, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 554, 599, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 670, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 671, 941, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 942, 1070, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1071, 1199, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1423, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1424, 1523, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1524, 1585, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1586, 1725, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1726, 1949, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2039, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2040, 2399, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2497, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2498, 2649, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 3030, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3031, 3170, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3171, 3231, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3232, 3371, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3372, 3449, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3647, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3648, 3786, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3787, 3799, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5179, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5904, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5905, 5999, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6037, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6038, 6149, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6228, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6229, 6449, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6490, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6491, 6599, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8110, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8111, 8381, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8382, 8510, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8511, 8689, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8754, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8755, 8887, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8888, 9039, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9491, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9492, 9618, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9619, 9659, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9680, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9681, 9769, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10359, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36284, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36285, 36349, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37866, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37867, 38249, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38649, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38912, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38913, 39052, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39053, 39515, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39516, 39649, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39963, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39964, 40052, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40053, 40366, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40367, 40506, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40507, 41170, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41171, 41310, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41311, 41371, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41372, 41511, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41512, 41589, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41625, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41626, 41765, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41766, 42238, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42239, 42360, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42361, 42418, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42419, 42558, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42559, 43211, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43212, 43351, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43352, 43589, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55361, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55362, 55501, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55502, 55758, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55759, 55887, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55888, 56154, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56155, 56286, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56287, 56739, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66525, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66526, 66989, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66990, 67129, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67130, 67335, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68691, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68692, 68807, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68808, 68935, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 175740, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 175741, 178780, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187940, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187941, 191980, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 159760, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159761, 164140, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 164141, 164180, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 156220, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156221, 160580, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124500, CAM_IMX564_SET_D_3331_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124501, 127810, CAM_IMX564_SET_D_3379_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 127811, 130380, CAM_IMX564_SET_D_3331_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_D_mode[] = {
{
sensor_imx564_setfile_D_channel, ARRAY_SIZE(sensor_imx564_setfile_D_channel),
sensor_imx564_setfile_D_mipi_setting, ARRAY_SIZE(sensor_imx564_setfile_D_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_IMX564_H_ */

View File

@ -0,0 +1,518 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_IMX754_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_IMX754_H_
#include "cam_sensor_dev.h"
int num_tele_mipi_setting = 2;
/*
Mode A : Full mode, 2-Binning 120fps (1708.8 / 1660.8 / 1670.4)
Mode B : 2-Binning 240fps (1968 / 1900.8 / 1910.4)
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_IMX754_SET_A_FULL_1660_MHZ = 0,
CAM_IMX754_SET_A_FULL_1670_MHZ = 1,
CAM_IMX754_SET_A_FULL_1708_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1660_MHZ_REG_ARRAY[] = {
{0x030F, 0x07, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1670_MHZ_REG_ARRAY[] = {
{0x030F, 0x0A, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1708_MHZ_REG_ARRAY[] = {
{0x030F, 0x16, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx754_setfile_A_mipi_FULL_1660_mhz[] = {
{ MIPI_FULL_1660_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1660_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx754_setfile_A_mipi_FULL_1670_mhz[] = {
{ MIPI_FULL_1670_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1670_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx754_setfile_A_mipi_FULL_1708_mhz[] = {
{ MIPI_FULL_1708_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1708_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx754_setfile_A_mipi_setting_FULL[] = {
{ "1660 Mhz",
sensor_imx754_setfile_A_mipi_FULL_1660_mhz, ARRAY_SIZE(sensor_imx754_setfile_A_mipi_FULL_1660_mhz) },
{ "1670 Mhz",
sensor_imx754_setfile_A_mipi_FULL_1670_mhz, ARRAY_SIZE(sensor_imx754_setfile_A_mipi_FULL_1670_mhz) },
{ "1708 Mhz",
sensor_imx754_setfile_A_mipi_FULL_1708_mhz, ARRAY_SIZE(sensor_imx754_setfile_A_mipi_FULL_1708_mhz) },
};
static const struct cam_mipi_channel sensor_imx754_setfile_A_mipi_channel_FULL[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10588, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10589, 10757, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10758, 10820, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10821, 10829, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10830, 10838, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9808, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9809, 9874, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9875, 9938, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1221, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1222, 1285, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1286, 1429, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1430, 1483, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1484, 1513, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1563, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1564, 1732, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1733, 1738, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4377, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4378, 4426, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4427, 4458, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2255, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2256, 2330, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2331, 2492, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2493, 2563, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2964, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2965, 3088, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 751, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 752, 763, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 76, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 77, 415, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 416, 540, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 541, 558, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 559, 599, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 917, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 918, 1049, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1050, 1199, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1343, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1344, 1471, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1472, 1758, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1759, 1866, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1867, 1949, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2026, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2027, 2365, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2366, 2399, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2413, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2414, 2464, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2465, 2563, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2564, 2649, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2810, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2811, 2960, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2961, 3285, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3286, 3435, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3436, 3449, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3528, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3529, 3799, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5042, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5043, 5149, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5150, 5179, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5819, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5820, 5849, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5953, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5954, 5999, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6004, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6005, 6103, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6104, 6149, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6449, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6599, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8357, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8358, 8489, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8490, 8689, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8803, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8804, 8854, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8855, 8953, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8954, 9039, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9384, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9385, 9429, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9430, 9534, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9535, 9659, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9769, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9826, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9827, 9869, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10006, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10007, 10272, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10273, 10359, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36325, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36326, 36349, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37836, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37837, 37985, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37986, 37986, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37987, 38249, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38592, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38593, 38649, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38692, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38693, 38721, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38722, 38738, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38739, 39063, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39064, 39206, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39207, 39537, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39538, 39649, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39670, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39671, 39676, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39677, 40001, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40002, 40148, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40149, 40151, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40152, 40476, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40477, 40625, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40626, 40626, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40627, 40950, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40951, 41100, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41101, 41425, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41426, 41575, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41576, 41589, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41592, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41593, 41917, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41918, 42067, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42068, 42391, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42392, 42541, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42542, 42807, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42808, 43014, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43015, 43340, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43341, 43490, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43491, 43589, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55490, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55491, 55640, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55641, 55965, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55966, 56115, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56116, 56439, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56440, 56589, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56590, 56739, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66512, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66513, 66851, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66852, 66976, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66977, 66994, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66995, 67325, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67326, 67335, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68604, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68605, 68718, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68719, 68746, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68747, 68751, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68752, 68840, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68841, 68935, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174180, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174181, 177940, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 177941, 178780, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187420, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187421, 191980, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 158830, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158831, 163660, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163661, 164180, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 154200, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154201, 155100, CAM_IMX754_SET_A_FULL_1670_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155101, 158830, CAM_IMX754_SET_A_FULL_1708_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 158831, 160580, CAM_IMX754_SET_A_FULL_1660_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 130380, CAM_IMX754_SET_A_FULL_1708_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_A_mode[] = {
{
sensor_imx754_setfile_A_mipi_channel_FULL, ARRAY_SIZE(sensor_imx754_setfile_A_mipi_channel_FULL),
sensor_imx754_setfile_A_mipi_setting_FULL, ARRAY_SIZE(sensor_imx754_setfile_A_mipi_setting_FULL)
},
};
/*************************************/
/* ========== Mode B =============== */
/*************************************/
enum {
CAM_IMX754_SET_B_2BIN240_1900_MHZ = 0,
CAM_IMX754_SET_B_2BIN240_1910_MHZ = 1,
CAM_IMX754_SET_B_2BIN240_1968_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_2BIN240_1900_MHZ_REG_ARRAY[] = {
{0x030F, 0x52, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_2BIN240_1910_MHZ_REG_ARRAY[] = {
{0x030F, 0x55, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_2BIN240_1968_MHZ_REG_ARRAY[] = {
{0x030F, 0x67, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_imx754_setfile_B_mipi_2BIN240_1900_mhz[] = {
{ MIPI_2BIN240_1900_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_2BIN240_1900_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx754_setfile_B_mipi_2BIN240_1910_mhz[] = {
{ MIPI_2BIN240_1910_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_2BIN240_1910_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_imx754_setfile_B_mipi_2BIN240_1968_mhz[] = {
{ MIPI_2BIN240_1968_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_2BIN240_1968_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_BYTE, 0 }
};
static const struct cam_mipi_setting sensor_imx754_setfile_B_mipi_setting_2BIN240[] = {
{ "1900 Mhz",
sensor_imx754_setfile_B_mipi_2BIN240_1900_mhz, ARRAY_SIZE(sensor_imx754_setfile_B_mipi_2BIN240_1900_mhz) },
{ "1910 Mhz",
sensor_imx754_setfile_B_mipi_2BIN240_1910_mhz, ARRAY_SIZE(sensor_imx754_setfile_B_mipi_2BIN240_1910_mhz) },
{ "1968 Mhz",
sensor_imx754_setfile_B_mipi_2BIN240_1968_mhz, ARRAY_SIZE(sensor_imx754_setfile_B_mipi_2BIN240_1968_mhz) },
};
static const struct cam_mipi_channel sensor_imx754_setfile_B_mipi_channel_2BIN240[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10654, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10655, 10708, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10709, 10763, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10764, 10838, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9873, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9874, 9923, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9924, 9938, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1184, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1185, 1245, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1246, 1455, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1456, 1503, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1504, 1513, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1629, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1630, 1683, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1684, 1738, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4442, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4443, 4458, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2257, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2258, 2296, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2297, 2323, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2324, 2332, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2333, 2528, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2529, 2563, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 3014, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3015, 3038, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3039, 3088, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 763, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 208, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 209, 316, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 317, 426, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 427, 599, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 601, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 602, 639, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 640, 1047, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1048, 1147, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1148, 1192, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1193, 1199, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1268, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1269, 1389, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1390, 1811, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1812, 1906, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1907, 1949, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2158, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2159, 2266, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2267, 2376, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2377, 2399, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2595, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2596, 2641, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2642, 2649, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2814, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2815, 2892, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2893, 2947, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2948, 2964, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2965, 3357, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3358, 3449, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3628, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3629, 3676, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3677, 3778, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3779, 3799, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5013, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5014, 5075, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5076, 5179, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5999, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6135, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6136, 6149, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6189, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6190, 6449, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6500, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6501, 6599, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8041, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8042, 8079, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8080, 8487, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8488, 8587, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8588, 8632, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8633, 8689, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8985, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8986, 9031, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9032, 9039, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9429, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9430, 9469, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9470, 9579, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9580, 9659, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9692, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9693, 9746, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9747, 9769, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9819, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9820, 9869, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10259, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10260, 10359, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37771, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37772, 37901, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37902, 37921, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37922, 38110, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38111, 38249, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38382, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38383, 38478, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38479, 38532, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38533, 38649, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38656, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38657, 38772, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38773, 38806, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38807, 39199, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39200, 39318, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39319, 39478, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39479, 39649, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39868, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39869, 39996, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39997, 40018, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40019, 40411, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40412, 40541, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40542, 40561, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40562, 40750, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40751, 40891, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40892, 40954, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40955, 41032, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41033, 41087, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41088, 41104, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41105, 41497, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41498, 41589, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41607, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41608, 42000, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42001, 42150, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42151, 42544, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42545, 42694, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42695, 43087, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43088, 43286, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43287, 43589, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55436, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55437, 55780, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55781, 55930, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55931, 56323, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56324, 56473, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56474, 56739, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66644, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66645, 66752, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66753, 66862, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66863, 67255, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67256, 67335, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68586, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68587, 68618, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68619, 68736, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68737, 68935, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 176800, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176801, 177720, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 177721, 178780, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187660, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187661, 188620, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 188621, 191980, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 159880, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159881, 164180, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 155080, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155081, 155880, CAM_IMX754_SET_B_2BIN240_1910_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155881, 159880, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159881, 160580, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 127100, CAM_IMX754_SET_B_2BIN240_1968_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 127101, 130380, CAM_IMX754_SET_B_2BIN240_1900_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_B_mode[] = {
{
sensor_imx754_setfile_B_mipi_channel_2BIN240, ARRAY_SIZE(sensor_imx754_setfile_B_mipi_channel_2BIN240),
sensor_imx754_setfile_B_mipi_setting_2BIN240, ARRAY_SIZE(sensor_imx754_setfile_B_mipi_setting_2BIN240)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_TELE_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_TELE_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_tele_setfile_dummy_mhz[] = {
{ MIPI_TELE_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_TELE_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_tele_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_tele_setfile_dummy_mhz, ARRAY_SIZE(sensor_tele_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_tele_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_TELE_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_C_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_D_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_IMX754_H_ */

View File

@ -0,0 +1,259 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_S5K2LD_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_S5K2LD_H_
#include "cam_sensor_dev.h"
int num_wide_mipi_setting = 1;
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_S5K2LD_SET_A_FULL_3142_MHZ = 0,
CAM_S5K2LD_SET_A_FULL_3232_MHZ = 1,
};
struct cam_sensor_i2c_reg_array MIPI_FULL_3142_MHZ_REG_ARRAY[] = {
{0x0310, 0x01EB, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_3232_MHZ_REG_ARRAY[] = {
{0x0310, 0x01F9, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k2ld_setfile_A_mipi_FULL_3142_mhz[] = {
{ MIPI_FULL_3142_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_3142_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k2ld_setfile_A_mipi_FULL_3232_mhz[] = {
{ MIPI_FULL_3232_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_3232_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5k2ld_setfile_A_mipi_setting_FULL[] = {
{ "3142 Mhz",
sensor_s5k2ld_setfile_A_mipi_FULL_3142_mhz, ARRAY_SIZE(sensor_s5k2ld_setfile_A_mipi_FULL_3142_mhz) },
{ "3232 Mhz",
sensor_s5k2ld_setfile_A_mipi_FULL_3232_mhz, ARRAY_SIZE(sensor_s5k2ld_setfile_A_mipi_FULL_3232_mhz) },
};
static const struct cam_mipi_channel sensor_s5k2ld_setfile_A_mipi_channel_FULL[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10735, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10736, 10787, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10788, 10838, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9744, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9745, 9791, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9792, 9938, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1177, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1178, 1252, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1253, 1324, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1325, 1396, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1397, 1513, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1710, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1711, 1738, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4414, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4415, 4458, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2292, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2293, 2563, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2954, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2955, 2975, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2976, 3050, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3051, 3088, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 739, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 740, 763, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 371, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 372, 475, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 476, 599, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 613, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 614, 789, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 790, 883, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 884, 1199, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1254, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1255, 1404, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1405, 1549, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1550, 1693, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1694, 1929, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1930, 1949, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2321, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2322, 2399, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2538, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2539, 2649, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2884, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2885, 3449, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3509, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3510, 3551, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3552, 3701, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3702, 3799, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5051, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5052, 5179, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5320, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5321, 5379, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5928, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5929, 5999, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6078, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6079, 6149, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6244, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6245, 6394, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6395, 6449, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6599, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8053, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8054, 8229, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8230, 8323, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8324, 8672, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8673, 8689, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8778, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8779, 8928, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8929, 9039, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9250, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9251, 9400, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9401, 9634, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9635, 9659, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9769, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9770, 9945, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9946, 10095, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10096, 10138, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10139, 10288, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10289, 10359, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36224, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36225, 36349, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 38138, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38139, 38249, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38369, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38370, 38613, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38614, 38649, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38660, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38661, 38789, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38790, 39141, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39142, 39217, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39218, 39430, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39431, 39549, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39550, 39649, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39678, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39679, 40009, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40010, 40106, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40107, 40249, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40250, 40351, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40352, 40778, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40779, 40876, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40877, 40910, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40911, 41455, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41456, 41589, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41707, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41708, 41968, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41969, 42081, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42082, 42253, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42254, 42362, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42363, 42679, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42680, 42829, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42830, 42867, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42868, 42965, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42966, 43428, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43429, 43589, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55578, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55579, 55821, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55822, 56326, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56327, 56476, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56477, 56739, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66807, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66808, 66911, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66912, 67335, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68647, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68648, 68935, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 177310, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 177311, 178780, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 190920, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190921, 191980, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 159340, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159341, 163090, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163091, 164180, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 155500, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155501, 159340, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159341, 160580, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_321_NR5G_N066), 422000, 440000, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 125520, CAM_S5K2LD_SET_A_FULL_3142_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 125521, 130380, CAM_S5K2LD_SET_A_FULL_3232_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_A_mode[] = {
{
sensor_s5k2ld_setfile_A_mipi_channel_FULL, ARRAY_SIZE(sensor_s5k2ld_setfile_A_mipi_channel_FULL),
sensor_s5k2ld_setfile_A_mipi_setting_FULL, ARRAY_SIZE(sensor_s5k2ld_setfile_A_mipi_setting_FULL)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_WIDE_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_WIDE_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_wide_setfile_dummy_mhz[] = {
{ MIPI_WIDE_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_WIDE_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_wide_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_wide_setfile_dummy_mhz, ARRAY_SIZE(sensor_wide_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_wide_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_WIDE_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_B_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_C_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_D_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_S5K2LD_H_ */

View File

@ -0,0 +1,623 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_S5K3J1_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_S5K3J1_H_
#include "cam_sensor_dev.h"
int num_front_mipi_setting = 2;
/*
SET A : Other
SET B : M3 4k 60fps
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_S5K3J1_SET_A_all_992_MHZ = 0,
CAM_S5K3J1_SET_A_all_995_MHZ = 1,
CAM_S5K3J1_SET_A_all_956_MHZ = 2,
CAM_S5K3J1_SET_A_all_950_MHZ = 3
};
struct cam_sensor_i2c_reg_array MIPI_ALL_992_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x0136, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_ALL_995_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x0137, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_ALL_956_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x012B, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_ALL_950_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x0129, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_A_mipi_all_992_mhz[] = {
{ MIPI_ALL_992_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_992_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_A_mipi_all_995_mhz[] = {
{ MIPI_ALL_995_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_995_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_A_mipi_all_956_mhz[] = {
{ MIPI_ALL_956_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_956_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_A_mipi_all_950_mhz[] = {
{ MIPI_ALL_950_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_950_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5k3j1_setfile_A_mipi_setting_ALL[] = {
{ "992 Mhz",
sensor_s5k3j1_setfile_A_mipi_all_992_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_A_mipi_all_992_mhz) },
{ "995 Mhz",
sensor_s5k3j1_setfile_A_mipi_all_995_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_A_mipi_all_995_mhz) },
{ "956 Mhz",
sensor_s5k3j1_setfile_A_mipi_all_956_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_A_mipi_all_956_mhz) },
{ "950 Mhz",
sensor_s5k3j1_setfile_A_mipi_all_950_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_A_mipi_all_950_mhz) },
};
static const struct cam_mipi_channel sensor_s5k3j1_setfile_A_mipi_channel_ALL[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10654, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10655, 10726, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10727, 10729, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10730, 10838, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9665, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9666, 9704, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9705, 9709, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9710, 9740, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9741, 9759, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9760, 9769, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9770, 9779, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9780, 9938, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1293, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1294, 1338, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1339, 1368, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1369, 1423, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1424, 1462, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1463, 1492, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1493, 1513, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1629, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1630, 1701, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1702, 1704, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1705, 1738, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4377, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4378, 4391, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4392, 4440, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4441, 4458, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4391, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4392, 4413, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2273, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2274, 2306, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2307, 2348, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2349, 2522, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2523, 2554, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2555, 2563, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2989, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2990, 3048, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3049, 3064, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3065, 3088, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 716, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 717, 763, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 208, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 209, 352, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 353, 358, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 359, 599, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 631, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 632, 708, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 709, 718, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 719, 781, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 782, 819, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 820, 839, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 840, 858, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 859, 1183, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1184, 1199, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1486, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1487, 1576, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1577, 1636, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1637, 1746, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1747, 1824, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1825, 1884, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1885, 1949, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2158, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2159, 2302, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2303, 2308, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2309, 2399, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2464, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2465, 2492, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2493, 2591, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2592, 2649, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2847, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2848, 2912, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2913, 2997, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2998, 3345, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3346, 3408, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3409, 3449, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3579, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3580, 3695, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3696, 3729, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3730, 3799, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5108, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5109, 5179, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5234, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5235, 5258, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5259, 5279, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5778, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5779, 5849, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5882, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5883, 5936, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5937, 5999, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6004, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6005, 6032, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6033, 6131, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6132, 6149, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6250, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6251, 6276, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6277, 6449, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6493, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6494, 6599, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8071, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8072, 8148, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8149, 8158, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8159, 8221, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8222, 8259, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8260, 8279, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8280, 8298, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8299, 8623, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8624, 8689, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8732, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8733, 8786, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8787, 8854, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8855, 8882, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8883, 8981, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8982, 9039, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9516, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9517, 9640, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9641, 9659, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9769, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9927, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9928, 10204, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10205, 10252, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10253, 10305, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10306, 10354, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10355, 10359, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36221, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36222, 36267, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36268, 36349, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37850, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37851, 37916, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37917, 38000, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38001, 38098, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38099, 38164, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38165, 38248, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38249, 38249, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38283, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38284, 38372, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38373, 38433, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38434, 38649, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38859, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38860, 39009, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39010, 39334, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39335, 39494, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39495, 39644, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39645, 39649, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39992, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39993, 40060, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40061, 40142, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40143, 40490, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40491, 40556, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40557, 40640, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40641, 40738, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40739, 40804, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40805, 40888, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40889, 40987, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40988, 41052, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41053, 41137, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41138, 41485, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41486, 41548, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41549, 41589, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41739, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41740, 41849, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41850, 41889, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41890, 42235, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42236, 42348, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42349, 42385, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42386, 42497, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42498, 42844, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42845, 42881, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42882, 42994, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42995, 43342, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43343, 43377, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43378, 43475, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43476, 43492, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43493, 43589, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55492, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55493, 55527, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55528, 55625, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55626, 55642, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55643, 55741, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55742, 55775, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55776, 55873, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55874, 55891, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55892, 55989, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55990, 56023, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56024, 56139, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56140, 56487, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56488, 56510, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56511, 56637, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56638, 56739, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66644, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66645, 66788, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66789, 66794, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66795, 67120, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67121, 67267, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67268, 67270, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67271, 67335, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68690, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68691, 68710, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68711, 68809, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68810, 68935, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174620, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174621, 175980, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 175981, 176140, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176141, 176540, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176541, 176720, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176721, 178780, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 186680, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 186681, 189900, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189901, 191480, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191481, 191980, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 146860, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 146861, 149200, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 160670, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160671, 161620, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 161621, 164180, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 151660, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151661, 156820, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156821, 160580, CAM_S5K3J1_SET_A_all_956_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 126380, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126381, 126540, CAM_S5K3J1_SET_A_all_992_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126541, 126780, CAM_S5K3J1_SET_A_all_950_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126781, 126960, CAM_S5K3J1_SET_A_all_995_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126961, 130380, CAM_S5K3J1_SET_A_all_956_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_A_mode[] = {
{
sensor_s5k3j1_setfile_A_mipi_channel_ALL, ARRAY_SIZE(sensor_s5k3j1_setfile_A_mipi_channel_ALL),
sensor_s5k3j1_setfile_A_mipi_setting_ALL, ARRAY_SIZE(sensor_s5k3j1_setfile_A_mipi_setting_ALL)
},
};
/*************************************/
/* ========== Mode B =============== */
/*************************************/
enum {
CAM_S5K3J1_SET_B_all_1196_MHZ = 0,
CAM_S5K3J1_SET_B_all_1011_MHZ = 1,
CAM_S5K3J1_SET_B_all_1139_MHZ = 2,
CAM_S5K3J1_SET_B_all_1094_MHZ = 3
};
struct cam_sensor_i2c_reg_array MIPI_ALL_1196_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x00BB, 0x00, 0x00},
{0x0312, 0x0000, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_ALL_1011_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x013C, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_ALL_1139_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x00B2, 0x00, 0x00},
{0x0312, 0x0000, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_ALL_1094_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x0156, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_B_mipi_all_1196_mhz[] = {
{ MIPI_ALL_1196_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_1196_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_B_mipi_all_1011_mhz[] = {
{ MIPI_ALL_1011_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_1011_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_B_mipi_all_1139_mhz[] = {
{ MIPI_ALL_1139_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_1139_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3j1_setfile_B_mipi_all_1094_mhz[] = {
{ MIPI_ALL_1094_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_ALL_1094_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5k3j1_setfile_B_mipi_setting_ALL[] = {
{ "1196 Mhz",
sensor_s5k3j1_setfile_B_mipi_all_1196_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_B_mipi_all_1196_mhz) },
{ "1011 Mhz",
sensor_s5k3j1_setfile_B_mipi_all_1011_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_B_mipi_all_1011_mhz) },
{ "1139 Mhz",
sensor_s5k3j1_setfile_B_mipi_all_1139_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_B_mipi_all_1139_mhz) },
{ "1094 Mhz",
sensor_s5k3j1_setfile_B_mipi_all_1094_mhz, ARRAY_SIZE(sensor_s5k3j1_setfile_B_mipi_all_1094_mhz) },
};
static const struct cam_mipi_channel sensor_s5k3j1_setfile_B_mipi_channel_ALL[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10733, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10734, 10781, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10782, 10808, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10809, 10838, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9686, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9687, 9761, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9762, 9836, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9837, 9896, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9897, 9911, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9912, 9938, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1362, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1363, 1437, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1438, 1513, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1708, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1709, 1738, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4450, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4451, 4458, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2258, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2259, 2308, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2309, 2327, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2328, 2551, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2552, 2560, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2561, 2563, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 3049, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3050, 3065, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3066, 3088, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 367, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 368, 462, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 463, 517, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 518, 599, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 672, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 673, 822, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 823, 972, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 973, 1093, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1094, 1122, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1123, 1199, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1625, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1626, 1775, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1776, 1949, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2317, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2318, 2399, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2610, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2611, 2632, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2633, 2649, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2815, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2816, 2916, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2917, 2954, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2955, 3402, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3403, 3421, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3422, 3449, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3699, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3700, 3731, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3732, 3799, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5124, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5125, 5179, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5228, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5229, 5274, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5275, 5279, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5794, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5795, 5849, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5999, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6149, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6449, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6525, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6526, 6599, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8112, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8113, 8262, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8263, 8412, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8413, 8533, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8534, 8562, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8563, 8689, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 9000, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9001, 9022, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9023, 9039, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9334, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9335, 9484, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9485, 9659, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9745, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9746, 9769, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10284, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10285, 10359, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37760, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37761, 37856, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37857, 38249, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38523, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38524, 38587, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38588, 38649, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38912, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38913, 38954, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38955, 38982, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38983, 39062, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39063, 39510, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39511, 39590, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39591, 39648, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39649, 39649, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39747, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39748, 39894, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39895, 39897, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39898, 40046, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40047, 40196, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40197, 40346, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40347, 40400, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40401, 40496, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40497, 40955, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40956, 41056, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41057, 41094, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41095, 41542, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41543, 41561, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41562, 41589, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41623, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41624, 41643, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41644, 41691, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41692, 41744, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41745, 41923, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41924, 42045, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42046, 42073, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42074, 42222, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42223, 42372, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42373, 42820, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42821, 42907, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42908, 42970, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42971, 43419, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43420, 43549, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43550, 43562, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43563, 43569, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43570, 43589, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55569, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55570, 55699, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55700, 55712, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55713, 55719, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55720, 56167, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56168, 56218, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56219, 56317, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56318, 56739, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66803, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66804, 66898, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66899, 66953, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66954, 67335, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68923, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68924, 68935, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5K3J1_SET_B_all_1011_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 177100, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 177101, 178780, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 189080, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189081, 191980, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 146000, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 146001, 147180, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147181, 149200, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 164180, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 151980, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151981, 153180, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153181, 157080, CAM_S5K3J1_SET_B_all_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157081, 157980, CAM_S5K3J1_SET_B_all_1094_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157981, 160580, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 129240, CAM_S5K3J1_SET_B_all_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129241, 130380, CAM_S5K3J1_SET_B_all_1139_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_B_mode[] = {
{
sensor_s5k3j1_setfile_B_mipi_channel_ALL, ARRAY_SIZE(sensor_s5k3j1_setfile_B_mipi_channel_ALL),
sensor_s5k3j1_setfile_B_mipi_setting_ALL, ARRAY_SIZE(sensor_s5k3j1_setfile_B_mipi_setting_ALL)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_FRONT_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_FRONT_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_front_setfile_dummy_mhz[] = {
{ MIPI_FRONT_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FRONT_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_front_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_front_setfile_dummy_mhz, ARRAY_SIZE(sensor_front_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_front_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_FRONT_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_C_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_D_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_S5K3J1_H_ */

View File

@ -0,0 +1,302 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_S5K3K1_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_S5K3K1_H_
#include "cam_sensor_dev.h"
int num_tele_mipi_setting = 1;
/*
Mode A : Full mode, 2-Binning (1152 / 1196.8 / 1139.2)
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_S5K3K1_SET_A_FULL_1152_MHZ = 0,
CAM_S5K3K1_SET_A_FULL_1196_MHZ = 1,
CAM_S5K3K1_SET_A_FULL_1139_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1152_MHZ_REG_ARRAY[] = {
{0x0310, 0x00B4, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1196_MHZ_REG_ARRAY[] = {
{0x0310, 0x00BB, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_FULL_1139_MHZ_REG_ARRAY[] = {
{0x0310, 0x00B2, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3k1_setfile_A_mipi_FULL_1152_mhz[] = {
{ MIPI_FULL_1152_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1152_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3k1_setfile_A_mipi_FULL_1196_mhz[] = {
{ MIPI_FULL_1196_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1196_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3k1_setfile_A_mipi_FULL_1139_mhz[] = {
{ MIPI_FULL_1139_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FULL_1139_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5k3k1_setfile_A_mipi_setting_FULL[] = {
{ "1152 Mhz",
sensor_s5k3k1_setfile_A_mipi_FULL_1152_mhz, ARRAY_SIZE(sensor_s5k3k1_setfile_A_mipi_FULL_1152_mhz) },
{ "1196 Mhz",
sensor_s5k3k1_setfile_A_mipi_FULL_1196_mhz, ARRAY_SIZE(sensor_s5k3k1_setfile_A_mipi_FULL_1196_mhz) },
{ "1139 Mhz",
sensor_s5k3k1_setfile_A_mipi_FULL_1139_mhz, ARRAY_SIZE(sensor_s5k3k1_setfile_A_mipi_FULL_1139_mhz) },
};
static const struct cam_mipi_channel sensor_s5k3k1_setfile_A_mipi_channel_FULL[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10597, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10598, 10618, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10619, 10693, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10694, 10838, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9754, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9755, 9829, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9830, 9938, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1207, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1208, 1282, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1283, 1303, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1304, 1362, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1363, 1378, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1379, 1513, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1572, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1573, 1593, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1594, 1668, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1669, 1738, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4458, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2335, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2336, 2410, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2411, 2527, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2528, 2551, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2552, 2563, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2945, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2946, 3073, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3074, 3088, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 763, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 94, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 95, 136, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 137, 286, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 287, 599, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 808, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 809, 958, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 959, 1199, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1314, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1315, 1464, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1465, 1506, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1507, 1625, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1626, 1656, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1657, 1949, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2044, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2045, 2086, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2087, 2236, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2237, 2399, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2424, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2425, 2649, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2970, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2971, 3120, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3121, 3354, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3355, 3402, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3403, 3449, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3490, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3491, 3746, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3747, 3799, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5132, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5133, 5179, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5304, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5305, 5379, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5802, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5803, 5849, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5964, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5965, 5999, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6149, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6259, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6260, 6293, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6294, 6378, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6379, 6449, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6525, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6526, 6541, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6542, 6599, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8248, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8249, 8398, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8399, 8689, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8814, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8815, 9039, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9234, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9235, 9334, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9335, 9384, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9385, 9659, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9769, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9810, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9811, 9869, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10300, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10301, 10359, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36335, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36336, 36349, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37894, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37895, 37905, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37906, 38044, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38045, 38249, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38428, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38429, 38523, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38524, 38532, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38533, 38574, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38575, 38649, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38663, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38664, 38764, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38765, 39190, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39191, 39340, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39341, 39611, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39612, 39649, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39688, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39689, 39724, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39725, 39958, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39959, 40108, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40109, 40534, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40535, 40545, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40546, 40684, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40685, 41110, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41111, 41260, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41261, 41494, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41495, 41542, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41543, 41589, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41623, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41624, 41649, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41650, 42075, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42076, 42222, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42223, 42225, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42226, 42651, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42652, 42801, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42802, 43035, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43036, 43185, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43186, 43227, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43228, 43377, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43378, 43589, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55335, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55336, 55377, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55378, 55527, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55528, 55953, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55954, 56103, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56104, 56145, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56146, 56218, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56219, 56295, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56296, 56529, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56530, 56566, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56567, 56679, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56680, 56739, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66530, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66531, 66572, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66573, 66722, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66723, 67148, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67149, 67224, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67225, 67298, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67299, 67335, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68676, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68677, 68826, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68827, 68935, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 175180, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 175181, 178780, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 186700, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 186701, 191980, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 147340, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147341, 149200, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 160370, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160371, 161960, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 161961, 163660, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163661, 164180, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 153730, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153731, 155980, CAM_S5K3K1_SET_A_FULL_1139_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155981, 160580, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124300, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124301, 129100, CAM_S5K3K1_SET_A_FULL_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129101, 130380, CAM_S5K3K1_SET_A_FULL_1152_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_A_mode[] = {
{
sensor_s5k3k1_setfile_A_mipi_channel_FULL, ARRAY_SIZE(sensor_s5k3k1_setfile_A_mipi_channel_FULL),
sensor_s5k3k1_setfile_A_mipi_setting_FULL, ARRAY_SIZE(sensor_s5k3k1_setfile_A_mipi_setting_FULL)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_TELE_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_TELE_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_tele_setfile_dummy_mhz[] = {
{ MIPI_TELE_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_TELE_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_tele_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_tele_setfile_dummy_mhz, ARRAY_SIZE(sensor_tele_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_tele_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_TELE_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_B_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_C_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_D_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_S5K3K1_H_ */

View File

@ -0,0 +1,734 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_S5K3LU_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_S5K3LU_H_
#include "cam_sensor_dev.h"
int num_front_mipi_setting = 2;
/*
3LU_220830
Mode A : no-bin (10/12bit) (1862.4 / 1849.6 / 1811.2)
Mode B : FastAE/SM 2x2 bin (10bit) (1164.8 / 1062.4 / 1116.8 / 1196.8)
Mode C : Min power 2x2 bin + skipping (10bit) (478.4 / 462.4 / 451.2 / 419.2)
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_S5K3LU_SET_A_1862_MHZ = 0,
CAM_S5K3LU_SET_A_1849_MHZ = 1,
CAM_S5K3LU_SET_A_1811_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_SET_A_1862_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x0123, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_SET_A_1849_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x0121, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_SET_A_1811_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x011B, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3lu_setfile_A_mipi_1862_mhz[] = {
{ MIPI_SET_A_1862_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_SET_A_1862_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3lu_setfile_A_mipi_1849_mhz[] = {
{ MIPI_SET_A_1849_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_SET_A_1849_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3lu_setfile_A_mipi_1811_mhz[] = {
{ MIPI_SET_A_1811_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_SET_A_1811_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5k3lu_setfile_A_mipi_setting[] = {
{ "1862 Msps",
sensor_s5k3lu_setfile_A_mipi_1862_mhz, ARRAY_SIZE(sensor_s5k3lu_setfile_A_mipi_1862_mhz) },
{ "1849 Msps",
sensor_s5k3lu_setfile_A_mipi_1849_mhz, ARRAY_SIZE(sensor_s5k3lu_setfile_A_mipi_1849_mhz) },
{ "1811 Msps",
sensor_s5k3lu_setfile_A_mipi_1811_mhz, ARRAY_SIZE(sensor_s5k3lu_setfile_A_mipi_1811_mhz) },
};
static const struct cam_mipi_channel sensor_s5k3lu_setfile_A_mipi_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10600, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10601, 10745, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10746, 10754, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10755, 10815, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10816, 10838, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9695, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9696, 9737, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9738, 9775, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9776, 9845, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9846, 9883, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9884, 9938, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1184, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1185, 1250, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1251, 1308, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1309, 1361, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1362, 1404, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1405, 1431, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1432, 1513, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1575, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1576, 1720, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1721, 1729, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1730, 1738, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4399, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4400, 4438, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4439, 4458, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4399, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4400, 4413, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2242, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2243, 2261, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2262, 2326, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2327, 2366, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2367, 2458, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2459, 2521, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2522, 2528, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2529, 2563, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2958, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2959, 2990, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2991, 3088, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 724, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 725, 763, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 100, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 101, 391, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 392, 408, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 409, 531, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 532, 599, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 691, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 692, 775, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 776, 851, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 852, 991, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 992, 1066, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1067, 1186, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1187, 1199, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1268, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1269, 1400, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1401, 1517, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1518, 1623, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1624, 1709, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1710, 1763, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1764, 1946, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1947, 1949, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2050, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2051, 2341, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2342, 2358, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2359, 2399, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2508, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2509, 2587, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2588, 2648, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2649, 2649, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2785, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2786, 2822, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2823, 2953, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2954, 3033, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3034, 3216, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3217, 3343, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3344, 3356, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3357, 3449, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3517, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3518, 3581, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3582, 3799, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5179, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5188, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5189, 5236, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5237, 5279, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5308, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5309, 5379, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5855, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5856, 5999, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6048, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6049, 6127, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6128, 6149, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6151, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6152, 6236, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6237, 6291, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6292, 6449, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6497, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6498, 6524, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6525, 6599, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8131, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8132, 8215, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8216, 8291, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8292, 8431, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8432, 8506, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8507, 8626, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8627, 8646, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8647, 8689, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8705, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8706, 8898, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8899, 8977, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8978, 9038, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9039, 9039, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9238, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9239, 9319, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9320, 9364, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9365, 9459, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9460, 9541, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9542, 9626, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9627, 9659, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9769, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9963, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9964, 10052, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10053, 10213, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10214, 10359, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36322, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36323, 36349, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37778, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37779, 37854, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37855, 37962, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37963, 37994, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37995, 38249, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38316, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38317, 38452, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38453, 38494, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38495, 38649, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38866, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38867, 38960, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38961, 39060, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39061, 39114, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39115, 39298, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39299, 39360, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39361, 39438, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39439, 39649, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39721, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39722, 39771, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39772, 40063, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40064, 40203, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40204, 40290, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40291, 40418, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40419, 40494, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40495, 40602, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40603, 40634, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40635, 40925, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40926, 40962, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40963, 41093, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41094, 41173, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41174, 41356, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41357, 41483, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41484, 41496, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41497, 41589, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41664, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41665, 41804, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41805, 42107, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42108, 42200, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42201, 42241, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42242, 42440, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42441, 42450, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42451, 42690, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42691, 43052, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43053, 43134, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43135, 43216, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43217, 43321, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43322, 43356, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43357, 43437, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43438, 43577, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43578, 43589, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55284, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55285, 55366, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55367, 55471, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55472, 55506, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55507, 55587, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55588, 55727, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55728, 56031, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56032, 56221, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56222, 56282, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56283, 56474, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56475, 56648, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56649, 56739, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66536, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66537, 66827, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66828, 66844, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66845, 66967, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66968, 67151, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67152, 67285, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67286, 67335, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68651, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68652, 68693, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68694, 68935, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174960, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174961, 178540, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178541, 178780, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187340, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187341, 188620, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 188621, 191980, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 160920, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160921, 162020, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 162021, 164180, CAM_S5K3LU_SET_A_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 160580, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 125700, CAM_S5K3LU_SET_A_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 125701, 126540, CAM_S5K3LU_SET_A_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126541, 130380, CAM_S5K3LU_SET_A_1862_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_A_mode[] = {
{
sensor_s5k3lu_setfile_A_mipi_channel, ARRAY_SIZE(sensor_s5k3lu_setfile_A_mipi_channel),
sensor_s5k3lu_setfile_A_mipi_setting, ARRAY_SIZE(sensor_s5k3lu_setfile_A_mipi_setting)
},
};
/*************************************/
/* ========== Mode B =============== */
/*************************************/
enum {
CAM_S5K3LU_SET_B_1164_MHZ = 0,
CAM_S5K3LU_SET_B_1062_MHZ = 1,
CAM_S5K3LU_SET_B_1116_MHZ = 2,
CAM_S5K3LU_SET_B_1196_MHZ = 3,
};
struct cam_sensor_i2c_reg_array MIPI_SET_B_1164_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x00B6, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_SET_B_1062_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x014C, 0x00, 0x00},
{0x0312, 0x0002, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_SET_B_1116_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x015D, 0x00, 0x00},
{0x0312, 0x0002, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_SET_B_1196_MHZ_REG_ARRAY[] = {
{0x030E, 0x0003, 0x00, 0x00},
{0x0310, 0x00BB, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3lu_setfile_B_mipi_1164_mhz[] = {
{ MIPI_SET_B_1164_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_SET_B_1164_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3lu_setfile_B_mipi_1062_mhz[] = {
{ MIPI_SET_B_1062_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_SET_B_1062_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3lu_setfile_B_mipi_1116_mhz[] = {
{ MIPI_SET_B_1116_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_SET_B_1116_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5k3lu_setfile_B_mipi_1196_mhz[] = {
{ MIPI_SET_B_1196_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_SET_B_1196_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5k3lu_setfile_B_mipi_setting[] = {
{ "1164 Msps",
sensor_s5k3lu_setfile_B_mipi_1164_mhz, ARRAY_SIZE(sensor_s5k3lu_setfile_B_mipi_1164_mhz) },
{ "1062 Msps",
sensor_s5k3lu_setfile_B_mipi_1062_mhz, ARRAY_SIZE(sensor_s5k3lu_setfile_B_mipi_1062_mhz) },
{ "1116 Msps",
sensor_s5k3lu_setfile_B_mipi_1116_mhz, ARRAY_SIZE(sensor_s5k3lu_setfile_B_mipi_1116_mhz) },
{ "1196 Msps",
sensor_s5k3lu_setfile_B_mipi_1196_mhz, ARRAY_SIZE(sensor_s5k3lu_setfile_B_mipi_1196_mhz) },
};
static const struct cam_mipi_channel sensor_s5k3lu_setfile_B_mipi_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10573, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10574, 10642, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10643, 10654, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10655, 10712, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10713, 10780, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10781, 10785, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10786, 10838, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9671, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9672, 9713, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9714, 9740, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9741, 9741, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9742, 9810, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9811, 9848, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9849, 9873, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9874, 9880, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9881, 9938, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1173, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1174, 1241, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1242, 1265, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1266, 1311, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1312, 1380, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1381, 1392, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1393, 1449, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1450, 1450, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1451, 1513, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1548, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1549, 1617, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1618, 1629, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1630, 1687, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1688, 1738, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4412, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4413, 4458, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2265, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2266, 2313, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2314, 2333, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2334, 2406, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2407, 2439, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2440, 2471, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2472, 2546, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2547, 2563, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2984, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2985, 3014, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3015, 3049, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3050, 3088, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 737, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 738, 763, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 47, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 48, 184, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 185, 209, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 210, 324, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 325, 461, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 462, 470, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 471, 583, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 584, 599, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 643, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 644, 727, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 728, 781, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 782, 783, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 784, 920, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 921, 996, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 997, 1046, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1047, 1060, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1061, 1197, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1198, 1199, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1246, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1247, 1383, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1384, 1430, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1431, 1523, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1524, 1661, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1662, 1685, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1686, 1798, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1799, 1801, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1802, 1938, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1939, 1949, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 1997, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1998, 2134, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2135, 2159, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2160, 2274, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2275, 2399, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2534, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2535, 2633, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2634, 2649, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2831, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2832, 2927, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2928, 2966, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2967, 3112, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3113, 3179, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3180, 3243, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3244, 3393, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3394, 3432, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3433, 3449, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3568, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3569, 3629, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3630, 3699, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3700, 3799, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5137, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5138, 5179, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5238, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5239, 5277, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5278, 5279, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5807, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5808, 5849, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5917, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5918, 5999, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6074, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6075, 6149, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6212, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6213, 6276, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6277, 6352, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6353, 6449, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6451, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6452, 6485, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6486, 6536, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6537, 6599, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8083, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8084, 8167, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8168, 8221, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8222, 8223, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8224, 8360, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8361, 8436, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8437, 8486, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8487, 8500, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8501, 8637, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8638, 8689, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8767, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8768, 8924, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8925, 9023, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9024, 9039, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9325, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9326, 9401, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9402, 9411, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9412, 9465, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9466, 9602, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9603, 9659, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9755, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9756, 9769, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9773, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9774, 9864, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9865, 9869, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10028, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10029, 10094, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10095, 10141, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10142, 10168, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10169, 10305, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10306, 10359, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37771, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37772, 37781, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37782, 37911, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37912, 38050, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38051, 38174, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38175, 38189, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38190, 38249, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38351, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38352, 38378, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38379, 38515, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38516, 38608, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38609, 38649, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38726, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38727, 38875, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38876, 38985, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38986, 39015, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39016, 39153, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39154, 39244, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39245, 39293, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39294, 39430, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39431, 39497, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39498, 39570, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39571, 39649, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39662, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39663, 39707, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39708, 39857, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39858, 39915, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39916, 39989, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39990, 40134, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40135, 40168, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40169, 40270, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40271, 40411, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40412, 40421, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40422, 40551, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40552, 40690, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40691, 40814, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40815, 40829, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40830, 40971, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40972, 41067, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41068, 41106, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41107, 41252, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41253, 41319, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41320, 41383, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41384, 41533, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41534, 41572, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41573, 41589, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41632, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41633, 41668, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41669, 41695, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41696, 41772, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41773, 41909, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41910, 41921, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41922, 41961, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41962, 42049, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42050, 42186, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42187, 42227, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42228, 42314, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42315, 42326, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42327, 42464, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42465, 42493, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42494, 42567, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42568, 42604, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42605, 42741, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42742, 42759, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42760, 42820, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42821, 42881, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42882, 43018, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43019, 43025, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43026, 43073, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43074, 43158, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43159, 43296, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43297, 43326, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43327, 43436, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43437, 43573, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43574, 43579, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43580, 43589, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55308, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55309, 55446, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55447, 55476, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55477, 55586, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55587, 55723, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55724, 55729, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55730, 55842, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55843, 55861, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55862, 56000, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56001, 56095, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56096, 56098, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56099, 56140, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56141, 56278, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56279, 56348, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56349, 56364, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56365, 56418, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56419, 56555, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56556, 56601, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56602, 56630, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56631, 56695, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56696, 56739, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66483, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66484, 66620, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66621, 66645, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66646, 66760, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66761, 66897, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66898, 66906, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66907, 67019, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67020, 67037, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67038, 67175, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67176, 67272, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67273, 67315, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67316, 67335, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68587, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68588, 68724, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68725, 68741, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68742, 68809, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68810, 68864, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68865, 68935, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174300, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174301, 176480, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176481, 178780, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 185420, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185421, 187350, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187351, 189310, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 189311, 190150, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190151, 190980, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190981, 191980, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 146550, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 146551, 148220, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 148221, 149200, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 158830, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158831, 160710, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160711, 162460, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 162461, 163050, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163051, 164180, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 151980, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151981, 153530, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153531, 155340, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155341, 156620, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156621, 157140, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157141, 157430, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157431, 158830, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 158831, 160580, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124240, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124241, 125160, CAM_S5K3LU_SET_B_1164_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 125161, 126490, CAM_S5K3LU_SET_B_1116_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126491, 128760, CAM_S5K3LU_SET_B_1196_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 128761, 129540, CAM_S5K3LU_SET_B_1062_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129541, 130380, CAM_S5K3LU_SET_B_1164_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_B_mode[] = {
{
sensor_s5k3lu_setfile_B_mipi_channel, ARRAY_SIZE(sensor_s5k3lu_setfile_B_mipi_channel),
sensor_s5k3lu_setfile_B_mipi_setting, ARRAY_SIZE(sensor_s5k3lu_setfile_B_mipi_setting)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_FRONT_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_FRONT_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_front_setfile_dummy_mhz[] = {
{ MIPI_FRONT_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FRONT_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_front_setfile_dummy_mipi_setting[] = {
{ "DUMMY Msps",
sensor_front_setfile_dummy_mhz, ARRAY_SIZE(sensor_front_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_front_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_FRONT_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_C_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_D_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_S5K3LU_H_ */

View File

@ -0,0 +1,996 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_S5KGN3_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_S5KGN3_H_
#include "cam_sensor_dev.h"
int num_wide_mipi_setting = 3;
/*
SET A : Full-Remosaic, 4SUM (10Bit)
SET B : 4SUM+A2A2 (10Bit), 8k (10Bit)
SET C : Full-Remosaic, 4SUM (12Bit)
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_S5KGN3_SET_A_3046_MHZ = 0,
CAM_S5KGN3_SET_A_3008_MHZ = 1,
CAM_S5KGN3_SET_A_2982_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_A_3046_MHZ_REG_ARRAY[] = {
{0x0310, 0x00EE, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_A_3008_MHZ_REG_ARRAY[] = {
{0x0310, 0x00EB, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_A_2982_MHZ_REG_ARRAY[] = {
{0x0310, 0x00E9, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_A_3046_mhz[] = {
{ MIPI_A_3046_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_3046_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_A_3008_mhz[] = {
{ MIPI_A_3008_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_3008_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_A_2982_mhz[] = {
{ MIPI_A_2982_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_2982_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5kgn3_setfile_A_mipi_setting[] = {
{ "3046 Mhz",
sensor_s5kgn3_setfile_A_3046_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_A_3046_mhz) },
{ "3008 Mhz",
sensor_s5kgn3_setfile_A_3008_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_A_3008_mhz) },
{ "2982 Mhz",
sensor_s5kgn3_setfile_A_2982_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_A_2982_mhz) },
};
static const struct cam_mipi_channel sensor_s5kgn3_setfile_A_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10626, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10627, 10635, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10636, 10692, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10693, 10771, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10772, 10778, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10779, 10838, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9683, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9684, 9756, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9757, 9776, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9777, 9828, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9829, 9901, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9902, 9919, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9920, 9938, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1184, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1185, 1227, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1228, 1300, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1301, 1328, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1329, 1372, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1373, 1445, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1446, 1471, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1472, 1513, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1601, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1602, 1610, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1611, 1668, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1669, 1738, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4388, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4389, 4404, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4405, 4458, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2289, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2290, 2362, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2363, 2389, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2390, 2434, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2435, 2507, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2508, 2532, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2533, 2563, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2978, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2979, 2991, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2992, 3051, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3052, 3088, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 729, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 730, 763, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 152, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 153, 170, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 171, 285, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 286, 442, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 443, 457, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 458, 572, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 573, 599, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 666, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 667, 811, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 812, 851, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 852, 956, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 957, 1101, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1102, 1138, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1139, 1199, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1210, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1211, 1269, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1270, 1355, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1356, 1500, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1501, 1556, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1557, 1645, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1646, 1791, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1792, 1842, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1843, 1936, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1937, 1949, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2102, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2103, 2120, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2121, 2235, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2236, 2392, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2393, 2399, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2486, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2487, 2519, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2520, 2631, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2632, 2649, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2793, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2794, 2879, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2880, 3024, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3025, 3078, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3079, 3169, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3170, 3314, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3315, 3364, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3365, 3449, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3556, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3557, 3582, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3583, 3701, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3702, 3799, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5045, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5046, 5096, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5097, 5179, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5190, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5191, 5279, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5315, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5316, 5363, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5364, 5379, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5766, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5767, 5849, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5881, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5882, 5999, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6026, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6027, 6059, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6060, 6149, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6189, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6190, 6291, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6292, 6436, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6437, 6449, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6467, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6468, 6505, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6506, 6599, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8106, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8107, 8251, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8252, 8291, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8292, 8396, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8397, 8541, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8542, 8578, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8579, 8686, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8687, 8689, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8731, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8732, 8876, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8877, 8909, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8910, 9021, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9022, 9039, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9245, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9246, 9293, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9294, 9391, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9392, 9536, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9537, 9579, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9580, 9659, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9670, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9671, 9769, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9843, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9844, 9869, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9979, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9980, 10090, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10091, 10124, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10125, 10269, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10270, 10359, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36224, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36225, 36336, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36337, 36349, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37799, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37800, 37944, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37945, 38008, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38009, 38089, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38090, 38234, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38235, 38249, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38381, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38382, 38429, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38430, 38526, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38527, 38649, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38755, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38756, 38788, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38789, 38933, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38934, 39041, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39042, 39078, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39079, 39223, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39224, 39326, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39327, 39368, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39369, 39513, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39514, 39611, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39612, 39649, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39713, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39714, 39792, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39793, 39859, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39860, 40004, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40005, 40077, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40078, 40149, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40150, 40294, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40295, 40363, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40364, 40439, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40440, 40584, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40585, 40648, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40649, 40729, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40730, 40874, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40875, 40933, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40934, 41019, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41020, 41164, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41165, 41218, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41219, 41309, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41310, 41454, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41455, 41504, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41505, 41589, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41608, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41609, 41609, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41610, 41753, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41754, 41898, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41899, 42041, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42042, 42188, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42189, 42329, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42330, 42478, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42479, 42617, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42618, 42768, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42769, 42906, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42907, 43058, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43059, 43194, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43195, 43348, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43349, 43483, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43484, 43589, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55344, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55345, 55498, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55499, 55633, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55634, 55789, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55790, 55921, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55922, 56079, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56080, 56209, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56210, 56369, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56370, 56497, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56498, 56659, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56660, 56739, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66588, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66589, 66606, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66607, 66721, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66722, 66878, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66879, 66893, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66894, 67008, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67009, 67168, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67169, 67179, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67180, 67295, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67296, 67335, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68646, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68647, 68726, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68727, 68874, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68875, 68933, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68934, 68935, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 175520, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 175521, 176180, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176181, 178420, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178421, 178780, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187120, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187121, 187640, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187641, 190020, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190021, 191980, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 146500, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 146501, 147520, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147521, 149200, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 158980, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158981, 161020, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 161021, 163920, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163921, 164180, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 152300, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 152301, 153260, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153261, 155220, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155221, 158120, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 158121, 158980, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 158981, 160580, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124600, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124601, 126200, CAM_S5KGN3_SET_A_3008_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126201, 129160, CAM_S5KGN3_SET_A_3046_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129161, 130340, CAM_S5KGN3_SET_A_2982_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 130341, 130380, CAM_S5KGN3_SET_A_3008_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_A_mode[] = {
{
sensor_s5kgn3_setfile_A_channel, ARRAY_SIZE(sensor_s5kgn3_setfile_A_channel),
sensor_s5kgn3_setfile_A_mipi_setting, ARRAY_SIZE(sensor_s5kgn3_setfile_A_mipi_setting)
},
};
/*************************************/
/* ========== Mode B =============== */
/*************************************/
enum {
CAM_S5KGN3_SET_B_2585_MHZ = 0,
CAM_S5KGN3_SET_B_2547_MHZ = 1,
CAM_S5KGN3_SET_B_2483_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_B_2585_MHZ_REG_ARRAY[] = {
{0x0310, 0x00CA, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_B_2547_MHZ_REG_ARRAY[] = {
{0x0310, 0x00C7, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_B_2483_MHZ_REG_ARRAY[] = {
{0x0310, 0x00C2, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_B_2585_mhz[] = {
{ MIPI_B_2585_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_B_2585_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_B_2547_mhz[] = {
{ MIPI_B_2547_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_B_2547_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_B_2483_mhz[] = {
{ MIPI_B_2483_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_B_2483_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5kgn3_setfile_B_mipi_setting[] = {
{ "2585 Mhz",
sensor_s5kgn3_setfile_B_2585_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_B_2585_mhz) },
{ "2547 Mhz",
sensor_s5kgn3_setfile_B_2547_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_B_2547_mhz) },
{ "2483 Mhz",
sensor_s5kgn3_setfile_B_2483_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_B_2483_mhz) },
};
static const struct cam_mipi_channel sensor_s5kgn3_setfile_B_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10619, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10620, 10643, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10644, 10680, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10681, 10742, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10743, 10764, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10765, 10804, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10805, 10838, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9673, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9674, 9696, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9697, 9772, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9773, 9795, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9796, 9819, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9820, 9892, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9893, 9916, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9917, 9938, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1205, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1206, 1290, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1291, 1328, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1329, 1412, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1413, 1451, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1452, 1513, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1594, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1595, 1619, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1620, 1656, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1657, 1718, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1719, 1738, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4396, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4397, 4401, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4402, 4458, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2255, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2256, 2268, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2269, 2330, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2331, 2376, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2377, 2391, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2392, 2453, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2454, 2497, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2498, 2514, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2515, 2563, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2945, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2946, 3009, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3010, 3066, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3067, 3088, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 721, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 722, 726, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 727, 763, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 15, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 16, 138, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 139, 187, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 188, 261, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 262, 385, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 386, 429, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 430, 508, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 509, 599, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 646, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 647, 691, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 692, 842, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 843, 889, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 890, 938, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 939, 1084, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1085, 1131, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1132, 1184, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1185, 1199, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1310, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1311, 1480, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1481, 1557, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1558, 1724, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1725, 1803, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1804, 1949, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 1965, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1966, 2088, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2089, 2137, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2138, 2211, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2212, 2335, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2336, 2379, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2380, 2399, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2503, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2504, 2513, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2514, 2636, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2637, 2649, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2810, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2811, 2836, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2837, 2960, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2961, 3053, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3054, 3083, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3084, 3206, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3207, 3295, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3296, 3329, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3330, 3449, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3479, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3480, 3489, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3490, 3618, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3619, 3732, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3733, 3799, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5045, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5046, 5179, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5930, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5931, 5999, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6043, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6044, 6053, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6054, 6149, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6183, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6184, 6304, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6305, 6427, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6428, 6449, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6573, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6574, 6592, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6593, 6599, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8086, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8087, 8131, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8132, 8282, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8283, 8329, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8330, 8378, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8379, 8524, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8525, 8571, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8572, 8624, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8625, 8689, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8780, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8781, 8893, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8894, 8903, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8904, 9026, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9027, 9039, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9329, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9330, 9448, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9449, 9573, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9574, 9659, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9700, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9701, 9769, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9848, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9849, 9869, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9990, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9991, 10016, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10017, 10113, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10114, 10236, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10237, 10258, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10259, 10359, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36230, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36231, 36349, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37825, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37826, 37917, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37918, 38067, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38068, 38090, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38091, 38213, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38214, 38249, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38311, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38312, 38349, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38350, 38509, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38510, 38553, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38554, 38595, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38596, 38649, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38735, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38736, 38858, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38859, 38878, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38879, 38981, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38982, 39105, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39106, 39120, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39121, 39228, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39229, 39351, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39352, 39361, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39362, 39474, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39475, 39601, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39602, 39649, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39737, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39738, 39745, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39746, 39868, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39869, 39980, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39981, 39991, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39992, 40144, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40145, 40238, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40239, 40361, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40362, 40465, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40466, 40557, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40558, 40707, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40708, 40730, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40731, 40853, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40854, 40950, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40951, 40976, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40977, 41100, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41101, 41193, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41194, 41223, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41224, 41346, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41347, 41435, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41436, 41469, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41470, 41589, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41633, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41634, 41719, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41720, 41756, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41757, 41879, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41880, 41959, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41960, 42003, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42004, 42126, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42127, 42198, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42199, 42249, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42250, 42372, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42373, 42438, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42439, 42495, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42496, 42618, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42619, 42677, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42678, 42741, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42742, 42864, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42865, 42917, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42918, 42988, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42989, 43111, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43112, 43157, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43158, 43234, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43235, 43357, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43358, 43396, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43397, 43480, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43481, 43589, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55261, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55262, 55307, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55308, 55384, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55385, 55507, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55508, 55546, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55547, 55630, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55631, 55789, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55790, 55876, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55877, 56033, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56034, 56123, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56124, 56278, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56279, 56369, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56370, 56523, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56524, 56615, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56616, 56739, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66451, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66452, 66574, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66575, 66623, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66624, 66697, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66698, 66821, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66822, 66865, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66866, 66944, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66945, 67067, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67068, 67108, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67109, 67190, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67191, 67313, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67314, 67335, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68648, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68649, 68756, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68757, 68892, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68893, 68935, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 175860, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 175861, 176060, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176061, 178520, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178521, 178780, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 185580, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185581, 185770, CAM_S5KGN3_SET_B_2483_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185771, 188360, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 188361, 190630, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190631, 191980, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 146500, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 146501, 149070, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 149071, 149200, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 158850, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158851, 161280, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 161281, 163740, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163741, 164180, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 153970, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153971, 156360, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156361, 158850, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 158851, 160580, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124630, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124631, 126800, CAM_S5KGN3_SET_B_2547_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126801, 129520, CAM_S5KGN3_SET_B_2585_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129521, 130380, CAM_S5KGN3_SET_B_2547_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_B_mode[] = {
{
sensor_s5kgn3_setfile_B_channel, ARRAY_SIZE(sensor_s5kgn3_setfile_B_channel),
sensor_s5kgn3_setfile_B_mipi_setting, ARRAY_SIZE(sensor_s5kgn3_setfile_B_mipi_setting)
},
};
/*************************************/
/* ========== Mode C =============== */
/*************************************/
enum {
CAM_S5KGN3_SET_C_3315_MHZ = 0,
CAM_S5KGN3_SET_C_3456_MHZ = 1,
CAM_S5KGN3_SET_C_3340_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_C_3315_MHZ_REG_ARRAY[] = {
{0x0310, 0x0103, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_C_3456_MHZ_REG_ARRAY[] = {
{0x0310, 0x010E, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_C_3340_MHZ_REG_ARRAY[] = {
{0x0310, 0x0105, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_C_3315_mhz[] = {
{ MIPI_C_3315_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_3315_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_C_3456_mhz[] = {
{ MIPI_C_3456_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_3456_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5kgn3_setfile_C_3340_mhz[] = {
{ MIPI_C_3340_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_3340_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5kgn3_setfile_C_mipi_setting[] = {
{ "3315 Mhz",
sensor_s5kgn3_setfile_C_3315_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_C_3315_mhz) },
{ "3456 Mhz",
sensor_s5kgn3_setfile_C_3456_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_C_3456_mhz) },
{ "3340 Mhz",
sensor_s5kgn3_setfile_C_3340_mhz, ARRAY_SIZE(sensor_s5kgn3_setfile_C_3340_mhz) },
};
static const struct cam_mipi_channel sensor_s5kgn3_setfile_C_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10618, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10619, 10652, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10653, 10693, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10694, 10776, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10777, 10816, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10817, 10838, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9671, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9672, 9746, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9747, 9829, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9830, 9904, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9905, 9938, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1221, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1222, 1237, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1238, 1322, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1323, 1385, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1386, 1396, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1397, 1480, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1481, 1513, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1593, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1594, 1627, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1628, 1668, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1669, 1738, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4458, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2269, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2270, 2335, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2336, 2344, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2345, 2427, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2428, 2500, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2501, 2563, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2953, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2954, 2976, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2977, 3077, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3078, 3088, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 763, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 136, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 137, 204, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 205, 286, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 287, 452, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 453, 533, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 534, 599, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 642, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 643, 792, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 793, 958, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 959, 1108, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1109, 1199, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1229, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1230, 1342, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1343, 1374, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1375, 1545, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1546, 1671, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1672, 1692, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1693, 1861, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1862, 1949, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2086, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2087, 2154, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2155, 2236, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2237, 2399, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2633, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2634, 2649, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2838, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2839, 2970, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2971, 2988, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2989, 3154, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3155, 3300, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3301, 3304, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3305, 3449, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3505, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3506, 3550, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3551, 3754, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3755, 3799, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5064, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5065, 5179, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5214, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5215, 5279, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5360, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5361, 5379, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5734, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5735, 5849, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5857, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5858, 5897, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5898, 5999, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6149, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6216, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6217, 6228, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6229, 6322, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6323, 6449, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6535, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6536, 6563, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6564, 6599, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8082, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8083, 8232, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8233, 8398, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8399, 8548, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8549, 8689, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8707, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8708, 8747, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8748, 8816, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8817, 9023, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9024, 9039, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9290, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9291, 9395, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9396, 9440, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9441, 9606, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9607, 9618, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9619, 9659, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9668, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9669, 9769, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9867, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9868, 9869, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10006, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10007, 10120, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10121, 10156, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10157, 10322, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10323, 10359, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36224, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36225, 36349, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37812, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37813, 37857, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37858, 38022, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38023, 38141, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38142, 38172, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38173, 38249, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38300, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38301, 38309, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38310, 38476, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38477, 38626, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38627, 38649, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38787, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38788, 38929, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38930, 38931, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38932, 39097, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39098, 39109, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39110, 39247, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39248, 39412, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39413, 39437, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39438, 39562, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39563, 39649, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39715, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39716, 39794, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39795, 39865, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39866, 40031, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40032, 40123, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40124, 40181, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40182, 40347, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40348, 40452, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40453, 40497, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40498, 40662, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40663, 40781, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40782, 40812, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40813, 40978, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40979, 41110, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41111, 41128, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41129, 41294, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41295, 41440, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41441, 41444, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41445, 41589, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41606, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41607, 41772, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41773, 41910, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41911, 41922, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41923, 42137, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42138, 42225, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42226, 42237, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42238, 42403, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42404, 42553, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42554, 42719, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42720, 42869, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42870, 43041, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43042, 43185, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43186, 43364, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43365, 43500, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43501, 43589, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55335, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55336, 55514, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55515, 55650, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55651, 55836, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55837, 55966, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55967, 56159, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56160, 56282, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56283, 56481, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56482, 56597, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56598, 56739, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66572, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66573, 66640, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66641, 66722, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66723, 66888, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66889, 66969, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66970, 67038, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67039, 67205, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67206, 67298, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67299, 67335, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68647, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68648, 68813, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68814, 68886, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68887, 68935, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 178380, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178381, 178780, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 185960, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185961, 186990, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 186991, 191000, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 191001, 191980, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 146800, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 146801, 149200, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 159440, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159441, 159620, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 159621, 161630, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 161631, 164180, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 153120, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 153121, 155290, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155291, 159440, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159441, 159620, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 159621, 160580, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124700, CAM_S5KGN3_SET_C_3456_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 124701, 127860, CAM_S5KGN3_SET_C_3315_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 127861, 129420, CAM_S5KGN3_SET_C_3340_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 129421, 130380, CAM_S5KGN3_SET_C_3456_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_C_mode[] = {
{
sensor_s5kgn3_setfile_C_channel, ARRAY_SIZE(sensor_s5kgn3_setfile_C_channel),
sensor_s5kgn3_setfile_C_mipi_setting, ARRAY_SIZE(sensor_s5kgn3_setfile_C_mipi_setting)
},
};
/*************************************/
/* ========== DUMMY ================ */
/*************************************/
enum {
CAM_WIDE_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_WIDE_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_wide_setfile_dummy_mhz[] = {
{ MIPI_WIDE_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_WIDE_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_wide_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_wide_setfile_dummy_mhz, ARRAY_SIZE(sensor_wide_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_wide_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_WIDE_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_D_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_S5KGN3_H_ */

View File

@ -0,0 +1,906 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_S5KHP2_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_S5KHP2_H_
#include "cam_sensor_dev.h"
int num_wide_mipi_setting = 4;
/*
SET A : A01~14, B01, B06 (3712 / 3686.4)
SET B : C01 (3712)
SET C : B04, D02 (2860.8 / 2944 / 2988.8)
SET D : D01, D03 (1811.2 / 1849.6 / 1862.4)
*/
/*************************************/
/* ========== Mode A =============== */
/*************************************/
enum {
CAM_S5KHP2_SET_A_3712_MHZ = 0,
CAM_S5KHP2_SET_A_3686_MHZ = 1,
};
struct cam_sensor_i2c_reg_array MIPI_A_3712_MHZ_REG_ARRAY[] = {
{0x0310, 0x0122, 0x00, 0x00},
{0x0312, 0x0000, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_A_3686_MHZ_REG_ARRAY[] = {
{0x0310, 0x0120, 0x00, 0x00},
{0x0312, 0x0000, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_A_3712_mhz[] = {
{ MIPI_A_3712_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_3712_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_A_3686_mhz[] = {
{ MIPI_A_3686_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_A_3686_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5khp2_setfile_A_mipi_setting[] = {
{ "3712 Msps",
sensor_s5khp2_setfile_A_3712_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_A_3712_mhz) },
{ "3686 Msps",
sensor_s5khp2_setfile_A_3686_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_A_3686_mhz) },
};
static const struct cam_mipi_channel sensor_s5khp2_setfile_A_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10570, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10571, 10640, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10641, 10791, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10792, 10838, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9756, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9757, 9938, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1305, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1306, 1372, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1373, 1439, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1440, 1513, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1545, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1546, 1615, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1616, 1738, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4404, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4405, 4458, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 4387, 2281, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2282, 2347, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2348, 2417, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2418, 2563, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 3088, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 763, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 41, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 42, 181, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 182, 483, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 484, 599, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 813, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 814, 1199, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1511, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1512, 1645, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1646, 1779, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1780, 1949, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 1991, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1992, 2131, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2132, 2399, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2417, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2418, 2518, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2519, 2649, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2773, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2774, 2862, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2863, 2994, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2995, 3134, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3135, 3449, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3784, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3785, 3799, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5179, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5309, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5310, 5379, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5957, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5958, 5999, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6058, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6059, 6149, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6449, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6599, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8253, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8254, 8689, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8807, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8808, 8908, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8909, 9039, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9239, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9240, 9336, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9337, 9459, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9460, 9557, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9558, 9659, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9769, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9921, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9922, 10042, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10043, 10251, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10252, 10359, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36247, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36248, 36349, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37750, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37751, 38249, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38649, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38779, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38780, 38919, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38920, 39485, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39486, 39649, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 40176, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40177, 40390, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40391, 40913, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40914, 41002, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41003, 41134, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41135, 41274, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41275, 41589, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41686, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41687, 41988, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41989, 42104, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42105, 42320, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42321, 42460, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42461, 42930, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42931, 43012, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43013, 43093, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43094, 43233, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43234, 43589, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55243, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55244, 55383, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55384, 55906, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55907, 56156, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56157, 56732, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56733, 56739, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66477, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66478, 66617, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66618, 66919, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66920, 67059, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67060, 67335, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68935, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 176150, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176151, 178780, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 190680, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190681, 191980, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 164180, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 156320, CAM_S5KHP2_SET_A_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156321, 160580, CAM_S5KHP2_SET_A_3686_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 130380, CAM_S5KHP2_SET_A_3686_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_A_mode[] = {
{
sensor_s5khp2_setfile_A_channel, ARRAY_SIZE(sensor_s5khp2_setfile_A_channel),
sensor_s5khp2_setfile_A_mipi_setting, ARRAY_SIZE(sensor_s5khp2_setfile_A_mipi_setting)
},
};
/*************************************/
/* ========== Mode B =============== */
/*************************************/
enum {
CAM_S5KHP2_SET_B_3712_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_B_3712_MHZ_REG_ARRAY[] = {
{0x0310, 0x0122, 0x00, 0x00},
{0x0312, 0x0000, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_B_3712_mhz[] = {
{ MIPI_B_3712_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_B_3712_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5khp2_setfile_B_mipi_setting[] = {
{ "3712 Msps",
sensor_s5khp2_setfile_B_3712_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_B_3712_mhz) },
};
static const struct cam_mipi_channel sensor_s5khp2_setfile_B_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10594, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10595, 10716, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10717, 10786, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10787, 10838, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9764, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9765, 9890, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9891, 9938, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1175, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1176, 1497, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1498, 1513, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1569, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1570, 1691, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1692, 1738, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4449, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4450, 4458, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4413, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2417, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2418, 2487, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2488, 2529, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2530, 2563, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2971, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2972, 3038, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 3039, 3088, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 763, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 89, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 90, 333, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 334, 473, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 474, 599, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 829, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 830, 1081, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1082, 1199, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1251, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1252, 1895, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1896, 1949, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2039, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2040, 2283, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2284, 2399, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2403, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2404, 2609, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2610, 2649, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 3135, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3136, 3275, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3276, 3359, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3360, 3449, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3543, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3544, 3677, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3678, 3799, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5179, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5279, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5943, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5944, 5999, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6149, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6249, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6250, 6373, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6374, 6449, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6599, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8269, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8270, 8521, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8522, 8689, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8793, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8794, 8999, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9000, 9039, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9416, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9417, 9527, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9528, 9639, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9640, 9659, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9727, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9728, 9769, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9859, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9860, 9869, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10225, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10226, 10359, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37851, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37852, 38103, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38104, 38249, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38335, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38336, 38649, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38897, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38898, 39015, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39016, 39099, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39100, 39239, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39240, 39649, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39707, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39708, 39847, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39848, 40491, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40492, 40743, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40744, 41275, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41276, 41415, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41416, 41499, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41500, 41589, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41708, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41709, 42072, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42073, 42156, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42157, 42464, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42465, 42604, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42605, 42800, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42801, 42906, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42907, 43360, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43361, 43500, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43501, 43584, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43585, 43589, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55510, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55511, 55650, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55651, 55734, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55735, 55874, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55875, 56406, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56407, 56658, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56659, 56739, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66525, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66526, 66769, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66770, 66909, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66910, 67217, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67218, 67335, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68645, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68646, 68757, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68758, 68935, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174610, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174611, 178780, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 186860, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 186861, 190540, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 190541, 191980, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 160180, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160181, 163660, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 163661, 164180, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 155730, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 155731, 157940, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 157941, 160580, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 124580, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126121, 127820, CAM_S5KHP2_SET_B_3712_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 127821, 130380, CAM_S5KHP2_SET_B_3712_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_B_mode[] = {
{
sensor_s5khp2_setfile_B_channel, ARRAY_SIZE(sensor_s5khp2_setfile_B_channel),
sensor_s5khp2_setfile_B_mipi_setting, ARRAY_SIZE(sensor_s5khp2_setfile_B_mipi_setting)
},
};
/*************************************/
/* ========== Mode C =============== */
/*************************************/
enum {
CAM_S5KHP2_SET_C_2860_MHZ = 0,
CAM_S5KHP2_SET_C_2944_MHZ = 1,
CAM_S5KHP2_SET_C_2988_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_C_2860_MHZ_REG_ARRAY[] = {
{0x0310, 0x01BF, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_C_2944_MHZ_REG_ARRAY[] = {
{0x0310, 0x01CC, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_C_2988_MHZ_REG_ARRAY[] = {
{0x0310, 0x01D3, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_C_2860_mhz[] = {
{ MIPI_C_2860_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_2860_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_C_2944_mhz[] = {
{ MIPI_C_2944_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_2944_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_C_2988_mhz[] = {
{ MIPI_C_2988_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_C_2988_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5khp2_setfile_C_mipi_setting[] = {
{ "2860 Msps",
sensor_s5khp2_setfile_C_2860_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_C_2860_mhz) },
{ "2944 Msps",
sensor_s5khp2_setfile_C_2944_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_C_2944_mhz) },
{ "2988 Msps",
sensor_s5khp2_setfile_C_2988_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_C_2988_mhz) },
};
static const struct cam_mipi_channel sensor_s5khp2_setfile_C_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10620, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10621, 10639, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10640, 10709, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10710, 10838, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9927, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9928, 9938, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1348, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1349, 1359, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1360, 1411, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1412, 1429, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1430, 1499, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1500, 1513, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1595, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1596, 1614, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1615, 1684, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1685, 1738, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4393, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4394, 4458, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4393, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4394, 4413, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2254, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2255, 2324, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2325, 2563, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2960, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2961, 3088, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 718, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 719, 763, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 0, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 1, 140, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 141, 178, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 179, 318, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 319, 599, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 1155, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1156, 1199, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1596, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1597, 1619, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1620, 1722, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1723, 1759, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1760, 1899, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1900, 1949, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 1950, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1951, 2090, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2091, 2128, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2129, 2268, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2269, 2399, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2497, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2498, 2649, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2771, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2772, 2809, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2810, 2949, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2950, 3449, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3521, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3522, 3799, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5121, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5122, 5146, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5147, 5179, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5261, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5262, 5279, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5379, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5791, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5792, 5816, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5817, 5849, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5859, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5860, 5897, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5898, 5906, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5907, 5999, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6037, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6038, 6149, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6449, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6504, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6505, 6599, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8595, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8596, 8689, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8709, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8710, 8747, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8748, 8756, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8757, 8887, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8888, 9039, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9387, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9388, 9410, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9411, 9527, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9528, 9659, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9676, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9677, 9769, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9823, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9824, 9861, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9862, 9869, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 10273, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10274, 10359, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36349, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 38131, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 38132, 38249, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38593, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38594, 38649, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 39063, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39064, 39203, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39204, 39241, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39242, 39381, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39382, 39649, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39666, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39667, 40238, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40239, 40378, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40379, 40771, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40772, 40911, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40912, 40949, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40950, 41089, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41090, 41589, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41717, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41718, 42088, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42089, 42228, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42229, 42258, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42259, 42398, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42399, 42939, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42940, 43079, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43080, 43280, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43281, 43408, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43409, 43420, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43421, 43589, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55430, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55431, 55558, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55559, 55570, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55571, 55770, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55771, 55910, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55911, 56451, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56452, 56470, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56471, 56591, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56592, 56622, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56623, 56739, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66436, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66437, 66576, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66577, 66614, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66615, 66754, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66755, 67326, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67327, 67335, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68619, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68620, 68654, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68655, 68712, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68713, 68750, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68751, 68794, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68795, 68890, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68891, 68935, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174120, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174121, 176740, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 176741, 178780, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187420, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187421, 191980, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 147020, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 147021, 149200, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 158940, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158941, 164180, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 151810, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151811, 154140, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 154141, 156600, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 156601, 158940, CAM_S5KHP2_SET_C_2944_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 158941, 160580, CAM_S5KHP2_SET_C_2988_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 128560, CAM_S5KHP2_SET_C_2860_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 128561, 130380, CAM_S5KHP2_SET_C_2944_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_C_mode[] = {
{
sensor_s5khp2_setfile_C_channel, ARRAY_SIZE(sensor_s5khp2_setfile_C_channel),
sensor_s5khp2_setfile_C_mipi_setting, ARRAY_SIZE(sensor_s5khp2_setfile_C_mipi_setting)
},
};
/*************************************/
/* ========== Mode D =============== */
/*************************************/
enum {
CAM_S5KHP2_SET_D_1811_MHZ = 0,
CAM_S5KHP2_SET_D_1849_MHZ = 1,
CAM_S5KHP2_SET_D_1862_MHZ = 2,
};
struct cam_sensor_i2c_reg_array MIPI_D_1811_MHZ_REG_ARRAY[] = {
{0x0310, 0x011B, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_D_1849_MHZ_REG_ARRAY[] = {
{0x0310, 0x0121, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
struct cam_sensor_i2c_reg_array MIPI_D_1862_MHZ_REG_ARRAY[] = {
{0x0310, 0x0123, 0x00, 0x00},
{0x0312, 0x0001, 0x00, 0x00},
{0x030E, 0x0003, 0x00, 0x00},
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_D_1811_mhz[] = {
{ MIPI_D_1811_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_D_1811_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_D_1849_mhz[] = {
{ MIPI_D_1849_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_D_1849_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_sensor_i2c_reg_setting sensor_s5khp2_setfile_D_1862_mhz[] = {
{ MIPI_D_1862_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_D_1862_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_s5khp2_setfile_D_mipi_setting[] = {
{ "1811 Msps",
sensor_s5khp2_setfile_D_1811_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_D_1811_mhz) },
{ "1849 Msps",
sensor_s5khp2_setfile_D_1849_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_D_1849_mhz) },
{ "1862 Msps",
sensor_s5khp2_setfile_D_1862_mhz, ARRAY_SIZE(sensor_s5khp2_setfile_D_1862_mhz) },
};
static const struct cam_mipi_channel sensor_s5khp2_setfile_D_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_002_GSM_EGSM900), 0, 0, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_003_GSM_DCS1800), 0, 0, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_004_GSM_PCS1900), 0, 0, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10562, 10600, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10601, 10745, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10746, 10754, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10755, 10815, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_011_WCDMA_WB01), 10816, 10838, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9662, 9695, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9696, 9737, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9738, 9775, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9776, 9845, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9846, 9883, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_012_WCDMA_WB02), 9884, 9938, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1162, 1184, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1185, 1250, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1251, 1308, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1309, 1361, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1362, 1404, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1405, 1431, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_013_WCDMA_WB03), 1432, 1513, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1537, 1575, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1576, 1720, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1721, 1729, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_014_WCDMA_WB04), 1730, 1738, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4357, 4399, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4400, 4438, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_015_WCDMA_WB05), 4439, 4458, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4387, 4399, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_016_WCDMA_WB06), 4400, 4413, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2237, 2242, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2243, 2261, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2262, 2326, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2327, 2366, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2367, 2458, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2459, 2521, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2522, 2528, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_017_WCDMA_WB07), 2529, 2563, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2937, 2958, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2959, 2990, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_018_WCDMA_WB08), 2991, 3088, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 712, 724, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_2_WCDMA, CAM_BAND_029_WCDMA_WB19), 725, 763, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 0, 100, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 101, 391, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 392, 408, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 409, 531, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_091_LTE_LB01), 532, 599, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 600, 691, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 692, 775, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 776, 851, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 852, 991, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 992, 1066, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1067, 1186, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_092_LTE_LB02), 1187, 1199, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1200, 1268, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1269, 1400, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1401, 1517, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1518, 1623, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1624, 1709, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1710, 1763, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1764, 1946, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_093_LTE_LB03), 1947, 1949, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 1950, 2050, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2051, 2341, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2342, 2358, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_094_LTE_LB04), 2359, 2399, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2400, 2508, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2509, 2587, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2588, 2648, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_095_LTE_LB05), 2649, 2649, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2750, 2785, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2786, 2822, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2823, 2953, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 2954, 3033, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3034, 3216, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3217, 3343, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3344, 3356, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_097_LTE_LB07), 3357, 3449, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3450, 3517, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3518, 3581, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_098_LTE_LB08), 3582, 3799, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_102_LTE_LB12), 5010, 5179, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5180, 5188, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5189, 5236, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_103_LTE_LB13), 5237, 5279, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5280, 5308, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_104_LTE_LB14), 5309, 5379, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_107_LTE_LB17), 5730, 5849, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5850, 5855, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_108_LTE_LB18), 5856, 5999, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6000, 6048, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6049, 6127, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_109_LTE_LB19), 6128, 6149, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6150, 6151, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6152, 6236, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6237, 6291, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_110_LTE_LB20), 6292, 6449, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6450, 6497, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6498, 6524, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_111_LTE_LB21), 6525, 6599, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8040, 8131, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8132, 8215, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8216, 8291, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8292, 8431, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8432, 8506, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8507, 8626, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8627, 8646, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_115_LTE_LB25), 8647, 8689, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8690, 8705, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8706, 8898, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8899, 8977, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 8978, 9038, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_116_LTE_LB26), 9039, 9039, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9210, 9238, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9239, 9319, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9320, 9364, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9365, 9459, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9460, 9541, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9542, 9626, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_118_LTE_LB28), 9627, 9659, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_119_LTE_LB29), 9660, 9769, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_120_LTE_LB30), 9770, 9869, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9920, 9963, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 9964, 10052, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10053, 10213, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_122_LTE_LB32), 10214, 10359, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36200, 36322, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_124_LTE_LB34), 36323, 36349, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37750, 37778, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37779, 37854, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37855, 37962, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37963, 37994, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_128_LTE_LB38), 37995, 38249, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38250, 38316, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38317, 38452, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38453, 38494, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_129_LTE_LB39), 38495, 38649, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38650, 38866, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38867, 38960, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 38961, 39060, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39061, 39114, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39115, 39298, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39299, 39360, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39361, 39438, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_130_LTE_LB40), 39439, 39649, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39650, 39721, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39722, 39771, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 39772, 40063, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40064, 40203, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40204, 40290, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40291, 40418, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40419, 40494, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40495, 40602, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40603, 40634, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40635, 40925, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40926, 40962, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 40963, 41093, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41094, 41173, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41174, 41356, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41357, 41483, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41484, 41496, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_131_LTE_LB41), 41497, 41589, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41590, 41664, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41665, 41804, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 41805, 42107, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42108, 42200, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42201, 42241, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42242, 42440, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42441, 42450, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42451, 42690, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 42691, 43052, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43053, 43134, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43135, 43216, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43217, 43321, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43322, 43356, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43357, 43437, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43438, 43577, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_132_LTE_LB42), 43578, 43589, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55240, 55284, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55285, 55366, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55367, 55471, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55472, 55506, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55507, 55587, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55588, 55727, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 55728, 56031, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56032, 56221, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56222, 56282, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56283, 56474, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56475, 56648, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_138_LTE_LB48), 56649, 56739, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66436, 66536, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66537, 66827, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66828, 66844, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66845, 66967, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 66968, 67151, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67152, 67285, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_156_LTE_LB66), 67286, 67335, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68586, 68651, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68652, 68693, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_3_LTE, CAM_BAND_161_LTE_LB71), 68694, 68935, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_051_TDSCDMA_TD1), 0, 0, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_052_TDSCDMA_TD2), 0, 0, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_053_TDSCDMA_TD3), 0, 0, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_054_TDSCDMA_TD4), 0, 0, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_055_TDSCDMA_TD5), 0, 0, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_4_TDSCDMA, CAM_BAND_056_TDSCDMA_TD6), 0, 0, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_061_CDMA_BC0), 0, 0, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_062_CDMA_BC1), 0, 0, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_5_CDMA, CAM_BAND_071_CDMA_BC10), 0, 0, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 173800, 174960, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 174961, 178540, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_260_NR5G_N005), 178541, 178780, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 185000, 187340, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 187341, 188620, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_263_NR5G_N008), 188621, 191980, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_267_NR5G_N012), 145800, 149200, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 158200, 160920, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 160921, 162020, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_275_NR5G_N020), 162021, 164180, CAM_S5KHP2_SET_D_1862_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_283_NR5G_N028), 151600, 160580, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 123400, 125700, CAM_S5KHP2_SET_D_1811_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 125701, 126540, CAM_S5KHP2_SET_D_1849_MHZ },
{ CAM_RAT_BAND(CAM_RAT_7_NR5G, CAM_BAND_326_NR5G_N071), 126541, 130380, CAM_S5KHP2_SET_D_1862_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_D_mode[] = {
{
sensor_s5khp2_setfile_D_channel, ARRAY_SIZE(sensor_s5khp2_setfile_D_channel),
sensor_s5khp2_setfile_D_mipi_setting, ARRAY_SIZE(sensor_s5khp2_setfile_D_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_S5KHP2_H_ */

View File

@ -0,0 +1,67 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_FRONT_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_FRONT_H_
#include "cam_sensor_dev.h"
int num_front_mipi_setting = 4;
enum {
CAM_FRONT_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_FRONT_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_front_setfile_dummy_mhz[] = {
{ MIPI_FRONT_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FRONT_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_front_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_front_setfile_dummy_mhz, ARRAY_SIZE(sensor_front_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_front_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_FRONT_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_A_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_B_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_C_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_mipi_D_mode[] = {
{
sensor_front_setfile_dummy_channel, ARRAY_SIZE(sensor_front_setfile_dummy_channel),
sensor_front_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_FRONT_H_ */

View File

@ -0,0 +1,63 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_FRONT_TOP_2_0_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_FRONT_TOP_2_0_H_
#include "cam_sensor_dev.h"
int num_front_top_mipi_setting = 4;
struct cam_sensor_i2c_reg_array MIPI_FRONT_TOP_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_front_top_setfile_dummy_mhz[] = {
{ MIPI_FRONT_TOP_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_FRONT_TOP_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_front_top_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz", 0,
sensor_front_top_setfile_dummy_mhz, ARRAY_SIZE(sensor_front_top_setfile_dummy_mhz) },
};
static const struct cam_mipi_cell_ratings sensor_front_top_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, {0} },
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_A_mode[] = {
{
sensor_front_top_setfile_dummy_channel, ARRAY_SIZE(sensor_front_top_setfile_dummy_channel),
sensor_front_top_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_top_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_B_mode[] = {
{
sensor_front_top_setfile_dummy_channel, ARRAY_SIZE(sensor_front_top_setfile_dummy_channel),
sensor_front_top_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_top_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_C_mode[] = {
{
sensor_front_top_setfile_dummy_channel, ARRAY_SIZE(sensor_front_top_setfile_dummy_channel),
sensor_front_top_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_top_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_front_top_mipi_D_mode[] = {
{
sensor_front_top_setfile_dummy_channel, ARRAY_SIZE(sensor_front_top_setfile_dummy_channel),
sensor_front_top_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_front_top_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_FRONT_TOP_2_0_H_ */

View File

@ -0,0 +1,67 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_TELE_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_TELE_H_
#include "cam_sensor_dev.h"
int num_tele_mipi_setting = 4;
enum {
CAM_TELE_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_TELE_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_tele_setfile_dummy_mhz[] = {
{ MIPI_TELE_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_TELE_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_tele_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_tele_setfile_dummy_mhz, ARRAY_SIZE(sensor_tele_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_tele_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_TELE_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_A_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_B_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_C_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_tele_mipi_D_mode[] = {
{
sensor_tele_setfile_dummy_channel, ARRAY_SIZE(sensor_tele_setfile_dummy_channel),
sensor_tele_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_tele_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_TELE_H_ */

View File

@ -0,0 +1,67 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_UW_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_UW_H_
#include "cam_sensor_dev.h"
int num_uw_mipi_setting = 4;
enum {
CAM_UW_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_UW_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_uw_setfile_dummy_mhz[] = {
{ MIPI_UW_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_UW_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_uw_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_uw_setfile_dummy_mhz, ARRAY_SIZE(sensor_uw_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_uw_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_UW_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_A_mode[] = {
{
sensor_uw_setfile_dummy_channel, ARRAY_SIZE(sensor_uw_setfile_dummy_channel),
sensor_uw_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_uw_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_B_mode[] = {
{
sensor_uw_setfile_dummy_channel, ARRAY_SIZE(sensor_uw_setfile_dummy_channel),
sensor_uw_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_uw_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_C_mode[] = {
{
sensor_uw_setfile_dummy_channel, ARRAY_SIZE(sensor_uw_setfile_dummy_channel),
sensor_uw_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_uw_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_uw_mipi_D_mode[] = {
{
sensor_uw_setfile_dummy_channel, ARRAY_SIZE(sensor_uw_setfile_dummy_channel),
sensor_uw_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_uw_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_UW_H_ */

View File

@ -0,0 +1,67 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_ADAPTIVE_MIPI_WIDE_H_
#define _CAM_SENSOR_ADAPTIVE_MIPI_WIDE_H_
#include "cam_sensor_dev.h"
int num_wide_mipi_setting = 4;
enum {
CAM_WIDE_SET_DUMMY_MHZ = 0,
};
struct cam_sensor_i2c_reg_array MIPI_WIDE_DUMMY_MHZ_REG_ARRAY[] = {
};
static const struct cam_sensor_i2c_reg_setting sensor_wide_setfile_dummy_mhz[] = {
{ MIPI_WIDE_DUMMY_MHZ_REG_ARRAY, ARRAY_SIZE(MIPI_WIDE_DUMMY_MHZ_REG_ARRAY),
CAMERA_SENSOR_I2C_TYPE_WORD, CAMERA_SENSOR_I2C_TYPE_WORD, 0 }
};
static const struct cam_mipi_setting sensor_wide_setfile_dummy_mipi_setting[] = {
{ "DUMMY Mhz",
sensor_wide_setfile_dummy_mhz, ARRAY_SIZE(sensor_wide_setfile_dummy_mhz) },
};
static const struct cam_mipi_channel sensor_wide_setfile_dummy_channel[] = {
{ CAM_RAT_BAND(CAM_RAT_1_GSM, CAM_BAND_001_GSM_GSM850), 0, 0, CAM_WIDE_SET_DUMMY_MHZ },
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_A_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_B_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_C_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
static const struct cam_mipi_sensor_mode sensor_wide_mipi_D_mode[] = {
{
sensor_wide_setfile_dummy_channel, ARRAY_SIZE(sensor_wide_setfile_dummy_channel),
sensor_wide_setfile_dummy_mipi_setting, ARRAY_SIZE(sensor_wide_setfile_dummy_mipi_setting)
},
};
#endif /* _CAM_SENSOR_ADAPTIVE_MIPI_WIDE_H_ */

View File

@ -0,0 +1,119 @@
/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _CAM_SENSOR_BPC_H_
#define _CAM_SENSOR_BPC_H_
#define SENSOR_BPC_READ_RETRY_CNT 50
#define BPC_OTP_SIZE_MAX 0x9000
#define BPC_OTP_READ_STATUS_ADDR 0x7422
#define BPC_OTP_READ_STATUS_OK 0x0000
#define BPC_OTP_PAGE_NUM 9
#define SENSOR_REVISION_ADDR 0x0002
#define S5KHP2_SENSOR_REVISION_EVT1 0xB000
#define S5KHP2_SENSOR_SUPPORT_BPC_CRC_SENSOR_REVISION 0xB100
#define BPC_OTP_TERMINATE_CODE_FOR_CRC 0xFFFFFFFF
extern uint8_t *otp_data;
struct cam_sensor_i2c_reg_array bpc_sw_reset_setting[] = {
{ 0xFCFC, 0x4000, 0x00, 0x00 },
{ 0x6018, 0x0001, 0x00, 0x00 },
};
struct cam_sensor_i2c_reg_array bpc_dram_init_settting[] = {
{ 0x6226, 0x0001, 0x00, 0x00 },
{ 0x6214, 0x0800, 0x00, 0x00 },
{ 0x6218, 0x0000, 0x00, 0x00 },
{ 0x7402, 0x0019, 0x00, 0x00 },
{ 0xB000, 0x0000, 0x00, 0x00 },
{ 0xB002, 0x0000, 0x00, 0x00 },
};
struct cam_sensor_i2c_reg_array bpc_configure_otp_addr_settting[] = {
{ 0x7414, 0xBA40, 0x00, 0x00 },
{ 0x7416, 0x0000, 0x00, 0x00 },
{ 0x7418, 0x9000, 0x00, 0x00 },
{ 0x741A, 0x0000, 0x00, 0x00 },
};
struct cam_sensor_i2c_reg_array bpc_configure_dram_settting[] = {
{ 0x7426, 0x0004, 0x00, 0x00 },
{ 0x741E, 0x0000, 0x00, 0x00 },
{ 0x7420, 0x0000, 0x00, 0x00 },
{ 0x7424, 0x0002, 0x00, 0x00 },
};
struct cam_sensor_i2c_reg_array bpc_otp_read_setting[] = {
{ 0x7422, 0x0001, 0x00, 0x00 },
};
struct cam_sensor_i2c_reg_array bpc_end_sequence_settting[] = {
{ 0x6000, 0x0005, 0x00, 0x00 },
{ 0xFCFC, 0x4150, 0x00, 0x00 },
{ 0x0004, 0x0030, 0x00, 0x00 },
{ 0xFCFC, 0x4000, 0x00, 0x00 },
{ 0xB000, 0x0001, 0x00, 0x00 },
{ 0x6214, 0x0000, 0x00, 0x00 },
{ 0x6000, 0x0085, 0x00, 0x00 },
{ 0xFCFC, 0x2006, 0x00, 0x00 },
};
struct cam_sensor_i2c_reg_setting read_otp_setttings[] = {
{
bpc_sw_reset_setting,
ARRAY_SIZE(bpc_sw_reset_setting),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_WORD,
100
},
{
bpc_dram_init_settting,
ARRAY_SIZE(bpc_dram_init_settting),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_WORD,
0
},
{
bpc_configure_otp_addr_settting,
ARRAY_SIZE(bpc_configure_otp_addr_settting),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_WORD,
0
},
{
bpc_configure_dram_settting,
ARRAY_SIZE(bpc_configure_dram_settting),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_WORD,
100
},
{
bpc_otp_read_setting,
ARRAY_SIZE(bpc_otp_read_setting),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_WORD,
0
},
};
struct cam_sensor_i2c_reg_setting bpc_end_sequence_setttings[] = {
{
bpc_end_sequence_settting,
ARRAY_SIZE(bpc_end_sequence_settting),
CAMERA_SENSOR_I2C_TYPE_WORD,
CAMERA_SENSOR_I2C_TYPE_WORD,
0
},
};
#endif /* _CAM_SENSOR_BPC_H_ */

View File

@ -82,6 +82,9 @@ int cam_sensor_establish_link(struct cam_req_mgr_core_dev_link_setup *link);
* This API processes the event which is published by request mgr * This API processes the event which is published by request mgr
*/ */
int cam_sensor_process_evt(struct cam_req_mgr_link_evt_data *evt_data); int cam_sensor_process_evt(struct cam_req_mgr_link_evt_data *evt_data);
#if defined(CONFIG_SAMSUNG_DEBUG_SENSOR_I2C)
int cam_sensor_process_evt_for_sensor_using_i2c(struct cam_req_mgr_link_evt_data *evt_data);
#endif
/** /**
* @s_ctrl: Sensor ctrl structure * @s_ctrl: Sensor ctrl structure
@ -89,6 +92,11 @@ int cam_sensor_process_evt(struct cam_req_mgr_link_evt_data *evt_data);
* *
* This API handles the camera control argument reached to sensor * This API handles the camera control argument reached to sensor
*/ */
#if defined(CONFIG_SAMSUNG_SENSOR_TEMP)
void func0(struct cam_sensor_ctrl_t *s_ctrl);
void read_sensor_temperature(struct cam_sensor_ctrl_t *s_ctrl);
#endif
int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, void *arg); int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, void *arg);
/** /**
@ -98,4 +106,12 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, void *arg);
*/ */
void cam_sensor_shutdown(struct cam_sensor_ctrl_t *s_ctrl); void cam_sensor_shutdown(struct cam_sensor_ctrl_t *s_ctrl);
#if defined(CONFIG_CAMERA_FRAME_CNT_CHECK)
int cam_sensor_wait_stream_onoff(struct cam_sensor_ctrl_t *s_ctrl, bool onoff);
#endif
#if defined(CONFIG_SENSOR_RETENTION) || defined(CONFIG_SAMSUNG_READ_BPC_FROM_OTP)
int cam_sensor_write_settings(struct camera_io_master *io_master_info,
struct cam_sensor_i2c_reg_setting* settings, uint32_t settings_size);
#endif
#endif /* _CAM_SENSOR_CORE_H_ */ #endif /* _CAM_SENSOR_CORE_H_ */

Some files were not shown because too many files have changed in this diff Show More