Linux设备驱动模型概述(Linux device driver model overview)
平臺(platform)設備和平臺驅動是連接到平臺總線(bus)的linux驅動模型接口,總線將設備和驅動綁定,這個偽總線(platform bus)以最小的基礎結構被用來連接設備到總線上。在系統每注冊一個設備時,會尋找與之匹配的驅動;相反,在系統每注冊一個驅動時,會尋找與之匹配的設備,而匹配由總線來完成。
平臺設備通常作為系統中自治實體(autonomous entities)出現,平臺設備給出驅動綁定使用的名字和資源列表,如地址和IRQ。
?
struct platform_device {//平臺設備
?????? const char????? *name;//驅動使用此name和設備樹中的對比來進行綁定
?????? int????????? id;//設備實例號,-1表示此設備只有一個實例
?????? bool?????? id_auto;
?????? struct device? dev;
?????? u32???????? num_resources;
?????? struct resource????? *resource;
?
?????? const struct platform_device_id?? *id_entry;
?????? char *driver_override; /* Driver name to force a match */
?
?????? /* MFD cell pointer */
?????? struct mfd_cell *mfd_cell;
?
?????? /* arch specific additions */
?????? struct pdev_archdata??? archdata;
};
平臺驅動遵循提供比如probe()和remove()方法的標準驅動模型約定。驅動綁定由驅動core自動執行,驅動和設備之間匹配后會調用驅動的probe(),如果Prebe()成功,驅動和設備將會被成功綁定。
?
當注冊設備時,將檢查總線上的驅動是否匹配,由下面三種不同的方式去匹配:
?
多個平臺驅動實例使用相同的平臺驅動實現??蓞㈤咲ocumentation\driver-model\platform.txt和include\linux\platform_device.h獲得更多的信息
總結
以上是生活随笔為你收集整理的Linux设备驱动模型概述(Linux device driver model overview)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USB学习6---Linux Andro
- 下一篇: Android高通平台下编译时能生成(拷