一. 字元裝置驅動基礎
1.字元裝置驅動的幾種不同寫法
在學習裝置樹之前,首先了解一下字元裝置驅動的三種寫法,參考文件:字元裝置驅動的三種寫法
這篇文章很好的描述並對比了三種字元裝置驅動的寫法及各自的優缺點。
三種寫法分別為:字元裝置驅動的傳統寫法
匯流排裝置驅動模型寫法
以及接下來要介紹的dts裝置樹寫法。
2.裝置樹基礎
字元裝置驅動-使用裝置樹
裝置樹的規範 - dts格式
核心對裝置樹的處理
裝置樹基礎
driver使用dts的前提是driver已經是支援platform框架的driver,這樣dts才可以發揮作用,因為dts和platform是配合工作的。
step1:建立dts結構體
static
struct of_device_id xx_of_match=
,,};
step2:註冊該driver的dts
module_device_table
(of, ali_of_match)
;step3:將該結構體加入platform成員
static
struct platform_driver nim_platform_driver =,}
;step4:在dts檔案中加入該節點
device_xx:device_xx1@0x18030000
{ compatible =
"xx_tech,devic_xx"
; }
二. 裝置樹匹配過程
從以上已經對裝置樹有了乙個基本了解,那是否有乙個疑惑:裝置樹描述的裝置信新增鏈結描述息和對應的驅動程式是怎麼匹配起來的呢?
platform_device和platform_driver
linux platform裝置驅動原理及架構
linux裝置驅動模型之platform匯流排深入淺出(加入裝置樹)
基於platform匯流排的驅動分析
對platform匯流排有了了解後,再看下詳細的匹配過程:
linux 驅動裝置和 dts 匹配過程
linux裝置驅動——platform裝置與驅動match probe過程
了解完以上文章之後,你應該就對裝置樹有了基本的了解。
裝置樹詳解dts
在linux3.x版本後,arch arm plat 和arch arm mach 中,描述板級細節的 比如platform device i2c board info等 被大量取消,取而代之的是裝置樹,其目錄位於arch arm boot dts 1個dts檔案 n個dtsi檔案,它們編譯而成的d...
編寫裝置樹DTS
第一步就是要為這個模型機構建乙個基本結構,這是乙個有效的裝置樹最基本的結構。在這個階段你需要唯一的標識該機器。compatible marvell armada38x compatible 指定了系統的名稱。它包含了乙個 製造商 型號 形式的字串。重要的是要指定乙個確切的裝置,並且包括製造商的名子,...
裝置樹 dts格式 語法
在之前提到過裝置樹就是平台匯流排中的平台裝置的衍生,是用於表述硬體裝置資源的,對於arm平台,裝置樹檔案存放在arch arm boot dts下,繫結文件存在documentation devicetree bindings下。我把jz2440 led 裝置樹之點亮led燈中的裝置樹檔案拷貝過來,...