使用 linux I2C 驱动程序

Using linux I2C driver

我需要编写一个 Linux 设备驱动程序来连接到上面有按钮和 LED 的外围显示板。

在驱动程序中,我需要通过 I2C read/write 到外围板上的另一个 I2C 设备,然后将按钮按下事件从驱动程序中发送到应用程序代码。

我想我已经设法 "simulate" key/button 使用输入子系统的应用程序事件,我对这部分要求相当满意。

但是,我正在努力解决如何通过 I2C 总线与外围 I2C 设备通信的问题。我不想编写新的 I2C 通信例程,因为我希望可以使用已经存在的 I2C 通信 API。

我的问题是有很多关于如何通过在内核中使用 i2c-dev 从应用程序(用户 space)使用 I2C 的文档,但我没有发现任何有用的解释关于如何在我自己的驱动程序中对特定 I2C 总线进行 I2C 调用(我的驱动程序调用 i2c 驱动程序 ??)。

我希望这是有道理的,我在互联网上看了很多东西,但似乎没有什么能简单地解释事情。

感谢任何帮助,

谢谢

我们的(免费)培训材料中有一节是关于 i2c 子系统的: http://free-electrons.com/doc/training/linux-kernel/linux-kernel-slides.pdf

此外,实际实验就是为 i2c 设备编写输入驱动程序:http://free-electrons.com/doc/training/linux-kernel/linux-kernel-labs.pdf