linux驱动之soc_camera

soc_camera驱动涉及camera controller、camera sensor。

camera controller驱动往往是platform driver,其相应的platform device会包含camera控制器的寄存器、中断号等信息,要求platform device和platform driver的名字必须一致,否则二者无法成功匹配。

camera sensor大多是i2c接口,即属于i2c slave device,按照一般的i2c驱动写法,会先在板级信息代码中调用i2c_registar_board_info注册i2c_board_info(包含名字和slave地址),然后在i2c控制器(i2c adapter)驱动加载时,会对每个i2c_board_info调用i2c_new_device()。但在soc_camera驱动架构中,是不需要这么做的,这些工作都有v4l2来完成。

一 

soc camera驱动加载时会注册soc_camera_bus_type总线



camera控制器驱动加载时,会调用soc_camera_host_register()

|

scan_add_host() //查询与此host匹配的soc_camera_device,并调用device_register注册,这样会触发soc camera bus的probe函数



soc_camera_probe()

|

首先sensor上电、复位

|

然后为sensor创建i2c_client,如下:

soc_camera_init_i2c()

|

v4l2_i2c_new_subdev_board()

|

i2c_new_device() //它会触发i2c_bus_type总线的probe函数  i2c_device_probe()



sensor驱动加载时,会再走sensor 的probe函数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值