장치 트리에서 앰퍼샌드 접두사의 의미

장치 트리에서 앰퍼샌드 접두사의 의미

다른 노드를 지정하려고 하는 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";
};

관련 정보