i2c实例
有个问题想咨询下大家,我在注册i2c驱动的时候,查找dts中定义的资源是有 .of_match_table = of_rk_lt8641ex_match,决定的还是有这句话决定.id_table = lt8641ex_id,的,目前我实验的结果是有后面一句话决定的,如果没有后面一句话就不会执行probe函数,这跟“compatible:这里的属性必须与驱动中的结构体:of_device_id 中的成员compatible 保持一致,of_device_id 用于在驱动中调用dts文件中定义的设备信息”不是前后不一致吗?请给予解答,非常感谢。 of_device_id中的compatible必须与dts中定义一致,可以看看linux中的源码中platform_match的实现,优先匹配dts的 但是在of_device_id中的compatible和dts中定义是一致的情况下,我测试的结果是i2c_driver中只添加.of_match_table = xxxx而不添加.id_table = xxxx 驱动的probe函数不会被执行,添加了.id_table = xxxx才会执行probe函数,意思是不是在只添加.of_match_table = xxxx而不添加.id_table = xxxx的时候device和driver没有匹配成功才不执行probe函数?这不就和上面说的就矛盾了吗? compatible和id_table都需要,wiki上compatible和id_table都有写。按照wiki上的说明编写就可以 我这边验证的是不添加compatible只添加id_table是可以正常工作的 你好,请问您的i2c驱动是怎么注册的,新手,需要用i2c的驱动,但搞不定,望高人指教 我这边测试的基本上就是按照wiki上给的例子,就可以实现,我用的是iic4,器件地址要又移动一位 我想可能是为了向下兼容吧,旧的驱动编写方式是只要i2c_device_id就可以了,也就是你说的id_table
页:
[1]