① #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表示错误信息 |