展锐平台的camera sensor驱动代码设计解析(1)
展锐平台的camera sensor驱动代码设计解析(2)
展锐平台的camera sensor驱动代码设计解析(3)
Camera驱动的基本配置及文件路径说明
- 驱动的配置在路径:\device\sprd\platform\board\camera\sensor_config.xml
- 驱动代码的路径在:\vendor\sprd\modules\libcamera\sensor\sensor_drv\classic下,里面有各个sensor厂商的驱动,比如Galaxycore,Superpix,Samsung等。
.xml 文件的配置解析
<root>
<!-->
sensor id 0
<-->
<CameraModuleCfg>
<SlotId>0</SlotId>
<SensorName>ov8856</SensorName>
<Facing>BACK</Facing>
<Orientation>90</Orientation>
<Resource_cost>50</Resource_cost>
<OTP>
<E2prom>
<OtpName>general</OtpName>
<I2cAddr>0xa0</I2cAddr>
<E2promNum>2</E2promNum>
<E2promSize>8192</E2promSize>
</E2prom>
</OTP>
<VCM>
<AfName>cn3927e</AfName>
<Mode>0</Mode>
</VCM>
<TuningParameter>
<TuningName>ov8856_shine</TuningName>
</TuningParameter>
</CameraModuleCfg>
SlotId : 表示配置camera id 0,
SensorName :表示配置了sensor ov8856,
Facing:表示配置 camera 为后摄,
Orientation:表示配置竖屏的基础旋转角度为90,
Resource_cost:表示打开所占资源为50,
OTP:general是平台端otp的驱动,
I2cAddr:表示i2c地址为0xa0,
E2promNum:2表示几个eeprom,
E2promSize: 8192表示eeprom的大小,
AfName :马达是cn3927e,
Mode:马达模式是0,
TuningName:Tuning参数文件夹是ov8856_shine.
BoardConfig.mk
#------section 2: sensor & flash config------
#camera auto detect sensor
TARGET_BOARD_CAMERA_AUTO_DETECT_SENSOR := true
#select camera 2M,3M,5M,8M,13M,16M,21M
CAMERA_SUPPORT_SIZE := 32M
FRONT_CAMERA_SUPPORT_SIZE := 16M
BACK_EXT_CAMERA_SUPPORT_SIZE := 16M
FRONT_EXT_CAMERA_SUPPORT_SIZE := 8M
TARGET_BOARD_NO_FRONT_SENSOR := false
TARGET_BOARD_SENSOR2_SUPPORT := true
TARGET_BOARD_SENSOR3_SUPPORT := true
#camera dual sensor
TARGET_BOARD_CAMERA_DUAL_SENSOR_MODULE := true
#dual camera 3A sync
#TARGET_BOARD_CONFIG_CAMERA_DUAL_SYNC := true
#sensor multi-instance
#TARGET_BOARD_CAMERA_SENSOR_MULTI_INSTANCE_SUPPORT := ture
TARGET_BOARD_CAMERA_SENSOR_MULTI_INSTANCE_SUPPORT := false
#camera sensor support list
#example
#CAMERA_SENSOR_TYPE_BACK :="ov8856,ov8858"
CAMERA_SENSOR_TYPE_BACK := "ov32a1q,ov16885_normal,imx351,imx363,imx258,ov13855,ov0210,ov8856"
CAMERA_SENSOR_TYPE_FRONT := "s5ks3p92"
CAMERA_SENSOR_TYPE_BACK_EXT := "ov16885_normal,ov9282_irdual"
CAMERA_SENSOR_TYPE_FRONT_EXT := "ov8856_shine"
#tuning param support list
TUNING_PARAM_LIST := "ov32a1q_back_main,ov16885_normal,imx351_back_main,imx363_back_main,imx258_back_main,ov13855_back_main,s5ks3p92_front_main, \
ov7251,ov7251_dual,ov0210,ov8856"
sensor型号需与存放driver文件夹同名
CAMERA_SUPPORT_SIZE:后摄分辨率
FRONT_CAMERA_SUPPORT_SIZE:前摄分辨率BACK_EXT_CAMERA_SUPPORT_SIZE:后辅摄分辨率FRONT_EXT_CAMERA_SUPPORT_SIZE:前辅摄分辨率
CAMERA_SENSOR_TYPE_BACK:后摄sensor型号CAMERA_SENSOR_TYPE_FRONT:前摄sensor型号CAMERA_SENSOR_TYPE_BACK_EXT:后辅摄sensor型号CAMERA_SENSOR_TYPE_FRONT_EXT:前辅摄sensor型号
TUNING_PARAM_LIST :依次添加对应sensor参数名称Note:sensor参数名称需与存放tuning parameter中sensor名相同