camera

参考程序: kernel/drivers/media/vedio/xx5640.c

初始化: _init xx5640_mod_init(void)中添加I2C设备:i2c_add_driver(&ov5640_driver);参数ov5640_driver为I2C设备,定义为:

i2c_driver  ov5640_driver  = { driver,id_table,command,probe,remove}

probe函数比较重要,其流程为:

client->addr = 0x3c;

pdata->power_on(1,1)//set up inffo structure

info = kzalloc(sizeof(struct ov5640_info))申请内存地址

info->fmt = &ov5640_formats[1];

vo5640_format_struct 中应该是接收信号的数据格式;YUV为RGB三原色经内插法所得,数据量较小;ov5640_formats[]中包含了

desc = “YUYV 4:2:2”

pixelformat = v4L2_pix_fmt_yuyv

regs = ov5640_fmt_yuv422_vga,

bpp = 16/12 

设置平台数据: i2c_set_clientdata(client)

读camera的id ov5640_detect(client)  该函数调用函数 ov5640_read(client,aREG_PIDH,&v),和函数ov5640_read(client,aREG_PIDL,&v),这两个个函数

又最终调用了i2c_smbus_write_byte_data(c,address[2],address【1】)表示要读哪个寄存器,用函数i2c_smbus_read_byte(c)来读取寄存器中的值;每次

读取16位,分两次读完,先读高位寄存器在读低位;

   ccic_sensor_attach(client)该函数主要的流程是:

1、ccic_find_dev[0],// only support  one camera controller该函数中利用了互斥体,

\mutex_lock(&my_mutex)

````临界资源····

mutex_unlock(&my_mutex)

2、__ccic_cam_reset 重置

3、set sensor

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值