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 模块&#
 
 -  
 
