Android camera sensor driver port

原文:http://hi.baidu.com/gcmao/blog/item/a4da224dfff68518b2de0535.html

 

近来刚接手项目的camera驱动,除了查看平台文档和sensor的到规格书,也在网上查看了高手们到经验。本人对camera还是比较陌生的,奈何公司无人过问,只好按部就班的来吧!

和大部分驱动的调试相差无几,还是在前人的工作基础上进行的。项目采用高通7627平台,sensor采用ov7675。

 

驱动移植

 

1.内核驱动移植

sensor信息记录在android/kernel/arch/arm/mach-msm/board-msm7x27.c文件中,board file中要更改的信息如下:

(1)为sensor添加相应的i2c驱动,加到i2c_devices[]数组中,这里是使用i2c总线的设备数组。机器启动时会注册相应设备。

 

static struct i2c_board_info i2c_devices[] = {

#ifdef CONFIG_MT9D112

{

I2C_BOARD_INFO("mt9d112", 0x60 >> 1),

},

#endif

......}

 

 

 

(2)msm_camera_sensor_info包含了设备启动信息。添加一个新的sensor驱动,就必须填写这样的一个结构体,包括sensor所使用的GPIO口。结构体中的sensor name将被用作driver id。

static struct msm_camera_sensor_info msm_camera_sensor_mt9d112_data = {

.sensor_name = "mt9d112", //将被用作driver id

.sensor_reset = 1, //sensor reset GPIO

.sensor_pwd = 20, //电源开关

.vcm_pwd = 0, //用作自动对焦。0表示不使用。

.vcm_enable = 0,

.pdata = &msm_camera_device_data,

.flash_data = &flash_mt9d112

};

另外还要把sensor注册成platform_device。

(3)修改i2c地址。gpio表修改,使用8线输入。修改camera_on_gpio_table[]和camera_off_gpio_table[]两个数组。由于平台采用的是双核架构,在功能上有所区分,个别GPIO需要在modem那边配置成app这边控制。

(4)创建自己的驱动文件。使用YUV sensor则查看android/kernel/drivers/media/video/msm/mt9d112.c,若使用bayer sensor则查看android/kernel/drivers/media/video/msm/mt9t013.c。这里不作详细说明。

(5)完成上述工作后,修改Kconfig和Makefile文件。

 

2.用户空间驱动

(1)用户空间驱动主要在vendor目录下,把自己的sensor加到sensors[]中,以便启动自己的senor。

static sensor_proc_start_t sensors[] = {

 

SENSORS_PROCCESS_START(mt9d112),

......};

(2)修改sensor相关参数:例如sensor类型,sensor输出格式,输出图像大小等等。/android/vendor/qcom-proprietary/mm-camera/targets/tgtcommon/sensor/mt9d112/mt9d112.c,这些参数必须得到正确的修改,否则sensor将启动不了。

(3)mt9d112_process_start函数中为VFE具体配置一些参数。

(4)mt9d112_video_config函数做了一些IO configuration调研,和内核mt9d112_set_sensor_mode是相关联的。通过IOCTL调用,相应的寄存器值会通过i2c总线写入sensor。

写入sensor寄存器的值(mt9d112_set_sensor_mode)必须和vfe_camif配置的值(mt9d112_video_config)相匹配,如果使用YUVsensor,需将每行像素值定义为预览模式下 的两倍。

其他重要的部分还包括HAL层的配置android/hardware/msm7k/libcamera/QualcommCameraHardware.cpp,

android/packages/apps/Camera/res/layout/camera.xml。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值