高通平台的DRM图形显示架构的of_graph_get_port_by_id怎么使用
时间: 2023-10-04 14:04:04 浏览: 202
DRM_system.zip_DRM_drm system_sub
of_graph_get_port_by_id函数是用来获取设备节点的端口信息的,它的具体使用方法如下:
1. 首先需要获取设备节点的指针,可以通过of_find_node_by_name函数或其他相应的函数来获取。
2. 然后需要获取端口id,可以通过查看设备树中的相关信息或者编写设备树绑定时来获取。
3. 最后调用of_graph_get_port_by_id函数来获取端口信息,该函数的参数包括设备节点指针、端口id、端口指针等。
举个例子,假设我们要获取名为“drm”的设备节点的“input”端口信息,代码如下:
```
struct device_node *drm_node;
struct of_phandle_args port_args;
struct device_node *port_node;
struct drm_connector *connector;
drm_node = of_find_node_by_name(NULL, "drm");
if (!drm_node) {
pr_err("failed to find drm device node\n");
return -ENODEV;
}
if (of_parse_phandle_with_args(drm_node, "input", "#port", 0, &port_args)) {
pr_err("failed to find input port for drm device\n");
return -ENODEV;
}
port_node = port_args.np;
connector = of_graph_get_port_by_id(drm_node, port_args.args[0])->data;
```
其中,of_parse_phandle_with_args函数用于获取指定名称的端口节点,该函数的参数包括设备节点指针、端口名称、端口类型和索引号等。of_graph_get_port_by_id函数用于获取指定id的端口信息,该函数的参数包括设备节点指针和端口id等。最后获取到的connector指针就是相应端口的数据结构,可以根据需要进行操作。
阅读全文