一。可以通过三种不同的方式解析设备树节点:
1.根据设备树节点的名字解析设备树节点
struct device_node *of_find_node_by_name(struct device_node *from, const char *name);
参数:
from:当前节点父节点首地址
name:设备树节点名字
返回值:
成功获取到解析的设备树节点信息结构体首地址,失败返回NULL
2.根据设备树节点路径解析设备树节点
struct device_node *of_find_node_by_path(const char *path)
参数:
path:设备树节点路径 /mynode0x12345678
返回值:
成功获取到解析的设备树节点信息结构体首地址,失败返回NULL
3.根据设备树节点中compatibe键来解析设备树节点
struct device_node *of_find_compatible_node(struct device_node *from, const char *type, const char *compat);
参数:
from:填NULL,默认从根节点开始解析
type:NULL
compat:填写要解析的设备树节点中compatible的值
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL
二、
解析设备树节点属性:
1.基于解析后的设备树节点信息结构体解析指定属性键值对
struct property *of_find_property(const struct device_node *np, const char *name, int *lenp)
参数:
np:设备树节点信息结构体指针
name:指定的键名
lenp:获取到的字节个数
返回值:成功返回属性结构体首地址,失败返回NULL