platform平臺驅動

platform將設備自己資源註冊進內核,方便內核統一管理,驅動程序使用這些資源時使用統一接口,提升了程序的可移植性。S3C6410處理器中,把內部集成的I2 C、RTC、SPI、LCD、看門狗等控制器都概括爲platform_device,而它們自己就是字符設備。函數

設備開發流程

// 平臺設備
 struct platform_device {
     const char * name;/* 設備名 */
     u32 id;  //設備編號
     struct device dev; //設備
     u32 num_resources;/* 設備所使用各種資源數量 */
     struct resource * resource;/* 資源 中斷號 基地址等 */
 };

設備平臺資源

例子spa

第一個資源記錄地址 屬於地址性的資源code

第二個資源記錄中斷號 屬於中斷性的資源orm

獲取設備資源的函數

例如 platform_get_resource(pdev,IORESOURCE_IPQ,0) 獲取pdev的中斷號資源 第0個資源接口

設備驅動

probe函數:platform設備與驅動匹配後會調用此函數,咱們對字符設備的註冊的工做能夠在這裏完成資源

remove函數:對字符設備的註銷工做在這裏完成
開發

driver:包含兩個字段rem

.name:須要與前面的platform_device中的name一致才能完成匹配,匹 配成功就會調用 probe函數get

例子 建立平臺設備並註冊 會在 sys/bus/platform/devices/my_devit

添加設備驅動註冊 註冊成功了在 /sys/bus/platform/drivers/my_dev

驅動添加成功匹配成功,會調用my_probe。platform主負責設備匹配的做用具體的驅動my_probe裏有。

相關文章
相關標籤/搜索