#address-cells和#size-cells属性
这两个属性的值都是无符号32位整型,用于描述子节点的地址信息。#address-cells属性值决定了子节点reg属性中地址信息所占用的字长(32位),#size-cells属性值决定了子节点reg属性中长度信息所占的字长(32 位)
#address-cells = <1>, #size-cells = <0>,说明子节点 reg 属性中起始地址所占用的字长为 1,地址长度所占用的字长为 0。
因为父节点设置了#address cells = <1>, #size-cells = <0>,因此 size=0,没有 length 的值,相当于设置了起始地址而没有设置地址长度。
reg属性
#address-cells 和#size-cells 表明了子节点应该如何编写 reg 属性值,一般 reg 属性都是和地址有关的内容,和地址相关的信息有两种:起始地址和地址长度, reg 属性的格式一为:
reg = <address1 length1 address2 length2 address3 length3……>
reg 属性一般用于描述设备地址空间资源信息,一般都是某个外设的寄存器地址范围信息.
父节点中指定了#address-cells = <2>;#size-cells = <1>,则子节点dev-bootscs0中的reg中的前两个数表示一个地址,即MBUS_ID(0xf0, 0x01)和0x1045C,最后一个数的表示地址跨度,即是0x4