Irr*_*Irr 3 arm linux-device-driver linux-kernel device-tree
此代码段来自RIoTBoard的设备树(/arch/arm/boot/dts/imx6dl-riotboard.dts
)
&hdmi {
ddc-i2c-bus = <&i2c2>;
status = "okay";
};
Run Code Online (Sandbox Code Playgroud)
我已经遍历了devicetree.org和linux内核的documentation / devicetree文件夹中的设备树文档,但是当用作节点名称时,我无法找到任何有关phandle含义的描述。
我认为问题更多的是关于&hdmi
示例的部分,&
特别是使用节点名称的引用。设备树内&
文件有两种含义:一种用于数组中的项目,另一种用于数组外部的项目。
在数组中,&
引用将扩展为 phandle。
在数组之外,&
引用将扩展到您所引用的节点的路径。
更多信息请点击这里:
https://elinux.org/Device_Tree_Mysteries#Labels
https://elinux.org/Device_Tree_Mysteries#Label_as_a_phandle_vs_Label_as_a_path
小智 6
我用一个例子来回答:
label:node {
#address-cell = <1>;
#size-cells = <0>;
}
&label {
proporties = <2>;
};
Run Code Online (Sandbox Code Playgroud)
方法:
label:node {
#address-cell = <1>;
#size-cells = <0>;
proporties = <2>;
}
Run Code Online (Sandbox Code Playgroud)
您可以将phandle理解为该节点的某种指针,该指针指向保存在同一文件或另一个文件中的该节点的定义。我可以从下面的链接中以AM33xx SoC时钟文件为例来说明虚拟概念:
http://lxr.free-electrons.com/source/arch/arm/boot/dts/am33xx-clocks.dtsi
以下是看门狗的功能时钟:
wdt1_fck: wdt1_fck {
#clock-cells = <0>;
compatible = "ti,mux-clock";
clocks = <&clk_rc32k_ck>, <&clkdiv32k_ick>;
reg = <0x0538>;
};
Run Code Online (Sandbox Code Playgroud)
现在wdt1_fck具有两个父时钟源:clk_rc32k_ck和clkdiv32k_ick
这些是句柄,或者您可以说出它们的时钟定义的指针:
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>;
};
Run Code Online (Sandbox Code Playgroud)
因此,基本上phandle可以在整个文件中使用节点的定义。
归档时间: |
|
查看次数: |
6281 次 |
最近记录: |