Bedeutung eines kaufmännischen Und-Präfixes in einem Gerätebaum

9

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?

kakeh
quelle
1
Bei der Suche nach Hilfe bei meinem Problem bin ich darauf gestoßen. Ich bin kein Experte (das ist also keine Antwort, sondern ein Kommentar, aber ich werde es versuchen). Die beiden Wurzelknoten sind in Ordnung, sie werden einfach zusammen "zusammengeführt". In dem Beispiel, das Sie gegeben haben hdmi, befinden modelsich und compatibleauf 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.
Steve

Antworten:

5

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:

&usbdev0 {
    dr_mode = "host";
};
Xofo
quelle