【发布时间】:2018-02-05 07:47:28
【问题描述】:
您好,我有一个看起来像这样的设备树。我需要在包含此设备树的另一个文件中引用 dma@40400000 节点。在此设备树中,dma@40400000 节点没有标签。
设备树1.dtsi
/dts-v1/;
/ {
amba_pl {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "simple-bus";
ranges;
dma@40400000 {
#dma-cells = <0x1>;
clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk";
clocks = <0x1 0xf 0x1 0xf 0x1 0xf 0x1 0xf>;
compatible = "xlnx,axi-dma-1.00.a";
interrupt-parent = <0x4>;
interrupts = <0x0 0x1d 0x4 0x0 0x1e 0x4>;
reg = <0x40400000 0x10000>;
xlnx,addrwidth = <0x20>;
dma-channel@40400000 {
compatible = "xlnx,axi-dma-mm2s-channel";
dma-channels = <0x1>;
interrupts = <0x0 0x1d 0x4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
};
dma-channel@40400030 {
compatible = "xlnx,axi-dma-s2mm-channel";
dma-channels = <0x1>;
interrupts = <0x0 0x1e 0x4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
};
};
};
};
我想重新定义它或可选地重新定义 amba_pl 节点,以便节点 dma@40400000 不会更改但具有标签 axi_dma
设备树2.dtsi
/include/ "device-tree1.dtsi"
/ {
&amba_pl {
axi_dma: dma@40400000 {
#dma-cells = <0x1>;
clock-names = "s_axi_lite_aclk", "m_axi_sg_aclk", "m_axi_mm2s_aclk", "m_axi_s2mm_aclk";
clocks = <0x1 0xf 0x1 0xf 0x1 0xf 0x1 0xf>;
compatible = "xlnx,axi-dma-1.00.a";
interrupt-parent = <0x4>;
interrupts = <0x0 0x1d 0x4 0x0 0x1e 0x4>;
reg = <0x40400000 0x10000>;
xlnx,addrwidth = <0x20>;
dma-channel@40400000 {
compatible = "xlnx,axi-dma-mm2s-channel";
dma-channels = <0x1>;
interrupts = <0x0 0x1d 0x4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
};
dma-channel@40400030 {
compatible = "xlnx,axi-dma-s2mm-channel";
dma-channels = <0x1>;
interrupts = <0x0 0x1e 0x4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
};
};
};
};
但是,当我尝试从 device-tree2.dtsi 中的 device-tree1.dtsi 重新定义 amba_pl 时,编译器无法解析设备树。如何从 device-tree1.dtsi 向节点 dma@40400000 添加标签?
更新
浏览了规范后,我想重新提出我的问题。 如何将 phandle 添加到包含在不同 dtsi 文件中的节点或引用没有 phandle 的节点?
【问题讨论】:
-
根据 Devicetree 规范仅供参考:“包含文件的名称应以 “.dtsi” 结尾。”,而不是 。 dts 就像你一样。见devicetree.org/specifications
标签: linux embedded-linux device-tree