了解设备树中的 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,其中每一个都可以链接到一个或多个港口其他设备的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>;
                  };
              };
          };
    
      };
    

相关内容