デバイスツリーのdsiシステムの理解

デバイスツリーのdsiシステムの理解

sn65dsi86などのビデオブリッジがあるとします。カーネルソースツリーにドライバ ti-sn65dsi86.c があります。デバイスツリーを介して有効にする必要があります。一つあるはいデバイスツリーの場合。しかし、それは完全ではありません。

  1. 完全な機能を備えた例はありますか? (文書のti-sn65dsi86.yamlを除く)

  2. ポート、エンドポイント、リモートエンドポイントについてのこの話はどういう意味ですか?

     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>;
                  };
              };
          };
    
      };
    

関連情報