45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全

linux系统初始化摄像头I2C驱动

电脑软硬件应用网 45IT.COM 时间:2012-10-08 10:26 作者:佚名
阅读linux的ov2655的驱动程序时,并没有发现I2C驱动的初始化函数i2c_add_driver,只是定义了
static struct v4l2_i2c_driver_data v4l2_i2c_data =
{
    .name = S5K4BA_DRIVER_NAME,
    .probe = ov2655_probe,
    .remove = __devexit_p(ov2655_remove),
    .id_table = ov2655_id,
};

其实相关I2C初始化函数在v4l2-i2c-drv.h里I2C摄像头驱动程序都会包含该文件#include <media/v4l2-i2c-drv.h>

该文件代码很简单,I2C驱动初始化如下:
 

static int __init v4l2_i2c_drv_init(void)
{
    //其中的v4l2_i2c_data就是前面提到的在ov2655驱动里定义结构体。
    v4l2_i2c_driver.driver.name = v4l2_i2c_data.name;
    v4l2_i2c_driver.command = v4l2_i2c_data.command;
    v4l2_i2c_driver.probe = v4l2_i2c_data.probe;
    v4l2_i2c_driver.remove = v4l2_i2c_data.remove;
    v4l2_i2c_driver.suspend = v4l2_i2c_data.suspend;
    v4l2_i2c_driver.resume = v4l2_i2c_data.resume;
    v4l2_i2c_driver.id_table = v4l2_i2c_data.id_table;
    return i2c_add_driver(&v4l2_i2c_driver);
}


static void __exit v4l2_i2c_drv_cleanup(void)
{
    i2c_del_driver(&v4l2_i2c_driver);
}

module_init(v4l2_i2c_drv_init);
module_exit(v4l2_i2c_drv_cleanup);
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识