您的位置:首页 > 移动开发 > Android开发

[RK3288][Android6.0] DeviceTree中的status属性使用规则

2017-07-14 17:31 411 查看
Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

有看到网友在讨论device tree中的status到底该如何设置,默认状态是什么,知识点如下:

默认情况下不设置status属性的话表示此节点的功能是enable的

如果要设置status,那么值必须是”okay”或者”ok”

dts里的status属性值会覆盖dtsi中的值(编译dtb的时候会覆盖)

对应代码在kernel/drivers/of/base.c:

/**
*  of_device_is_available - check if a device is available for use
*
*  @device: Node to check for availability
*
*  Returns 1 if the status property is absent or set to "okay" or "ok",
*  0 otherwise
*/
int of_device_is_available(const struct device_node *device)
{
unsigned long flags;
int res;

raw_spin_lock_irqsave(&devtree_lock, flags);
res = __of_device_is_available(device);
raw_spin_unlock_irqrestore(&devtree_lock, flags);
return res;

}


__of_device_is_available():

/**
*  __of_device_is_available - check if a device is available for use
*
*  @device: Node to check for availability, with locks already held
*
*  Returns 1 if the status property is absent or set to "okay" or "ok",
*  0 otherwise
*/
static int __of_device_is_available(const struct device_node *device)
{
const char *status;
int statlen;

status = __of_get_property(device, "status", &statlen);
if (status == NULL)
return 1;

if (statlen > 0) {
if (!strcmp(status, "okay") || !strcmp(status, "ok"))
return 1;
}

return 0;
}


参考:

Linux Device Tree: What those status = “okay” are about
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: