节点名称

devicetree中的每个节点按照以下约定命名:

  1. node-name@unit-address

节点名称组件指定节点的名称。 它的长度应为1至31个字符,并仅由一组字符组成。

字符 描述
0-9 数字
a-z 小写字符
A-Z 大写字符
, 逗号
.
_ 下划线
+ 加号
- 减号

节点名称应以小写或大写字符开头,并能描述设备的类型。
根节点没有节点名称或单元地址。 由正斜线/标识:
02.节点描述 - 图1

通用名称推荐

节点的名称应该能反应出设备的类型。如果可能,名称应该是以下选择之一

  • 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 中的一个节点。
    指定设备路径的规则是:
    1. /node-name-1/node-name-2/node-name-N
    例如:
    1. /cpus/cpu@1
    根节点的路径是/
    如果到节点的完整路径是明确的,则可以省略单元地址
    如果客户端程序遇到模糊路径,则其行为是未定义的。

    属性

    devicetree中的每个节点都具有描述节点特性的属性。 属性由名称和值组成。

    属性名

    属性名称是由以下显示的1到31个字符组成的字符串
字符 描述
0-9 数字
a-z 小写字符
A-Z 大写字符
, 逗号
.
_ 下划线
+ 加号
? 问号
# 井号

非标准属性名称应指定唯一的字符串前缀,用来标识定义该属性的公司或组织的名称,例如:

  • fsl,channel-fifo-len
  • ibm,ppc-interrupt-server#s
  • linux,network-index

    属性值

    属性值是包含与属性关联信息的零字节或多字节数组。
描述
空值 值是空的。 用于传递真实虚假信息,当不存在属性本身具有足够的描述性时。
大端格式的32位整数. 例如,内存中 32 位值 0x11223344 将表示为:
address[0]=0x11
address[1]=0x22
address[2]=0x33
address[3]=0x44
表示大端格式的64位整数。由两个值组成,其中第一个值包含整数中高位,第二个值包含低位。例如,64位值0x1122334455667788将表示为两个单元格。
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’
独特的样式属性。可以参看属性定义文档
一个的值。Aphandle值是引用devicetree中另一个节点的方法。 任何可以引用的节点都定义了具有唯一值的phandle属性。该数字用于具有phandle值类型的属性的值
一个字符串列表。例如: “hello”,”world”

标签

允许标签附加到设备树中的任何节点或属性值。 可以通过引用标签自动生成phandlepath引用,而不是显式指定phandle值或指向节点的完整路径。 标签只用于devicetree源格式,不编码到DTB二进制。
标签是通过将冒号(:)附加到标签名称来创建的。 引用是通过将标签名称与(‘&’)前缀来创建的。
标签的名字应该由长度为1到31个以下字符组成:

字符 描述
0-9 数字
a-z 小写字符
A-Z 大写字符
- 破折号

带标签的节点定义:

  1. [label:] node-name[@unit-address] {
  2. [properties definitions]
  3. [child nodes]
  4. };

带标签的属性定义:

  1. [label:] property-name = value;
  2. [label:] property-name;