【问题标题】:What is the meaning of a phandle when used as device tree node name?用作设备树节点名称时,phandle 的含义是什么?
【发布时间】:2015-06-28 03:45:25
【问题描述】:

此代码 sn-p 来自 RIoTBoard (/arch/arm/boot/dts/imx6dl-riotboard.dts) 的设备树

&hdmi {
         ddc-i2c-bus = <&i2c2>;
         status = "okay";
};

我已经浏览了 devicetree.org 和 linux 内核的 documentation/devicetree 文件夹中的设备树文档,但我找不到任何关于 phandle 用作节点名称时的含义的描述。

【问题讨论】:

    标签: linux-kernel arm linux-device-driver device-tree


    【解决方案1】:

    您可以将 phandle 理解为节点的某种指针,它指向该节点的定义,该节点要么保存在同一个文件中,要么保存在另一个文件中。 我可以以 AM33xx SoC 的以下链接为例来解释 phandle 概念 时钟文件:

    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>;
    };
    

    现在 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 可以跨文件使用节点的定义。

    【讨论】:

      【解决方案2】:

      我会用一个例子来回答:

      label:node {
        #address-cell = <1>;
        #size-cells = <0>;
      }
      
      &label {
        proporties = <2>;
      };
      

      意思:

      label:node {
        #address-cell = <1>;
        #size-cells = <0>;
        proporties = <2>;
      }
      

      【讨论】:

        【解决方案3】:

        我认为问题更多是关于示例的&amp;hdmi 部分,特别是使用&amp; 引用作为节点名称。设备树文件中的&amp; 有两种含义:一种表示数组中的项,另一种表示数组外的项。

        • 在数组中,&amp; 引用将扩展为 phandle。

        • 在数组之外,&amp; 引用将扩展到您所引用的节点的路径。

        更多信息可在此处获得:

        https://elinux.org/Device_Tree_Mysteries#Labels

        https://elinux.org/Device_Tree_Mysteries#Label_as_a_phandle_vs_Label_as_a_path

        【讨论】:

          猜你喜欢
          • 2021-07-09
          • 2023-03-23
          • 1970-01-01
          • 1970-01-01
          • 2014-07-31
          • 1970-01-01
          • 2013-06-30
          • 2015-04-29
          • 1970-01-01
          相关资源
          最近更新 更多