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