Добавить свойство в дерево устройств Linux из другого файла - PullRequest
0 голосов
/ 13 апреля 2019

У меня есть инструмент, который автоматически генерирует дерево устройств для встроенной системы с пользовательскими периферийными устройствами. Мне нужно сослаться на узел в этом автоматически сгенерированном файле и добавить свойства к узлу без фактического изменения автоматически сгенерированного файла, так как он будет перезаписываться каждый раз, когда я собираю ядро ​​/ дерево устройств / загрузчики и т. Д. Я не совсем уверен, как это сделать. В автоматически сгенерированном файле с именем pl.dtsi узел дерева устройств выглядит следующим образом

vid_phy_controller_0: vid_phy_controller@80060000 {
        clock-names = "mgtrefclk0_pad_p_in", "mgtrefclk0_pad_n_in", "mgtrefclk1_pad_p_in", "mgtrefclk1_pad_n_in", "gtnorthrefclk1_in", "gtnorthrefclk1_odiv2_in", "vid_phy_tx_axi4s_aclk", "vid_phy_rx_axi4s_aclk", "vid_phy_sb_aclk", "vid_phy_axi4lite_aclk", "drpclk";
        clocks = <&misc_clk_2>, <&misc_clk_2>, <&misc_clk_2>, <&misc_clk_2>, <&misc_clk_2>, <&misc_clk_2>, <&misc_clk_0>, <&misc_clk_0>, <&clk 71>, <&clk 71>, <&clk 71>;
        compatible = "xlnx,vid-phy-controller-2.2", "xlnx,vid-phy-controller-2.1";
        interrupt-names = "irq";
        interrupt-parent = <&gic>;
        interrupts = <0 89 4>;
        reg = <0x0 0x80060000 0x0 0x10000>;
        xlnx,hdmi-fast-switch = <1>;
        xlnx,input-pixels-per-clock = <2>;
        xlnx,nidru = <1>;
        xlnx,nidru-refclk-sel = <3>;
        xlnx,rx-no-of-channels = <3>;
        xlnx,rx-pll-selection = <0>;
        xlnx,rx-protocol = <1>;
        xlnx,rx-refclk-sel = <1>;
        xlnx,transceiver-type = <5>;
        xlnx,transceiver-width = <2>;
        xlnx,tx-buffer-bypass = <1>;
        xlnx,tx-no-of-channels = <3>;
        xlnx,tx-pll-selection = <6>;
        xlnx,tx-protocol = <1>;
        xlnx,tx-refclk-sel = <0>;
        vphy_lane0: vphy_lane@0 {
            #phy-cells = <4>;
        };
        vphy_lane1: vphy_lane@1 {
            #phy-cells = <4>;
        };
        vphy_lane2: vphy_lane@2 {
            #phy-cells = <4>;
        };
        vphy_lane3: vphy_lane@3 {
            #phy-cells = <4>;
        };
    };

Мне нужно добавить «имя-часы» и соответствующие часы, для которых у меня уже есть фандл, исходя из того факта, что часы - это те же часы, на которые ссылаются под другими перечисленными часами-именами. Мне просто нужно знать, как прикоснуться к этому узлу из другого файла дерева устройств.

Очевидно, мне нужно будет включить ссылку на файл pl.dtsi

/include/ "pl.dtsi"

Но после этого как я могу ссылаться на фандл vid_phy_controller_0 и каков синтаксис для добавления ссылок на строки / часы к его свойствам

1 Ответ

0 голосов
/ 14 апреля 2019

Вы можете определить свой собственный файл дерева устройств, который включает файл pl.dtsi.Затем в своем дереве дерева устройств вы можете добавить необходимые свойства, как показано ниже.

&vid_phy_controller_0 {
        clocks = <..>;
        clock-names = <..>;
};

Обратите внимание, что для компиляции собственного файла дерева устройств вам нужно будет соответственно добавить его в Makefile.

...