New Linux2.6 I2C Driver Model Example

  • 时间:
  • 浏览:0

本文转自 Jhuster 51CTO博客,原文链接:http://blog.51cto.com/ticktick/971738,如需转载请自行联系原作者

     第二种法律依据,使用i2c_new_device()。相关函数如下:

     注意,加上的新的 I2C_BOARD_INFO的名称一定要与本模块的driver的名称字符串一致,地址是I2C设备地址右移1位如果 的地址。

    越来越,何如注册其他人的i2c设备信息到系统的 boardinfo 列表中呢?Linux内核文档:Documentation/i2c/instantiating-devices 中讲了多种法律依据,我在此只说2种法律依据。

    第两种法律依据,在内核的初始化中定义你的I2C设备的信息。比如在/arch/arm/mach-xxxx/board_xxxx.c 中加上有一两个 新的 Boardinfo信息:

     越来越,使用第二种法律依据的示例代码如下,在 my_i2c_init 函数开头,加上如下代码,动态注册 I2C 设备信息到内核 Boardinfo 列表中。     

  闲话不说,先给出完整篇 的示例代码,加好注释,后面 再进一步解释。

    后面 的代码还非要完整篇 成功运行,可能还越来越加上其他人的I2C设备信息到系统中,模块Probe函数不必被调用执行。注释中可能提到,i2c_add_driver的如果 会扫描本模块的 id_table 中的名称是是否是与注册到系统中的boardinfo列表涵盖名称匹配的client,可能有,则会构造 i2c_client 对象,并调用本模块的 probe 函数。