I2C总线上字符设备驱动加载不成功,probe函数没有执行。

sailorlyq 2010-09-02 09:11:31
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也作了定义,但没有执行。
...全文
1010 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ling 2011-01-08
  • 打赏
  • 举报
回复
要在arch的平台先注册 i2c_board_info。才会调用probe
coding码场 2010-09-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sailorlyq 的回复:]
Kconfig 文件中的 default 选项原来是 n,我现在设成y了,但不知道这是什么意思。
[/Quote]default 选项原来是 n的话,意味着你不用menuconfig选择的话是不会编译进内核的,你改为y则相反。
sailorlyq 2010-09-03
  • 打赏
  • 举报
回复
Kconfig 文件中的 default 选项原来是 n,我现在设成y了,但不知道这是什么意思。

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧