I2C总线上字符设备驱动加载不成功,probe函数没有执行。
module_init(kxtf9_init);
i2c_add_driver(&i2c_kxtf9_driver)
static int __init kxtf9_init(void)
{
int ret = 0;
if ((ret = i2c_add_driver(&i2c_kxtf9_driver))) {
printk(KERN_WARNING "KXTF9: Driver registration failed,"
" module not inserted.\n");
return ret;
}
return ret;
}
检查i2c_add_driver的返回值是0,没有异常。
i2c_kxtf9_driver结构如下
struct i2c_driver i2c_kxtf9_driver = {
.driver = {
.name = "kxtf9",
.owner = THIS_MODULE,
},
.probe = kxtf9_probe,
.remove = kxtf9_remove,
.id_table = kxtf9_id,
};
kxtf9_probe也作了定义,但没有执行。
i2c_add_driver(&i2c_kxtf9_driver)
static int __init kxtf9_init(void)
{
int ret = 0;
if ((ret = i2c_add_driver(&i2c_kxtf9_driver))) {
printk(KERN_WARNING "KXTF9: Driver registration failed,"
" module not inserted.\n");
return ret;
}
return ret;
}
检查i2c_add_driver的返回值是0,没有异常。
i2c_kxtf9_driver结构如下
struct i2c_driver i2c_kxtf9_driver = {
.driver = {
.name = "kxtf9",
.owner = THIS_MODULE,
},
.probe = kxtf9_probe,
.remove = kxtf9_remove,
.id_table = kxtf9_id,
};
kxtf9_probe也作了定义,但没有执行。
...全文
相关推荐
用i2c总线驱动OLED程序
总的来说,"用i2c总线驱动OLED程序"涉及到的知识点包括:I2C通信协议、嵌入式系统驱动开发、字符设备驱动、JZ2440微处理器的I2C控制器操作、OLED显示屏的工作原理以及Linux内核驱动的构建和加载流程
Linux_I2C总线驱动分析(主要是probe的方式)
I2C 总线驱动的职责是为系统中每个 I2C 总线增加相应的读写方法。但是总线驱动本身并不会进行任何的通讯,它只是存在在那里,等待设备驱动调用其函数。
Linux I2C总线分析(主要是probe的方式)
通过I2C总线驱动提供的函数,设备驱动可以忽略不同总线控制器的差异,不考虑其实现细节地与硬件设备通讯。
linux gpio 模拟I2C驱动
### Linux GPIO 模拟 I2C 驱动解析#### 一、概述Linux GPIO 模拟 I2C 驱动是一种特殊的技术手段,用于在没有硬件支持的情况下实现 I2C(Inter-Integrated
关于i2c在设备树下的匹配注册过程
- 若匹配成功,则调用`driver_probe_device()`函数进行设备探测,具体来说是调用`really_probe()`函数,最终执行`dev->bus->probe(dev)`。


