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