DTS配置

本文档简要介绍设备树DTS及其常用语法,并演示如何新增一个的板子 DTS 配置。

概述

设备树源文件(Device Tree Source,简称DTS)是一种描述硬件设备的数据结构,用于在Linux内核中定义和配置硬件设备。设备树源文件使用一种类似于文本的格式,通过层次结构和属性描述来表示硬件设备及其之间的关系。

设备树源文件被编译成设备树二进制文件(Device Tree Blob,简称DTB),内核在启动时加载并解析该文件,从中提取硬件设备的信息以进行初始化和配置。

设备树的引入解决了传统的"硬编码"方式在处理不同硬件配置时的不灵活性和可维护性问题。使用设备树,硬件描述和配置信息被抽象出来,使得内核能够适应不同的硬件平台而无需修改内核代码。这样,同一个内核可以在多个不同的硬件设备上运行,只需加载相应的设备树

DTS语法

dts 语法可以像 c/c++一样,通过#include xxx.dtsi 来包含其他公用的 dts 数据。dts 文件将继承包含的 dtsi文件的所有设备节点的属性和值。如 property 在多个 dts/dtsi 文件被定义,它的值最终为 dts 的定义。所有和芯片相关的控制器节点都会被定义在 soc.dtsi,如需使能该设备功能,需要在 dts 文件中设置其 status 为"okay"。关闭该设备,需要在 dts 文件中设置其 status 为"disabled"。

/dts-v1/;
#include "rk3399-evb-ind.dtsi"
#include "rk3399-linux.dtsi"
...
&i2s2 {
    #sound-dai-cells = <0>;
    status = "okay";
};
&hdmi_sound {
    status = "okay";
};

新增一个产品 DTS

创建 dts 文件

修改 dts 所在目录的Makefile