设备树中 & 符号前缀的含义

设备树中 & 符号前缀的含义

我正在查看一个尝试指定不同节点的 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";
    };
};

&如果一个节点有前缀,它传达什么信息?虽然它们可以存在于根节点本身中,但将它们与根节点分离的必要性是什么?有趣的是,上面的例子也有两个根节点,这怎么可能呢?

答案1

从:http://developer.toradex.com/device-tree-customization

可以使用&符号引用节点(&)性格和标签

覆盖属性

要覆盖属性,需要使用 & 字符和标签来引用节点。后面的设备树条目会覆盖前面的条目(条目的序列顺序很重要,因此包含顺序很重要)。通常,较高层(例如载板设备树)会覆盖较低层(例如SoC 设备树),因为较高层一开始就包含较低层。

例如,对于能够作为设备或主机(双重角色)的 USB 控制器,可以使用 dr_mode 属性显式覆盖默认模式:

&usbdev0 {
    dr_mode = "host";
};

相关内容