fs4412开发板学习笔记(七)

摄像头驱动:
目录:Linux3.0 drivers\media\video
    Linux3.14.29  drivers\media\i2c\soc_camera


CMOS摄像头驱动:
一、device
1.设备地址
    从OV3640_CSP_11_SPEC.pdf  P39可知道到
    The device slave addresses are 0x78 for write (01111000)
                                                 and 0x79 for read  (01111001)

I2C的地址:  8bit的地址=7bit设备地址+1bit的读/写控制位

因此该设备地址=0111100 =0x3C

二、driver


/*1.1 分配、设置一个i2c_driver*/
static struct i2c_driver cmos_ov3640_driver={
    .driver={
        .name = "cmos_ov3640",
        .owner=THIS_MODULE,
    },
    .probe   =cmos_ov3640_probe,
    .remove  =cmos_ov3640_remove,
    .id_table=cmos_ov3640_id_table,
}; 

static int cmos_ov3640_drv_init(void)
{
    /*1.2 注册*/
    i2c_add_driver(&cmos_ov3640_driver);
    return 0;
}

static const struct v4l2_file_operations cmos_ov3640_fops={
    .owner          =THIS_MODULE,
    .open           =cmos_ov3640_open,
    .release        =cmos_ov3640_close,
    .unlocked_ioctl =video_ioctl2,
    .read       =cmos_ov3640_read,

};

static const struct v4l2_ioctl_ops cmos_ov3640_ioctl_ops={
        // 表示它是一个摄像头设备
    .vidioc_querycap      = cmos_ov3640_vidioc_querycap,

        /* 用于列举、获得、测试、设置摄像头的数据的格式 */
    .vidioc_enum_fmt_vid_cap  = cmos_ov3640_vidioc_enum_fmt_vid_cap,
    .vidioc_g_fmt_vid_cap     = cmos_ov3640_vidioc_g_fmt_vid_cap,
    .vidioc_try_fmt_vid_cap   = cmos_ov3640_vidioc_try_fmt_vid_cap,
    .vidioc_s_fmt_vid_cap     = cmos_ov3640_vidioc_s_fmt_vid_cap,

        /* 缓冲区操作: 申请/查询/放入队列/取出队列 */
    .vidioc_reqbufs       = cmos_ov3640_vidioc_reqbufs,

    /*说明:因为本次是通过读的方式来获得摄像头数据,因此
     *查询/放入队列/取出队列这些函数将不需要
     */
#if 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值