设备树
设备树就是一种描述硬件信息的树形结构,设备树上有很多设备节点,每一个设备节点都描述了一个硬件设备信息,设备节点中也可以再包含子设备节点和设备属性,同一个节点的不同属性是以链表结构存储,设备树有.dts设备树源码文件,.dtsi设备树的补充文件,这两个文件通过DTC编译工具可生成一个.dtb设备树镜像文件
相关函数
获取设备树节点信息的函数有三种
1.struct device_node *of_find_node_by_name(struct device_node *from, const char*name); 功能:根据设备树节点的名字解析设备树节点
参数: from:当前节点父节点首地址
name:设备树节点名字
mynode
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL
2.struct device_node *of_find_node_by_path(const char *path)
功能:根据设备树节点路径解析设备树节点
参数: path:设备树节点路径 /mynode0x12345678
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL
3.struct device_node *of_find_compatible_node(struct device_node *from, const char *type, const char *compat);
功能:根据设备树节点中compatibe键来解析设备树节点
参数: from:填NULL,默认从根节点开始解析 type:NULL compat:填写要解析的设备树节点中compatible的值
返回值:成功获取到解析的设备树节点信息结构体首地址,失败返回NULL
根据获取到的节点信息解析指定属性键值对
struct property *of_find_property(const struct device_node *np, const char *name, int *lenp) 功能:基于解析后的设备树节点信息结构体解析指定属性键值对
参数: np:设备树节点信息结构体指针 name:指定的键名 lenp:获取到的字节个数
返回值:成功返回属性结构体首地址,失败返回NULL