① #address-cells、#size-cells 。cell 指一個 32 位的數值, address-cells:address 要用多少個 32 位數來表示;size-cells:size 要用多少個 32 位數來表示。
② compatible 表示可以“兼容”什么
③ model 准確地定義這個硬件是什么
④ status 明確此設備的狀態
⑤ reg 用來表示寄存器地址 也可以用來描述一段空間
⑥ name 表示節點的名字 在跟 platform_driver 匹配時,優先級最低。
⑦ device_type 表示節點的類型跟 platform_driver 匹配時,優先級為中。
示例1:(涉及①address-cells和⑤ reg)
下例中,address-cells 為 1,所以 reg 中用 1 個數來表示地址,即用 0x80000000 來表 示地址;size-cells 為 1,所以 reg 中用 1 個數來表示大小,即用 0x20000000 表示大小: / { #address-cells = <1>; #size-cells = <1>; memory { reg = <0x80000000 0x20000000>; }; };
示例2 :涉及② compatible ③ model
/ { compatible = "samsung,smdk2440", "samsung,mini2440"; model = "jz2440_v3"; };
它表示這個單板,可以兼容內核中的“smdk2440”,也兼容“mini2440”。從 compatible 屬性中可以知道它兼容哪些板,但是它到底是什么板?用 model 屬性來明確。
示例3:涉及④ status
&uart1 { status = "disabled"; };
dtsi 文件中定義了很多設備,但是在你的板子上某些設備是沒有的。這時你可以給這個設備節點添加一個 status 屬性,設置為“disabled”.
Value | Description |
"okay" | 設備正常運行 |
"disabled" | 設備不可操作,但是后面可能恢復工作 |
"fail" | 發生了嚴重錯誤,需修復 |
"fail-sss" | 發生了嚴重錯誤,需要修復;sss表示錯誤信息 |