sn65dsi86などのビデオブリッジがあるとします。カーネルソースツリーにドライバ ti-sn65dsi86.c があります。デバイスツリーを介して有効にする必要があります。一つあるはいデバイスツリーの場合。しかし、それは完全ではありません。
完全な機能を備えた例はありますか? (文書のti-sn65dsi86.yamlを除く)
ポート、エンドポイント、リモートエンドポイントについてのこの話はどういう意味ですか?
ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; edp_bridge_in: endpoint { remote-endpoint = <&dsi_out>; }; }; port@1 { reg = <1>; edp_bridge_out: endpoint { data-lanes = <2 1 3 0>; lane-polarities = <0 1 0 1>; remote-endpoint = <&edp_panel_in>; }; }; };
答え1
DSIブリッジの互換性文字列を検索すると、参照されているカーネルソースツリーで例を見つけることができます。そうでない場合は参照してくださいこれ例えば。
説明しようとしますポートS、終わり砂リモートエンドポイントS.バラよりここ詳細については、以下に(不完全な)要約を示します。
最後に、上記のソースツリーの例といくつかの説明があります。
それでは、デバイスツリー内のデバイス間の接続をどのように表現しますか?
親 - 子
たとえば、次の例では、ブリッジは i2c1、アドレス 0x2c にあります。
ピンドル
バラよりここ良い説明を得るために。
たとえば、次の例では、<>に&がすべて表示されていますか?
ポート、エンドポイント、およびリモートエンドポイント
複数を割り当てることができるより複雑なデバイスを表します。ポートs、それぞれは1つ以上のリンクに接続できます。ポート他のデバイスの場合
各ポートノードに終わり各リモートデバイスのサブノードポートこれに接続するポート
各エンドポイントには以下を含める必要があります。リモートエンドポイントphandle属性はその項目を指します。終わり内部にポートリモートデバイス
&i2c1 { bridge@2c { compatible = "ti,sn65dsi86"; reg = <0x2c>; ports { #address-cells = <1>; #size-cells = <0>; /* port@0: Video port for MIPI DSI input */ port@0 { reg = <0>; sn65dsi86_in: endpoint { remote-endpoint = <&dsi0_out>; }; }; /* port@1: Video port for eDP output (panel or connector)*/ port@1 { reg = <1>; sn65dsi86_out: endpoint { remote-endpoint = <&mini_dp_con_in>; }; }; }; }; }; &dsi0 { ports { port@1 { dsi0_out: endpoint { remote-endpoint = <&sn65dsi86_in>; data-lanes = <1 2 3 4>; }; }; }; }; / { mini-dp-con { compatible = "dp-connector"; label = "CN5"; type = "mini"; port { mini_dp_con_in: endpoint { remote-endpoint = <&sn65dsi86_out>; }; }; }; };