i2c驱动,硬件节点和软件节点匹配不上
我不要可乐 2017-07-03 01:32:04
设备树:
&i2c1 {
status = "okay";
clock-frequency = <400000>;
tusb4041: tusb4041@88 {
compatible = "gp0002a,tusb4041";
reg = <0x88>;
};
};
55 static const struct of_device_id tusb4041_dt_match[] = {
56 {.compatible = "gp0002a,tusb4041", },
57 { }
58 };
59 MODULE_DEVICE_TABLE(of, tusb4041_dt_match);
60
61
62 struct i2c_device_id tusb4041_dev_match[] = {};
63 /*MODULE_DEVICE_TABLE(i2c, tusb4041_dev_match);*/
64
65
66 static struct i2c_driver tusb4041_driver = {
67 .probe = tusb4041_probe,
68 .remove = tusb4041_remove,
69 .driver = {
70 .owner = THIS_MODULE,
71 .name = "tusb4041drv",
72 .of_match_table = tusb4041_dt_match,
73 },
74 .id_table = tusb4041_dev_match,
75 };
进入文件系统可以查看到有tusb4041文件夹
insmod 之后只是看到打印入口函数的信息,但是没有probe函数的打印信息,这说明驱动没有匹配成功,
求大神指点
(我的板子还没有连接i2c设备,可是我感觉是否连接设备和驱动匹配没有啥关系啊,调用probe函数的时候没有与设备相关的操作,是不是我写一个设备树,然后compatible字段相同就应该匹配成功调用probe呢?)