linux driver examples
1.0.0
这旨在提供有关Linux驱动程序的文档,特别是作为一个知识库。目前,文档很少,并且在互联网上分布。 I2C设备在两行总线上,并且是无法发现的平台设备。为了找出是否存在I2CBU和/或在其上找到任何设备,您可以在各种Linux系统上找到的I2CDECT工具。
示例包含
什么是Kobject?请参阅Kobject/
用于与用户空间互动。一些驱动程序可能会分解成零件,即I2C或平台驱动程序与设备交互,而MISC驱动程序可以与用户空间进行交互。.MISC驱动程序可以在平台的探针功能中注册。 MISC促进用户空间读取和写呼叫。MISC驱动程序不需要主要数字,只提供1个次要数字。 (驱动程序/char/misc && misc_register)还有一组不适合其他类别的驱动程序。两个不同的主题。
平台设备本质上是无法发现的,他们无法将软件告知其存在。 I2C设备属于此类别。该软件必须在其存在的编译时知道(通过board_info或设备树(DTS)。)它们属于驱动程序,通过名称匹配,您可以在I2C/ Directory中学习。应尽快注册,以便可以使用。
然后,USB和PCI将不算为平台设备。
有两个要求与平台设备一起使用
注意这些有关平台驱动程序的事情
compatible设备树属性选择的,该属性匹配platform_driver.name在驱动程序platform_driver_register中是主寄存器接口例如,来自兼容设备的设备树源(DTS)的示例
lkmc_platform_device@101e9000 {
compatible = "lkmc_platform_device";
reg = <0x101e9000 0x1000>;
interrupts = <18>;
interrupt-controller;
#interrupt-cells = <2>;
clocks = <&pclk>;
clock-names = "apb_pclk";
lkmc-asdf = <0x12345678>;
};
诸如PCI之类的非平台设备是可以固有地发现的。这意味着软件可以在运行时找到在系统中添加的新设备。
注意这些关于非平台驱动程序的事情
device_add和device_del插入和删除PCI设备。探测不是自动的,但是可以使用Echo 1>/sys/bus/pci/cescan进行启动后完成。