设备树获取节点的节点标签
时间: 2023-07-16 21:16:39 浏览: 73
在设备树中,每个节点都有一个唯一的节点标签(node label),用于标识该节点。在驱动程序中,我们可以通过设备树 API 获取节点的节点标签,具体方法如下:
1. 在驱动程序中包含设备树头文件 `#include <linux/of.h>`。
2. 在 `probe()` 函数中使用 `of_find_node_by_name()` 函数查找需要的节点,该函数接受一个参数,即要查找的节点的节点标签。例如,如果要查找名为 "my_node" 的节点,可以使用以下代码:
```
struct device_node *node;
node = of_find_node_by_name(NULL, "my_node");
if (!node) {
pr_err("Failed to find node\n");
return -ENODEV;
}
```
这将返回名为 "my_node" 的节点的指针,如果找不到该节点,则返回 `NULL`。
3. 一旦找到了节点,可以使用 `of_node_name()` 函数获取该节点的节点标签,例如:
```
const char *node_name;
node_name = of_node_name(node);
pr_info("Node name is %s\n", node_name);
```
这将打印出 "Node name is my_node"。
注意,节点标签必须是唯一的。如果设备树中有多个节点具有相同的节点标签,`of_find_node_by_name()` 函数将只返回第一个匹配的节点。