spi_device,spi_driver,spi_controller,spi_res,spi_transfer,spi_message之间的联系
目录
1. spi_device
2. spi_driver
3. spi_controller (旧称 spi_master)
4. spi_transfer
5. spi_message
6. spi_res (通常指 SPI 资源)
各组件联系与数据流
图示关系
总结
1. spi_device
-
概念:代表一个具体的 SPI 设备(如传感器、Flash 存储器等)。
-
作用:
-
存储设备的物理参数:SPI 模式(CPOL/CPHA)、时钟频率、片选线(CS)等。
-
通过设备树(Device Tree)或板级代码静态注册。
-
关键字段:
-
struct spi_device { struct device dev; // 继承设备基类 u32 max_speed_hz; // 最大时钟频率 u8 chip_select; // 片选引脚编号 u8 mode; // SPI 模式(CPOL, CPHA 等) // ... };
2.
spi_driver
-
概念:SPI 设备的驱动,负责管理与其匹配的
spi_device
。 -
作用:
-
实现设备的初始化(
probe
)、销毁(remove
)和操作接口(如读写)。 -
通过
spi_register_driver
注册到 SPI 总线。
-
-
关键结构:
-
struct spi_driver { const struct spi_device_id *id_table; // 支持的设备 ID 列表 int (*probe)(struct spi_device *spi); // 设备探测函数 int (*remove)(struct spi_device *spi); // 设备移除函数 struct device_driver driver; // 继承驱动基类 };
3.
spi_controller
(旧称spi_master
) -
概念:代表硬件上的 SPI 控制器(如 SoC 内部的 SPI 模块&#
-