客户如何'适合平台设备'和平台驱动程序'

时间:2017-01-26 00:07:27

标签: linux drivers persistence

阅读the driver-model platform,我的理解是平台驱动程序是控制平台设备的静态内核代码,平台设备通常始终存在于系统中,而不是组成的驱动程序内核模块的一部分,可以随意加载或删除,并控制可能并不总是连接的设备。 This answer似乎支持这种说法。

如果这一切都是真的,我希望这是我正在寻找的。我正在尝试编写一个内核模块,除其他外,需要通过I2C与外部设备进行通信。虽然外部设备并不总是系统的一部分,但I2C总线是IS,因此它应该由平台驱动程序控制。因此,我不应该在我的模块中编写代码来直接控制I2C,而应该使用平台驱动程序。我发现我认为是我的平台here上的I2C总线的正确平台驱动程序,它确实使用< linux / platform_device.h>,这样似乎是一致的。

然而,除此之外,在查看I2C时,我已经看到了对I2C"客户端"的引用。仅从名称来看,这听起来就像我现在要写的那样,一个内核模块使用平台驱动程序通过I2C进行通信。但是,在驱动程序模型平台的文档中,没有关于"客户端"提到了,所以我不知道这是否正确,或者它是否是一些完全独立的不同模型。

那么"客户"内核模块是否适合用于与Linux中的硬件接口的驱动程序平台模型?我的模块是否应该实例化i2c_driver的结构,或者是由平台驱动程序完成的,并且该模块应该创建一个接口?

0 个答案:

没有答案