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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打个工而已

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值