1、什么是设备树
设备树DTS(Device Tree Source),DTS文件用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU数量,内存基地址,IIC接口上接了哪些设备等等,如下图:
2、DTS、DTB、DTC的关系
1、DTS是设备树的源文件
2、DTB是DTS编译后得到的二进制文件
3、DTC是DTS的编译工具,源码在内核的scripts/dtc目录下面,如下:
3、如何编译设备树
1、make dtbs:编译所有的dts文件;
2、make xxx.dts:编译指定的dts文件按;
4、DTS基本结构
设备树也有头文件,扩展名为.dtsi
4.1、语法
1、根节点:/
2、从/根节点开始描述设备信息
3、在/根节点外有一些&cpu0这样的语句是“追加”
这里以imx6ull-alientek-emmc.dts为例,下图chosen,memor为子节点
/dts-v1/;
#include <dt-bindings/input/input.h>
#include "imx6ull.dtsi"
/ {
model = "Freescale i.MX6 ULL 14x14 EVK Board";
compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
chosen {
stdout-path = &uart1;
};
memory {
reg = <0x80000000 0x20000000>;
};
&cpu0 {
arm-supply = <®_arm>;
soc-supply = <®_soc>;
dc-supply = <®_gpio_dvfs>;
};
}
4、节点名字完整的要求:node-name@unit-address,例如:
i2c4: i2c@021f8000 {
#address-cells = <1>;
#size-cells = <0