设备树为什么要配置#address-cells = <1>; #size-cells = <0>;
时间: 2024-02-26 12:55:47 浏览: 27
在设备树中,每个设备节点通常都需要指定它的物理地址和大小。而#address-cells和#size-cells属性就是用来指定这些信息的格式。#address-cells指定物理地址所需要的单元数量,#size-cells指定设备大小所需要的单元数量。这两个属性的值通常是固定的,例如#address-cells = <1>表示物理地址需要一个32位的单元,#size-cells = <0>表示设备大小不需要指定单元数量,即设备大小以字节为单位。这样做的好处是可以在设备树中统一描述设备信息,便于内核和驱动程序的解析和使用。
相关问题
这段设备树里有几个节点 anx7625@2c { phandle = <0x412>; reset-gpios = <0x37 0x1d 0x0>; enable-gpios = <0x37 0x57 0x0>; interrupts = <0x2 0x0>; interrupt-parent = <0x3fd>; reg = <0x58>; compatible = "analogix,anx7625"; ports { #size-cells = <0x0>; #address-cells = <0x1>; port@0 { reg = <0x0>; endpoint { phandle = <0x40d>; remote-endpoint = <0x406>; }; }; }; };
这段设备树中只有一个节点,节点名称为 "anx7625@2c",该节点包含了以下属性:
- phandle
- reset-gpios
- enable-gpios
- interrupts
- interrupt-parent
- reg
- compatible
此外,该节点还包含了一个名为 "ports" 的子节点,该子节点包含一个名为 "port@0" 的子节点,因此整个设备树中共有两个节点。
&amba_pl { vcap_mipi { compatible = "xlnx,video"; dma-names = "port0"; dmas = <&v_frmbuf_wr_0 0>; vcap_ports: ports { #address-cells = <1>; #size-cells = <0>; vcap_port: port@0 { direction = "input"; reg = <0>; vcap_in: endpoint { remote-endpoint = <&csc_out>; }; }; }; }; };
这一个 Device Tree 的片段,其中定义了一个名为 "vcap_mipi" 的视频设备节点,它使用了 Xilinx 的 video 驱动,并且只有一个输入端口 "vcap_in",通过DMA传输数据到 "v_frmbuf_wr_0" 设备的端口0。同时,该节点也定义了一个名为 "vcap_ports" 的子节点,其中包含一个名为 "vcap_port" 的输入端口,它连接到 "vcap_in" 终端节点,并且设置了方向为 "input"。