您好我有一个看起来像这样的设备树。我需要在包含此设备树的另一个文件中引用dma @ 40400000节点。在此设备树中,dma @ 40400000节点没有标签。
设备tree1.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
设备tree2.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的节点?
答案 0 :(得分:0)
你想做的事情是完全可能的(我只是测试它,以防万一)。如果您遇到编译器错误,我的猜测是存在语法错误。
继续之前的两个注意事项:1)也许你应该考虑更新你的问题,显示完整的dtc编译器错误。 2)记住@sawdust关于两个文件的评论是.dtsi后缀。
现在,关于你的错误。我只是在猜测,但似乎你的混合动作是“全路径”参考。
/include/ "device-tree1.dtsi"
/ {
&amba_pl { /* wrong, amba_pl is not a phandle, can't use & */
axi_dma: dma@40400000 {
/* properties here */
dma-channel@40400000 {
/* blah */
};
};
};
};
/include/ "device-tree1.dtsi"
/ {
amba_pl {
axi_dma: dma@40400000 {
/* properties here */
dma-channel@40400000 {
/* blah */
};
};
};
};