Ich betrachte eine DTS-Datei, die versucht, verschiedene Knoten anzugeben, aber interessanterweise finde ich einige Knoten mit unterschiedlichen Nomenklaturstilen.
/ {
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";
};
};
Was vermittelt es, wenn ein Knoten &
ein Präfix hat? Was ist die Notwendigkeit, sie vom Wurzelknoten zu trennen, während sie im Wurzelknoten selbst vorhanden sein können? Interessanterweise hat das obige Beispiel auch zwei Wurzelknoten. Wie ist das möglich?
hdmi
, befindenmodel
sich undcompatible
auf derselben Ebene im Baum. Das&
ist eine Abkürzung Verweis auf einen bereits vorhandenen Knoten, die wahrscheinlich in einem Include - Datei definiert ist. Diese Abschnitte überschreiben entweder Einträge in der ursprünglichen Definition oder fügen dem Eintrag neue Knoten hinzu.Antworten:
Von: http://developer.toradex.com/device-tree-customization
Knoten können mit dem kaufmännischen Und (&) und der Bezeichnung referenziert werden .
Eigenschaften überschreiben
Um eine Eigenschaft zu überschreiben, muss auf den Knoten mit dem kaufmännischen Und-Zeichen und der Bezeichnung verwiesen werden. Spätere Gerätebaumeinträge überschreiben frühere Einträge (die Reihenfolge der Einträge ist wichtig, daher ist die Einschlussreihenfolge wichtig). Typischerweise überschreiben die höheren Schichten (z. B. Trägerplatinen-Gerätebaum) die niedrigeren Schichten (z. B. SoC-Gerätebaum), da die höheren Schichten zu Beginn die niedrigeren Schichten enthalten.
Beispielsweise kann bei USB-Controllern, die Geräte oder Hosts sein können (Doppelrolle), der Standardmodus explizit mithilfe der Eigenschaft dr_mode überschrieben werden:
quelle