デバイスツリーにおけるアンパサンド接頭辞の意味

デバイスツリーにおけるアンパサンド接頭辞の意味

他のノードを指定しようとしているDTSファイルを見ていますが、興味深いことに、いくつかのノードの命名法スタイルが異なります。

/ {
    model = "TI AM335x BeagleBone Black";
    compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
};

&ldo3_reg {
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
};

&mmc1 {
    vmmc-supply = <&vmmcsd_fixed>;
};

&mmc2 {
    vmmc-supply = <&vmmcsd_fixed>;
    pinctrl-names = "default";
    pinctrl-0 = <&emmc_pins>;
    bus-width = <8>;
    status = "okay";
};

/ {
    hdmi {
        compatible = "ti,tilcdc,slave";
        i2c = <&i2c0>;
        pinctrl-names = "default", "off";
        pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
        pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
        status = "okay";
    };
};

&ノードにプレフィックスがある場合、どの情報を渡しますか?ルートノード自体には存在できますが、ルートノードから分離する必要はありますか?興味深いことに、上記の例には2つのルートノードもあります。これはどのように可能ですか?

ベストアンサー1

から:http://developer.toradex.com/device-tree-customization

アンパサンドを使用してノードを参照できます。(&)性格と商標

属性のオーバーライド

属性をオーバーライドするには、&文字とラベルを使用してノードを参照する必要があります。後でデバイスツリー項目は前の項目を上書きします(項目のシリアル順序が重要であるため、組み込み順序も重要です)。一般に、上位層(キャリアボードデバイスツリーなど)は下位層(SoCデバイスツリーなど)をオーバーレイします。上位階層には最初に下位階層が含まれているためです。

たとえば、デバイスまたはホスト(デュアルロール)として機能できるUSBコントローラの場合は、dr_modeプロパティを使用してデフォルトモードを明示的にオーバーライドできます。

&usbdev0 {
    dr_mode = "host";
};

おすすめ記事