Вы можете перезаписать узел, если вы его пометили.Метка имеет вид label: node@0x1 { /* data */ };
Давайте рассмотрим пример дерева устройств с именем main.dts
:
$ cat main.dts
/dts-v1/;
/ {
model = "Test device tree";
#address-cells = <0>;
#size-cells = <1>;
iomuxc: iomuxc@0x1 {
reg = <0x1>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog>;
imx6qdl-var-som-mx6 {
pinctrl_hog: hoggrp {
fsl,pins = <
0x1b8 0x588 0x000 0x5 0x0 0x80000000
/* more pins */
>;
};
};
};
};
&pinctrl_hog {
fsl,pins = <
0x1b8 0x588 0x000 0x5 0x0 0x89999999
/* more pins */
>;
};
Здесь я перезаписываю элемент управления выводом метки pinctrl_hog
.Вы можете проверить вывод путем компиляции и декомпиляции дерева устройств:
$ dtc -I dts -O dtb -o out.dtb main.dts # compile
$ dtc -I dtb -O dts out.dtb
/dts-v1/;
/ {
model = "Test device tree";
#address-cells = <0x0>;
#size-cells = <0x1>;
iomuxc@0x1 {
reg = <0x1>;
pinctrl-names = "default";
pinctrl-0 = <0x1>;
imx6qdl-var-som-mx6 {
hoggrp {
fsl,pins = <0x1b8 0x588 0x0 0x5 0x0 0x89999999>;
linux,phandle = <0x1>;
phandle = <0x1>;
};
};
};
};
Как видите, контакты установлены на 0x89999999
вместо исходного 0x80000000
.Просто убедитесь, что ярлык существует, прежде чем использовать его.Обычно, как и в C, вы добавляете заголовок поверх вашего файла.
Надеюсь, это поможет; -)