高通sa8155平台的DRM图形显示架构of_graph_get_endpoint_by_regs函数的作用
时间: 2023-08-01 12:12:15 浏览: 296
drm.zip_DRM_VYHJ_duringgbk_linux drm headers_msm_drm.
在高通SA8155平台上,DRM图形显示架构使用设备树来描述显卡硬件的各个组件,包括像素时钟、显示控制器、HDMI控制器等。`of_graph_get_endpoint_by_regs` 函数就是用于在设备树中查找指定设备节点的指定端点,并返回该端点的设备节点指针。
在 DRM 图形显示架构中,`of_graph_get_endpoint_by_regs` 函数通常用于获取连接到像素时钟、显示控制器、HDMI控制器等组件的数据源或数据目的的设备节点。例如,如果要获取连接到设备节点 `/soc/display@11c0000` 的第 0 个端点(表示该节点的数据源),可以使用以下代码:
```
#include <linux/of.h>
struct device_node *np;
const u32 regs[] = {0};
struct device_node *ep;
np = of_find_node_by_path("/soc/display@11c0000");
ep = of_graph_get_endpoint_by_regs(np, 0, regs, 1);
if (ep) {
// 如果找到了指定的端点,则在这里进行处理
// ...
}
of_node_put(np); // 记得释放设备节点
```
这里的 `of_find_node_by_path` 函数用于获取设备节点 `/soc/display@11c0000` 的指针,然后 `of_graph_get_endpoint_by_regs` 函数用于获取该节点的第 0 个端点的设备节点指针。如果找到了指定的端点,则可以在代码中对该端点进行处理。
需要注意的是,`of_graph_get_endpoint_by_regs` 函数只能在设备树中定义了 `reg` 属性的节点中使用,而且 `regs` 参数必须与设备树中定义的 `reg` 属性的值匹配。在使用该函数时,需要仔细查看设备树中的节点定义,确保参数的正确性。
阅读全文