Android&Linux关于DTS设备树源码的介绍
Device tree是一种简单的节点和属性的树形结构。属性是键值对,而节点可能包括属性和子节点。画一颗电路板上CPU、总线、设备组成的树,内核根据这棵树展开出platform_device、i2c_client、spi_device等设备,并根据节点内容为这些设备分配必要的内存、中断等资源。
节点语法
节点名称
无reg属性 node-name
有reg属性 node-name[@unit-address]
compatible属性
指定与driver的对应关系
reg属性
reg=
#address-cells 说明address的字节长度
#size-cells 说明length的字节长度
ranges属性
用于非内存映射设备(总线设备?),指定如何从一个域名将局部地址转换到CPU地址域。
external-bus {#address-cells = <2>
#size-cells = <1>;
ranges = <0 0 0x10100000 0x10000 // Chipselect 1, Ethernet
1 0 0x10160000 0x10000 // Chipselect 2, i2c controller
2 0 0x30000000 0x1000000>; //Chipselect 3, NOR Flash
ethernet@0,0 {
compatible = "sm