Ý nghĩa của tiền tố và ký hiệu trong cây thiết bị


9

Tôi đang xem một tệp DTS cố gắng chỉ định các nút khác nhau, nhưng thú vị là tôi tìm thấy một vài nút có kiểu danh pháp khác nhau.

/ {
    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";
    };
};

Nó truyền tải cái gì nếu một nút có &tiền tố của nó? Sự cần thiết của việc tách chúng khỏi nút gốc, trong khi chúng có thể có mặt trong chính nút gốc? Thật thú vị, ví dụ trên cũng có hai nút gốc, làm thế nào là có thể?


1
Trong khi tìm kiếm sự giúp đỡ với vấn đề của tôi, tôi đã chạy qua đây. Tôi không phải là chuyên gia (vì vậy đây không phải là một câu trả lời, mà là một nhận xét, nhưng tôi sẽ thử). Hai nút gốc đều ổn, chúng chỉ đơn giản là "hợp nhất" với nhau. Vì vậy, trong ví dụ bạn đưa ra, hdmi, model, và compatibleđang ở cùng cấp trong cây. Đây &là một tham chiếu tốc ký đến một nút đã có sẵn, có thể được xác định trong một tệp bao gồm. Các phần này hoặc ghi đè các mục trong định nghĩa ban đầu hoặc thêm các nút mới vào mục.
Steve

Câu trả lời:


5

Từ: http://developer.toradex.com/device-tree-customization

Các nút có thể được tham chiếu bằng ký tự dấu và (&)nhãn .

Thuộc tính ghi đè

Để ghi đè lên một thuộc tính, nút cần được tham chiếu bằng ký tự dấu và và nhãn. Các mục cây thiết bị sau đó ghi đè lên các mục trước đó (thứ tự các mục của mục là vấn đề quan trọng, do đó thứ tự bao gồm có vấn đề). Thông thường, các lớp cao hơn (ví dụ: cây thiết bị bảng vận chuyển) ghi đè lên các lớp thấp hơn (ví dụ: cây thiết bị SoC) vì các lớp cao hơn bao gồm các lớp thấp hơn ngay từ đầu.

Ví dụ: đối với bộ điều khiển USB có khả năng là thiết bị hoặc máy chủ (vai trò kép), người ta có thể ghi đè lên chế độ mặc định một cách rõ ràng bằng cách sử dụng thuộc tính dr_mode:

&usbdev0 {
    dr_mode = "host";
};
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.