/dts-v1/; //dts文件版本
/{}; //根节点
- 子节点格式
[label:] node-name[@unit-address] {
[properties definitions]
[child nodes]
};
注意 : 同级节点下节点名称不能相同。不同级节点名称可以相同
node1{ //子节点 节点名称为 node1
node1_chold{ //子节点 节点名称为 node1_chold
};
};
- 节点名称
格式:[标签]:<名称>[@<设备地址>]
[标签]和[@<设备地址>] : 可选项
<名称>:必选项
<设备地址>:没有实际意义,方便阅读
uart:serial@02288000
uart 节点标签
serial@02288000 节点名称
- reg属性
reg属性可以用来描述地址信息。比如寄存器地址
格式:
reg = < address1 length1 address2 length2 address3 length3…>
reg = <0x02200000 0x4000>;
reg = <0x02200000 0x4000
0x02205000 0x4000>;
- #adderss-cells 和#size-cells属性
用来描述字节点中的reg信息中的地址和长度信息。
node1{
#adderss-cells = <1>; //地址个数
#size-cells =<0>; //长度个数
node1-chold{
reg = <0> //地址
};
};
node1{
#adderss-cells = <1>; //地址个数
#size-cells =<1>; //长度个数
node1-chold{
reg = <0x02200000 0x4000> //地址:0x02200000 长度:0x4000
};
};
node1{
#adderss-cells = <2>; //地址个数
#size-cells =<0>; //长度个数
node1-chold{
reg = <0x00 0x01> //0x00 、0x01都是地址
};
};
- model属性
model属性的值是字符串,描述一些信息。比如设备名称、名字等
model = "wm8960-audio";
- status属性
和设备状态有关系,属性值是字符串。属性值有以下几个状态
属性值 | 描述 |
---|---|
okay | 设备可用状态 |
disabled | 设备不可用状态 |
fail | 设备不可用状态并设备检测到错误 |
fail-sss | 设备不可用状态并设备检测到错误,sss是错误内容 |
status = "okay";
- compatible 属性
非常重要属性。
用来和驱动进行匹配的,匹配成功后会执行驱动中的probe函数
compatible = "xunwei","xunwei-board";
在匹配时先使用第一个值进行匹配,如果没有就使用第二值个进行匹配
- aliases 特殊节点
用来定义别名,批量定义
aliases{
mmc0 = &sdmmc0;
mmc1 = &sdmmc1;
mmc2 = &sdmmc2;
serial0="/simple@fe000000/serial@11c500";
};
- chosen 特殊节点
用来uboot给内核传递参数。重点是bootargs参数。chosen节点必须是根节点的子节点
chosen{
bootargs="root=/dev/nfs rw nfsroot=192.168.1.1 console=ttyS0,115200";
};
- device_type 特殊属性
device_type值是字符串,只用于cpu节点或者memory节点进行描述
memory@30000000{
device_type = "memory";
reg = <0x30000000 0x40000000>;
};
cpu1:cpu@1{
device_type = "cpu";
reg = <0x00 0x01>;
};
- 自定义属性
自定义一个管脚标号属性pinnum
pinnum =<0 1 2 3 4>;