Linux SPI

Linux SPI

  • Linux内核也将 SPI 驱动分为两部分:

    • ①、 SPI 总线驱动, SPI 总线驱动就是 SOC 的 SPI 控制器驱动,也叫做 SPI 适配器驱动。
    • ②、 SPI 设备驱动, SPI 设备驱动就是针对具体的 SPI 设备而编写的驱动。
  • SPI主机驱动

    • Linux 内核使用 spi_master 表示 SPI 主机驱动, spi_master 是个结构体,定义在 include/linux/spi/spi.h 文件

    • SPI 主机驱动的核心就是申请 spi_master,

    • 然后初始化 spi_master,

    • 最后向 Linux 内核注册spi_master

  • SPI设备驱动

    • Linux 内核使用 spi_driver 结构体来表示 spi 设备驱动,在编写 SPI 设备驱动的时候需要实现 spi_driver。 spi_driver 结构体定义在include/linux/spi/spi.h 文件
  • SPI 设备和驱动匹配过程

    • SPI 设备和驱动的匹配过程是由 SPI 总线来完成的, SPI总线为 spi_bus_type,定义在 drivers/spi/spi.c 文件
  • SPI 数据传输步骤如下:

    • ①、申请并初始化 spi_transfer,设置 spi_transfer 的 tx_buf 成员变量, tx_buf 为要发送的数据。然后设置 rx_buf 成员变量, rx_buf 保存着接收到的数据。最后设置 len 成员变量,也就是要进行数据通信的长度。
    • ②、使用 spi_message_init 函数初始化 spi_message。
    • ③、使用spi_message_add_tail函数将前面设置好的spi_transfer添加到spi_message队列中。
    • ④、使用 spi_sync 函数完成 SPI 数据同步传输。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值