[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():
参考:
Linux Device Tree: What those status = “okay” are about
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
相关文章推荐
- [RK3288][Android6.0] Audio中的period_size使用规则
- [RK3288][Android6.0] 使用SD卡升级固件流程分析
- [RK3288][Android6.0] SoftMAC或FullMAC使用的判断
- [RK3288][Android6.0] 调试笔记 --- hwclock命令无法使用
- [RK3288][Android6.0] 调试笔记 --- CPU使用的频率表
- [RK3288][Android6.0] 调试笔记 --- 外网和内网同时使用
- [RK3288][Android6.0] Camera HAL ION 使用小结
- [RK3288][Android6.0] 一个例子看MediaCodec使用流程
- [RK3288][Android6.0] 调试笔记 --- 静态库编译覆盖使用方法
- [RK3288][Android6.0] Camera HAL ION 使用小结
- [RK3288][Android6.0] 使用SD卡升级固件到eMMC
- [RK3288][Android6.0] 调试笔记 --- X264测试程序无法使用
- [RK3288][Android6.0] 调试笔记 --- ComponentName的使用
- [RK3288][Android6.0] 调试笔记 --- 软硬键盘同时使用
- [RK3288][Android6.0] 调试笔记 --- 软硬键盘同时使用【转】
- [RK3288][Android6.0] 调试笔记 --- 使用竖屏软件后无法回到横屏状态
- [RK3288][Android6.0] WiFi之priority计算及使用
- [RK3288][Android6.0] 控制总线通用接口regmap小结
- [RK3288][Android6.0] Ubuntu上制作升级包update.img
- webwrok iterator标签status属性使用方法