当前位置: 技术问答>linux和unix
i2c设备加载驱动后没有执行probe
来源: 互联网 发布时间:2017-03-09
本文导语: 向大家请教下, 一个i2c设备执行i2c_add_driver()后返回值是0,但是却没有调用相应的probe函数,可能是什么原因导致的呢? | 可能原理: 1.没有定义i2c device. 2.没有i2c host驱动. | ...
向大家请教下,
一个i2c设备执行i2c_add_driver()后返回值是0,但是却没有调用相应的probe函数,可能是什么原因导致的呢?
一个i2c设备执行i2c_add_driver()后返回值是0,但是却没有调用相应的probe函数,可能是什么原因导致的呢?
|
可能原理:
1.没有定义i2c device.
2.没有i2c host驱动.
1.没有定义i2c device.
2.没有i2c host驱动.
|
ls说的对,在你的i2c驱动程序注册到系统的时候,系统会对每一个注册的i2c_client调用i2c总线的match函数,match函数通过id_table來判断这个驱动是否支持这个设备,如果支持则会调用i2c_drvier的probe函数,当然如果你没有注册i2c_client或者id_table写的不对,就不会调用probe函数。
|
例如:
static struct i2c_board_info i2c_devs0[] __initdata = {
{ I2C_BOARD_INFO("24c08", 0x50), },
{ I2C_BOARD_INFO("ov965x", 0x30), },
};