一、获取设备树的结点信息
(1)of_find_node_by_name()
函数原型:struct device_node *of_find_node_by_name(struct device_node *from,const char *name);
功能:通过结点名称来获取设备树结点的信息。
参数:第一个参数为父节点,不知道就填NULL,第二个参数为需要找的结点名称;
返回值:成功返回结点信息结构体,所有信息都在这个结构体中,失败就返回NULL;
(2)of_find_node_by_path()
函数原型:struct device_node *of_find_node_by_path(const char *path);
功能:通过结点路径来获取设备树结点的信息。
参数:参数为设备树结点路径;
返回值:成功返回结点信息结构体,所有信息都在这个结构体中,失败就返回NULL;
(3)of_find_compatible_node()
函数原型:struct device_node *of_find_compatible_node(struct device_node *from,const char *type, const char *compat);
功能:通过设备树的compatible属性来获取节点信息。
参数:第一个参数同上两个函数填NULL,第二个参数一般也填NULL,第三个参数填设备树节点中的compatible属性;
返回值:成功返回结点信息结构体,所有信息都在这个结构体中,失败就返回NULL;
二、解析获取到的信息节点结构体
(1)of_find_property()
函数原型:struct property *of_find_property(const struct device_node *np,const char *name,int *lenp);
功能:解析获取到的信息节点结构体。
参数:第一个参数为信息结构体,第二个参数为属性名称,第三个参数为获取到的字节数;
返回值:成功返回结点信息结构体,所有信息都在这个结构体中,失败就返回NULL;
(2)of_property_read_u32_index()
函数原型:int of_property_read_u32_index(const struct device_node *np,const char *propname, u32 index, u32 *out_value)
功能:根据设备树节点信息结构体和键名来解析uint类型的值
参数:第一个参数为信息结构体,第二个参数为指定的u32类型的键值对应的键名,第三个参数为索引号;第四个参数为接收解析结果的变量
返回值:成功返回结点信息结构体,所有信息都在这个结构体中,失败就返回NULL;