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進行啟動後完成。