of_property_read_u32

of_property_read_u32 函数说明

of_property_read_u32 是 Linux 设备树 (Device Tree) 操作中的一个常用函数,用于从设备树节点中读取一个 32 位无符号整数值。

函数原型

int of_property_read_u32(const struct device_node *np, const char *propname, u32 *out_value);

参数说明

  • np: 指向设备树节点的指针,表示要从哪个节点读取属性

  • propname: 要读取的属性名称字符串

  • out_value: 输出参数,用于存储读取到的32位无符号整数值

返回值

  • 成功时返回 0

  • 如果属性不存在,返回 -EINVAL

  • 如果属性长度不正确,返回 -EOVERFLOW

#include <linux/of.h>

u32 value;
int ret;

ret = of_property_read_u32(dev->of_node, "clock-frequency", &value);
if (ret) {
    /* 处理错误 */
    dev_err(dev, "Failed to read clock-frequency property\n");
} else {
    /* 使用读取到的值 */
    dev_info(dev, "Clock frequency is %u Hz\n", value);
}

相关函数

  • of_property_read_u16: 读取16位无符号整数

  • of_property_read_u8: 读取8位无符号整数

  • of_property_read_u64: 读取64位无符号整数

  • of_property_read_u32_array: 读取32位无符号整数数组

  • of_property_read_string: 读取字符串属性

注意事项

  1. 在调用前应确保设备树节点和属性确实存在

  2. 属性值在设备树中应以正确的格式定义(如property = <0x1000>;

  3. 错误处理是必要的,因为属性可能不存在或格式不正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值