i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码,并提供相关历程,支持8路PDM接口、5路SAI接口、2路Speaker。系统支持Android9.0(支持获取root限)Linux4.14.78+Qt5.10.1、Yocto、Ubuntu20、Debian9系统。适用于智能充电桩,物联网,工业控制,医疗,智能交通等,可用于任何通用工业和物联网应用、
【公众号】迅为电子
【粉丝群】258811263
第五十一章 添加设备树节点
本章导读
在上一章节已经对 DTS 的语法做了比较详细的介绍,在本节中根据前面讲解的语法,从头到尾编写一个小型的设备树文件。我们会以一个虚拟的设备作为参考,提前假设一些外部设备和功能。当然这个虚拟的设备没有任何的意思,只是为了复习掌握前面学习的设备树语法。在实际产品的开发过程中,我们不需要从头编写一个 dts 设备树文件,一般都是使用 soc 厂商提供的 dts 文件,我们只需要根据自己的实际情况修改添加自己的内容即可。
本章内容对应视频讲解链接(在线观看):
在设备树种添加自定义节点 → https://www.bilibili.com/video/BV1Vy4y1B7ta?p=26
51.1 查看设备树节点方法
我们以iMX8MM开发板为例,打开内核源码arch/arm64/boot/dts/rockchip/目录,如下所示:
输入命令编辑设备树文件
vi itop8mm-evk.dtsi
打开文件后,我们首先找到根节点,如下图所示:
我们可以在根节点的末尾准备添加设备节点,那么我们怎么来验证自己添加设备节点成功了呢?设备树可以在linux系统里面以文件或者是目录的形式表示出来,这里有两种方法。
方法一,我们进入到开发板的/proc/device-tree/目录下,如下图所示
cd /proc/device-tree
ls
比如说,我们想要查看根节点下的"model""compatible",输入以下命令
cpp
cat model
cat compatible
接下来我们可以用这种方法来验证在设备树文件里面我们是否成功添加了自己的节点。
方法二,我们也可以进入开发板的/sys/firmware/devicetree/base/目录下,如下图所示:
cd /sys/firmware/devicetree/base/
ls
51.2 添加自定义节点
在设备树文件itop8mm-evk.dtsi文件中根节点添加自定义的节点,如下图所示,添加完保存退出。
注意,添加自定义节点前要注释掉冲突使用的设备。添加完保存文件并退出,接下来编译设备树文件。
51.3 编译设备树文件
如果环境没有dtc工具,需要安装dtc工具。输入以下命令安装dtc工具:
apt-get install device-tree-compiler
具体编译步骤可以参考IMX8MM开发板使用手册源码编译章节。
51.4 运行测试
将编译生成的设备树文件烧写到开发板上面,开发板启动后进入/proc/device-tree目录下,如下图所示:
cd /proc/device-tree
输入以下命令查看test节点信息,如下图所示:
cd test
cat compatibel
51.4.1 验证结论
我们修改设备树文件itop8mm-evk.dtsi为下图所示,验证两个结论
1 通过节点的引用来修改原来节点里面的内容
2通过节点的引用往原来的节点里面添加内容
我们添加了节点引用"status = "okay",并且重新赋值给compatible为"test1234"。
修改完设备树文件,然后编译烧写到开发板上面进入/proc/device-tree目录下,如下图所示:
cd /proc/device-tree
cd test
cat compatibel
cat status
由上图可知,我们验证的两个结论完全正确,已经可以查看到覆盖掉的compatible属性显示"test1234",可以查到status属性的状态为"okay"。