a,使用fdt print /打印整个device tree,这样就可以找到树的父子关系
b,使用fdt set <path> <prop> [<val>] 设置节点。
例如:
设置pmu的充电电流:
sunxi#fdt print /soc/pmu0@0 pmu_runtime_chgcur//打印pmu_runtime_chgcur这个属性值pmu_runtime_chgcur = <0x00000320>
fdt set /soc/pmu0@0 pmu_runtime_chgcur <0x3e8> //设置pmu_runtime_chgcur为0x3e8
fdt save //保存
另外,如果使用fdt set <path> <prop> [<val>] 的时候,prop不存在会直接新建。所以需要新建一个prop的时候,可以这样使用:
sunxi#fdt set /soc/pmu0@0 power_test "hello world"
sunxi#fdt print /soc/pmu0@0 power_test
power_test = "hello world"
删除的话:
sunxi#fdt rm /soc/pmu0@0 power_test
1,获取字符串操作(wlan_power):
char *powerof_property_read_string(np, "wlan_power", &power)
2,获取32位数值(wlan_busnum):
u32 val;
of_property_read_u32(np, "wlan_busnum", &val)
3,获取32位数组:
u32 gpio_array[7];
of_property_read_u32_array(np, “wlan_regon”, gpio_array, ARRAY_SIZE(gpio_array))
实际上:
int gpio_wlan_regon;
struct config;
gpio_wlan_regon gpio_config = of_get_named_gpio_flags(np, "wlan_regon", 0, (enum of_gpio_flags *)&config);
其他还有很多接口,请参考《A64 dev tree&sysconfig使用文档.pdf》和《AW_1689_DEVICE_TREE&SYS_CONFIG配置规范.pdf》