SPI 设备树是在设备树(Device Tree,简称 DT)中定义 SPI 设备并在 Linux 上使用的配置机制。设备树是一种描述硬件平台的树形数据结构,它被内核用于启动和配置系统。
设备树中的 SPI 设备
要向设备树添加 SPI 设备,需要执行以下步骤:
1. 创建 SPI 节点:在设备树文件中创建一个新的 SPI 节点,并将其命名为“spi”。
2. 指定总线号:使用“reg”属性指定 SPI 总线号。
3. 指定片选:使用“cs-gpios”属性指定片选 GPIO。
4. 定义子设备:为每个要连接到 SPI 总线的设备创建一个子节点。这些子节点应具有“compatible”属性来指定设备兼容的类型。
示例设备树代码
以下示例设备树代码定义了一个连接到 SPI 总线 0,片选 GPIO 2 的 SPI 设备:
spi {
address-cells = <1>;
size-cells = <0>;
spi@0 {
reg = <0>;
cs-gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
spi-flash: flash@0 {
compatible = "jedec,spi-nor";
};
};
};
编译设备树
在添加了 SPI 设备后,需要编译设备树以生成设备树二进制(DTB)文件。可以通过以下命令进行编译:
dtc -O dtb -o
加载 DTB 文件
在 Linux 启动时,需要加载编译后的 DTB 文件。这可以通过以下命令完成:
fdt addr
通过在设备树中添加 SPI 设备,可以轻松配置和使用 SPI 设备。设备树提供了灵活和模块化的方式来描述硬件平台,从而简化了 Linux 系统的初始化和配置过程。