This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
library:rk3568:dtsguide [2022/10/31 11:52] lhaosen [1.2 节点之间的联系] |
library:rk3568:dtsguide [2023/06/05 23:30] (current) lhaosen [1. DTS文件] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== DTS简述 ====== | ====== DTS简述 ====== | ||
+ | 参考: | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | ===== - DTS文件 ===== | ||
+ | |||
+ | DTS文件引用树: | ||
+ | |||
+ | kernel/ | ||
+ | |||
+ | < | ||
+ | ./ | ||
+ | ├─./ | ||
+ | │ └─./ | ||
+ | │ | ||
+ | │ │ └─./ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | └─./ | ||
+ | </ | ||
===== - node节点 ===== | ===== - node节点 ===== | ||
Line 15: | Line 37: | ||
==== - 一般属性 ==== | ==== - 一般属性 ==== | ||
- | === - 地址(reg) === | + | === - reg === |
reg的格式通常为< | reg的格式通常为< | ||
Line 54: | Line 76: | ||
}; | }; | ||
- | === - 兼容性 | + | === - compatible |
如果一个节点是设备节点,那么它一定要有compatible(兼容性),因为这将作为驱动和设备(设备节点)的匹配依据, \\ | 如果一个节点是设备节点,那么它一定要有compatible(兼容性),因为这将作为驱动和设备(设备节点)的匹配依据, \\ | ||
compatible(兼容性)的值可以有不止一个字符串以满足不同的需求。 \\ | compatible(兼容性)的值可以有不止一个字符串以满足不同的需求。 \\ | ||
而根节点的compatible也是非常重要的,因为系统启动后,将根据根节点的compatible来判断cpu信息,并由此进行初始化。 | 而根节点的compatible也是非常重要的,因为系统启动后,将根据根节点的compatible来判断cpu信息,并由此进行初始化。 | ||
+ | |||
+ | === - pinctrl-names === | ||
+ | |||
+ | pinctrl-names: | ||
+ | default、init、sleep、idle \\ | ||
+ | 其中, | ||
+ | |||
+ | pinctrl-0: | ||
+ | 该配置项定义了该设备的一种工作状态,其对应于pinctrl-names中首个工作状态。 | ||
+ | |||
+ | 下面举例说明一下: | ||
+ | deviceA { | ||
+ | pinctrl-names = “defalut”, | ||
+ | pinctrl-0 = <& | ||
+ | pinctrl-1 = <& | ||
+ | }; | ||
+ | |||
+ | deviceA节点,定义了" | ||
Line 81: | Line 121: | ||
* 标号引用常常还作为节点的重写方式 | * 标号引用常常还作为节点的重写方式 | ||
+ | |||
* 如果一个节点是属性节点(即仅仅是作为属性被其他节点调用),可定义在任意位置 | * 如果一个节点是属性节点(即仅仅是作为属性被其他节点调用),可定义在任意位置 | ||
- | - 属性节点定义在哪里其实无所谓,重要的是调用的位置,比如lcd屏幕的时序,其实我们完全可以把它定义在任何地方,然后在lcd节点下用& | + | 属性节点定义在哪里其实无所谓,重要的是调用的位置,比如lcd屏幕的时序, |
+ | 其实我们完全可以把它定义在任何地方,然后在lcd节点下用& | ||
+ | 这有点类似于函数:在哪定义不重要,重要的是在哪调用。 | ||
| | ||
+ | ===== - DTS相关工具 ===== | ||
+ | |||
+ | ==== - devicetree(linux) ==== | ||
+ | |||
+ | 工具主页:https:// | ||
+ | |||
+ | * 安装: | ||
+ | |||
+ | wget https:// | ||
+ | |||
+ | * 参数 | ||
+ | |||
+ | < | ||
+ | usage: 从设置的根节点预览或搜索指定关键字 | ||
+ | |||
+ | 设备树查看器(0.9) | ||
+ | |||
+ | options: | ||
+ | -s SET_CONF, -set SET_CONF, --set SET_CONF | ||
+ | 设置dtv.conf文件 | ||
+ | -c, -config, --config | ||
+ | 显示当前使用的dtv.conf文件路径 | ||
+ | -r, -root, --root | ||
+ | -z, -hp, --hidePath, -short, --short | ||
+ | 按照最短路径显示 | ||
+ | -f FIND_KEYWORD, | ||
+ | 搜索指定内容 | ||
+ | -x {re,all}, -flag {re,all}, --flag {re,all} | ||
+ | re: | ||
+ | -d, -debug, --debug | ||
+ | -no-color, --no-color | ||
+ | 禁用颜色显示 | ||
+ | -v, --version | ||
+ | --history | ||
+ | -h, --help | ||
+ | </ | ||
+ | |||
+ | * 设置: | ||
+ | |||
+ | dt -set ~/ | ||
+ | |||
+ | * 运行: | ||
+ | |||
+ | dt -h | ||
+ | dt -z | ||
+ | | ||
+ | dt -z -find pinctrl | ||
+ | |||
+ |