节点名称
devicetree
中的每个节点按照以下约定命名:
node-name@unit-address
节点名称组件指定节点的名称。 它的长度应为1至31个字符,并仅由一组字符组成。
字符 | 描述 |
---|---|
0-9 | 数字 |
a-z | 小写字符 |
A-Z | 大写字符 |
, | 逗号 |
. | 点 |
_ | 下划线 |
+ | 加号 |
- | 减号 |
节点名称应以小写或大写字符开头,并能描述设备的类型。
根节点没有节点名称或单元地址。 由正斜线/
标识:
通用名称推荐
节点的名称应该能反应出设备的类型。如果可能,名称应该是以下选择之一
- adc
- accelerometer
- atm
- audio-codec
- audio-controller
- backlight
- bluetooth
- bus
- cache-controller
- camera
- can
- charger
- clock
- clock-controller
- compact-flash
- can
- cpu
- cpus
- crypto
- disk
- display
- dma-controller
- dsp
- eeprom
- efuse
- endpoint
- ethernet
- ethernet-phy
- fdc
- flash
- gpio
- gpu
- gyrometer
- hdmi
- i2c
- ide
- interrupt-controller
- isa
- keyboard
- key
- keys
- lcd-controller
- led
- leds
- led-controller
- light-sensor
- magnetometer
- mailbox
- mdio
- memory
- memory-controller
- mmc
- mmc-slot
- mouse
- nand-controller
- nvram
- oscillator
- parallel
- pc-card
- pci
- pcie
- phy
- pinctrl
- pmic
- pmu
- port
- ports
- pwm
- regulator
- reset-controller
- rtc
- sata
- scsi
- serial
- sound
- spi
- sram-controller
- ssi-controller
- syscon
- temperature-sensor
- timer
- touchscreen
- usb
- usb-hub
- usb-phy
- video-codec
- vme
- watchdog
- wifi
路径名称
通过指定从根节点到所需节点的完整路径,可以唯一地标识 devicetree 中的一个节点。
指定设备路径的规则是:
例如:/node-name-1/node-name-2/node-name-N
根节点的路径是/cpus/cpu@1
/
。
如果到节点的完整路径是明确的,则可以省略单元地址
。
如果客户端程序遇到模糊路径,则其行为是未定义的。属性
devicetree
中的每个节点都具有描述节点特性的属性。 属性由名称和值组成。属性名
属性名称是由以下显示的1到31个字符组成的字符串
字符 | 描述 |
---|---|
0-9 | 数字 |
a-z | 小写字符 |
A-Z | 大写字符 |
, | 逗号 |
. | 点 |
_ | 下划线 |
+ | 加号 |
? | 问号 |
# | 井号 |
非标准属性
名称应指定唯一的字符串前缀,用来标识定义该属性的公司或组织的名称,例如:
值 | 描述 |
---|---|
空值 | 值是空的。 用于传递真实虚假信息,当不存在属性本身具有足够的描述性时。 |
大端格式的32位整数. 例如,内存中 32 位值 0x11223344 将表示为: address[0]=0x11 address[1]=0x22 address[2]=0x33 address[3]=0x44 |
|
表示大端格式的64位整数。由两个 as: <0x11223344 0x55667788>。 值将在内存中表示为: address[0]=0x11 address[1]=0x22 address[2]=0x33 address[3]=0x44 address[4]=0x55 address[5]=0x66 address[6]=0x77 address[7]= 0x88 |
|
字符串包”\0”字符。示例,字符串”hello”将在内存中表示为: address[0]=0x68=’h’ address[1]=0x65=’e’ address[2]=0x6C=’l’, address[3]=0x6C=’l’ address[4]=0x6F=’o’ address[5]=0x00=’\0’ |
|
独特的样式属性。可以参看属性定义文档 | |
一个 |
|
一个字符串列表。例如: “hello”,”world” |
标签
允许标签附加到设备树中的任何节点或属性值。 可以通过引用标签自动生成phandle
和path
引用,而不是显式指定phandle
值或指向节点的完整路径。 标签只用于devicetree
源格式,不编码到DTB
二进制。
标签是通过将冒号(:
)附加到标签名称来创建的。 引用是通过将标签名称与(‘&’)前缀来创建的。
标签的名字应该由长度为1到31个以下字符组成:
字符 | 描述 |
---|---|
0-9 | 数字 |
a-z | 小写字符 |
A-Z | 大写字符 |
- | 破折号 |
带标签的节点定义:
[label:] node-name[@unit-address] {
[properties definitions]
[child nodes]
};
带标签的属性定义:
[label:] property-name = value;
[label:] property-name;