一.? 简介
前面几篇文章学习了 设备树文件编译,调用关系,以及设备节点。本文继续学习设备树文件的语法。
节点是由一堆的属性组成,节点都是具体的设备,不同的设备需要的属性不同,用户可以自定义属性。除了用户自定义属性,有很多属性是标准属性,
Linux
下的很多外设驱动都会使用
这些标准属性,本文我们就来学习一下几个常用的标准属性。
二.? 设备树文件中设备节点的标准属性
下面就来学习一下几个常用的标准属性。
1.? compatible 属性
compatible
属性也叫做“兼容性”属性,这是非常重要的一个属性!
compatible
属性的值是一个字符串列表,
compatible
属性用于将设备和驱动绑定起来。字符串列表用于选择设备所要
使用的驱动程序,
compatible
属性的值格式如下所示:
"manufacturer,model"
其中
manufacturer
表示厂商,
model
一般是模块对应的驱动名字。
例如,
imx6ull-alientek-
emmc.dts
中
sound
节点是
I.MX6U-ALPHA
开发板的音频设备节点,
I.MX6U-ALPHA
开发板上
的音频芯片采用的欧胜
(WOLFSON)
出品的
WM8960
,
sound
节点的
compatible
属性值如下:
compatible = "fsl,imx6ul-evk-wm8960","fsl,imx-audio-wm8960";
属性值有两个,分别为“
fsl,imx6ul-evk-wm8960
”和“
fsl,imx-audio-wm8960
”,其中 “
fsl
” 表示厂商是飞思卡尔,“
imx6ul-evk-wm8960
”和“
imx-audio-wm8960
”表示驱动模块名字。
sound
这个设备首先使用第一个兼容值在
Linux
内核里面查找,看看能不能找到与之匹配的驱动文件,
如果没有找到的话就使用第二个兼容值查。
一般驱动程序文件都会有一个
OF
匹配表,此
OF
匹配表保存着一些
compatible
值,如果设
备节点的
compatible
属性值和
OF
匹配表中的任何一个值相等,那么就表示设备可以使用这个
驱动。
2.? model 属性
model
属性值也是一个字符串,一般
model
属性描述设备模块信息,比如名字什么的,比如:
3. status 属性
status 属性看名字就知道是和设备状态有关的,status 属性值也是字符串,字符串是设备的状态信息。可选的状态如下表所示 :
值 | 描述 |
“okay”
| 表明设备是可操作的。 |
“disabled”
|
表明设备当前是不可操作的,但是在未来可以变为可操作的,比如热插拔设备插入以后。至于 disabled 的具体含义还要看设备的绑定文档。
|
“fail”
|
表明设备不可操作,设备检测到了一系列的错误,而且设备也不大可能变得可
操作。
|
“fail-sss”
| 含义和“fail”相同,后面的 sss 部分是检测到的错误内容。 |
4. #address-cells 和#size-cells 属性
5.? reg 属性
6.? ranges 属性
7.? name 属性
8. device_type 属性