Linux内核控制器作为SPI从属

时间:2013-11-20 10:17:06

标签: linux-kernel linux-device-driver spi

我对使用linux中提供的SPI设备感兴趣。 我有一个特定的控制器,它在主模式和从模式下都支持SPI。 我必须将SPI控制器配置为从机模式。

我的问题:Linux框架是否支持SPI从设备? 我将在SPI总线上获得异步数据,我必须读取这些数据并进行处理,然后发回命令。

3 个答案:

答案 0 :(得分:3)

不,Linux不支持作为SPI从属设备运行。

来自Overview of Linux kernel SPI support

  

A" struct spi_device"封装了主端之间的接口   那两种类型的驱动程序。在撰写本文时,Linux没有奴隶方面   编程接口。

答案 1 :(得分:3)

支持SPI Slave Mode已经在Linux内核中从版本v4.13-rc1开始。  来自Linux内核的SPI Documentation

  

本文档(和Linux)支持SPI交互的主端和从属端。

     

[...]

     

“struct spi_device”封装了这两种驱动程序之间的控制器端接口。

     

[...]

     

/ sys / devices /.../ CTLR / slave ...用于(un)注册SPI从控制器的从设备的虚拟文件。

     

将SPI从处理程序的驱动程序名称写入此文件会注册从属设备;写“(null)”取消注册从设备。

     

从此文件读取显示从设备的名称(如果未注册,则为“(null)”。

     

/ sys / class / spi_slave / spiB ...符号链接(或实际设备节点)到逻辑节点,该逻辑节点可以在总线“B”上保持SPI从控制器的类相关状态。注册时,此处存在单个spiB。*器件,可能与其他SPI从器件共享物理SPI总线段。

我没有任何示例C ++ / C代码来支持这一点。

答案 2 :(得分:2)

在Linux上实现SPI从设备的两个最常见的例子是i.MX28特定的补丁:

  1. Tony Lin的补丁可在https://community.nxp.com/thread/325404
  2. 获得
  3. Marek Vasut可在http://www.spinics.net/lists/arm-kernel/msg190860.html
  4. 获取

    Ishaqe Ahamed在https://e2e.ti.com/support/embedded/linux/f/354/t/162748上发布了一些用于OMAP2的SPI从驱动程序的代码,但尚未发布完整补丁。

    您可以从http://git.yoctoproject.org/cgit/cgit.cgi/meta-extras/plain/recipes-kernel/linux/linux-netbook-2.6.33.2/linux-2.6.34-moorestown-spi-slave-controller-driver-1.1.patch发布的英特尔Moorestown SPI Slave Controller芯片驱动程序中获取一些信息。

    请注意,所有这些示例都是在几年前完成的,并且需要移植到您正在使用的任何新内核。这些示例都没有为SPI从驱动程序提供跨架构框架。