장치 트리의 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 브리지의 호환성 문자열을 검색하면 참조된 커널 소스 트리에서 예제를 찾을 수 있습니다. 그렇지 않다면 참조하세요이것예를 들어.

나는 설명하려고 노력할 것이다포트에스,모래원격 끝점에스. 바라보다여기자세한 내용은 아래에 (불완전한) 요약이 나와 있습니다.

마지막으로 위에서 언급한 소스 트리의 예와 몇 가지 설명이 있습니다.

그렇다면 장치 트리에서 장치 간의 연결을 어떻게 표현합니까?

  • 부모-자식

    예를 들어 아래 예에서 브리지는 i2c1, 주소 0x2c에 있습니다.

  • 핀들

    바라보다여기좋은 설명을 얻으려면.

    예를 들어, 아래 예에서 <>에 &가 모두 표시되어 있나요?

  • 포트, 엔드포인트 및 원격 엔드포인트

    여러 개를 할당할 수 있는 보다 복잡한 장치를 나타냅니다.포트s, 각각은 하나 이상의 링크에 연결될 수 있습니다.포트다른 장치의 경우

    각 포트 노드에는각 원격 장치의 하위 노드포트이것에 연결하다포트

    각 엔드포인트에는 다음이 포함되어야 합니다.원격 끝점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>;
                  };
              };
          };
    
      };
    

관련 정보