当您开始使用它时,我们是否必须阅读 linux 内核的设备树绑定文档。
设备树中是否没有所有发行版/内核源都遵循的标准字段集?
其次,我需要一些关于使用设备树为 gpio 总线上的设备添加节点的指导。我已经咨询过http://devicetree.org/Device_Tree_Usage。
当您开始使用它时,我们是否必须阅读 linux 内核的设备树绑定文档。
设备树中是否没有所有发行版/内核源都遵循的标准字段集?
其次,我需要一些关于使用设备树为 gpio 总线上的设备添加节点的指导。我已经咨询过http://devicetree.org/Device_Tree_Usage。
SoC 中外设的设备树绑定:
作为 v5.1 内核的示例,这里列出了针对 SoC 上可用的各种外围设备的设备树绑定。
链接: https ://elixir.bootlin.com/linux/v5.1/source/Documentation/devicetree/bindings
SoC 中特定外围设备的设备树绑定:
为了稍微解释一下特定外设的设备树绑定,让我们以一个非常流行的 TI OMAP 系列的 SPI 为例。
链接: https ://elixir.bootlin.com/linux/v5.1/source/Documentation/devicetree/bindings/spi/omap-spi.txt
此特定链接中的文本基本上介绍了键值对。“键”是设备树属性,“值”是相应“键”的可能占位符值。例如,在上面的链接中,“兼容”属性包含一个值为“ti,omap2-mcspi”的值。
另一个例子是保存 txN, rxN 的“dma-names”属性。
现在,在下面的链接中,您可以清楚地看到这些设备树属性是如何在真实设备树中使用的: https ://elixir.bootlin.com/linux/v5.1/source/arch/arm/boot/dts/omap3 .dtsi#L365
mcspi1: spi@48098000 {
compatible = "ti,omap2-mcspi";
reg = <0x48098000 0x100>;
...
}
根据 omap-spi.txt 的设备树绑定文档(如第二个列出的链接中所示),键“compatible”的值“ti,omap2-mcspi”是可用值之一。
所以现在基于SoC和使用的外设,可以参考设备树绑定文档来编写设备树属性。