此代码片段来自RIoTBoard (/arch/arm/boot/dts/imx6dl-riotboard.dts
)的设备树
&hdmi {
ddc-i2c-bus = <&i2c2>;
status = "okay";
};
我已经浏览了devicetree.org上和linux内核的documentation/devicetree文件夹中的设备树文档,但是我找不到任何关于phandle用作节点名的含义的描述。
发布于 2015-07-27 20:43:51
您可以将phandle理解为节点的某种类型的指针,它指向保存在同一文件或其他文件中的该节点的定义。我可以通过下面的AM33xx SoC时钟文件链接来解释phandle的概念:
http://lxr.free-electrons.com/source/arch/arm/boot/dts/am33xx-clocks.dtsi
以下是watchdog的功能时钟:
wdt1_fck: wdt1_fck {
#clock-cells = <0>;
compatible = "ti,mux-clock";
clocks = <&clk_rc32k_ck>, <&clkdiv32k_ick>;
reg = <0x0538>;
};
现在wdt1_fck有两个父时钟源: clk_rc32k_ck和clkdiv32k_ick
这些是phandles,或者您可以说指向它们的时钟定义的指针:
clk_rc32k_ck: clk_rc32k_ck {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <32000>;
};
clkdiv32k_ick: clkdiv32k_ick {
#clock-cells = <0>;
compatible = "ti,gate-clock";
clocks = <&clkdiv32k_ck>;
ti,bit-shift = <1>;
reg = <0x014c>;
};
所以基本上,phandle允许跨文件使用节点的定义。
发布于 2019-06-26 21:27:17
我将用一个例子来回答:
label:node {
#address-cell = <1>;
#size-cells = <0>;
}
&label {
proporties = <2>;
};
意思是:
label:node {
#address-cell = <1>;
#size-cells = <0>;
proporties = <2>;
}
https://stackoverflow.com/questions/31095951
复制相似问题