高通sa8155Linux Anroid平台的of_graph_get_endpoint_by_regs怎么使用
时间: 2023-08-03 17:04:05 浏览: 170
函数 `of_graph_get_endpoint_by_regs` 是用于获取指定设备节点的指定端点的函数,它在 Linux 的设备树中使用。函数原型如下:
```
struct device_node *of_graph_get_endpoint_by_regs(struct device_node *np,
int index, const u32 *regs, int nr_regs);
```
其中,参数 `np` 是指定设备节点的指针;参数 `index` 是指定该设备节点的第几个端点;参数 `regs` 是一个数组,指定了该端点的寄存器值;参数 `nr_regs` 是 `regs` 数组中元素的个数。
函数返回值是指定端点的设备节点指针,如果没有找到该端点,则返回 `NULL`。
以下是一个示例代码,用于获取设备节点 `/soc/i2c@1234000/hdmi@39` 的第 1 个端点:
```
#include <linux/of.h>
struct device_node *np;
const u32 regs[] = {0x39};
struct device_node *ep;
np = of_find_node_by_path("/soc/i2c@1234000/hdmi@39");
ep = of_graph_get_endpoint_by_regs(np, 1, regs, 1);
if (ep) {
// 如果找到了指定的端点,则在这里进行处理
// ...
}
of_node_put(np); // 记得释放设备节点
```
注意,该函数只能用于设备树中定义了 `reg` 属性的节点中。
阅读全文