SPI设备树文件结构概述
以下是SPI设备树文件的深度解析,包含一个完整的示例(含两个SPI设备)及字段含义说明:
SPI设备树由两部分组成:
- SPI控制器节点:描述SPI主机控制器的硬件资源
- SPI设备子节点:描述连接到该控制器的SPI从设备
设备树通过属性(Properties)定义硬件参数,内核通过设备树解析器将其转换为spi_master和spi_device结构体,最终实现驱动匹配和硬件初始化。
SPI设备树示例(含两个SPI设备)
/ {
/* 系统根节点 */
aliases {
spi0 = &spi_controller; /* 为SPI控制器添加别名,方便引用 */
};
spi_controller: spi@12340000 {
/* SPI控制器节点 */
compatible = "vendor,spi-controller"; /* 控制器驱动匹配字符串 */
reg = <0x12340000 0x1000>; /* 控制器寄存器基地址及大小 */
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; /* 中断号及触发方式 */
clocks = <&clk_ctrl 0x1234>; /* 引用时钟控制器节点及时钟ID */
clock-names = "spi_clk"; /* 时钟名称 */
resets = <&rst_ctrl 0x5678>; /* 复位信号引用 */
reset-names = "spi_rst"; /* 复位信号名称 */
#address-cells = <1>; /* 子设备地址占用的32位单元数 */
#size-cells = <0>; /* 子设备大小占用的32位单元数(0表示不使用) */
status = "okay"; /* 使能控制器 */
/* 片选信号配置(GPIO模拟) */
cs-gpios = <&gpio 12 GPIO_ACTIVE_LOW>, /* CS0:GPIO12低电平有效 */
<&gpio 13 GPIO_ACTIVE_LOW>; /* CS1:GPIO13低电平有效 */
/* 第一个SPI设备(传感器) */
sensor@0 {
compatible = "vendor,sensor"; /* 设备驱动匹配字符串 */
reg

最低0.47元/天 解锁文章
54

被折叠的 条评论
为什么被折叠?



