设备树 非主流语法

device tree的设备树语法也在一直不断更新
对应版本的设备树编译器(device tree compiler,简称dtc)的版本也在不断更新。

除了标准文档中定义的语法外,还需要注意的是,编译器支持的语法,和ppc文档定义的语法也有一些不一致的地方。这个在ARM架构上是大家需要注意的地方。

除此之外,设备树也有一些文档上没有写,但是实际dtc编译器支持的语法,比如:

< &{/path/to/node} >

如果你想引用一个node,但是这个node没有定义phandle或者label,这个时候怎么办呢? 只能直接通过绝对路径引用了:

interrupt-parent = < &{/soc/pic@10000000} >;

设备节点在设备树中的绝对路径使用一对大括号包起来,然后外面使用取址符号就可以直接引用了。dtb编译器处理这种语法,会直接展开为路径,而不是phandle值,这个是大家需要注意的。在设备树的overlay语法中,如果你要修改一个没有使用label标注的node时,通常使用这种写法:

/dts-v1/;
/plugin/;

&{/} {
    hello_id = <0x1000>;
    hello {
        hello_name = "wanglitao";
    };
};
驱动开发核心理论,Linux内核开发入门实战视频教程:《Linux内核编程》,具有一线芯片原厂开发经验的驱动工程师录制,内含Linux设备树课程,教你如何修改设备树文件和基于设备树接口开发驱动。详情点击:王利涛老师个人淘宝店:Linux内核编程