我正在Linux下开发Kontron基于Atom的SMARC sXBTi板上的SPI。
Kontron提供了Yocto BSP,但不包括SPI驱动程序。
我重建了支持SPI的Linux。我可以在lspci和sysfs中看到SPI-PCI设备绑定到pca2xx_-SPI_-PCI驱动程序。
据我所知,这是一个平台驱动程序,它不公开用户模式API,我需要spidev能够通过/dev/spidev工作,但是当我modeprobe spidev时,我没有看到任何事情发生:没有文件添加到/dev,dmesg中没有任何内容。
我需要配置spidev吗?BSP不包括设备树。spidev如何找到并与它的PCI SPI控制器通信?

最佳答案

我需要配置spidev吗?BSP不包括设备树。spidev如何找到并与它的PCI SPI控制器通信?
在设备树不工作的时候,我使用了以下代码(例如基于beagle board,您应该相应地修复您的board):
arch/arm/mach-omap2/board-omap3beagle.c:拱门/手臂/马赫-omap2/board-omap3beagle.c:

static struct spi_board_info my_spi_board_info[] = {
...
        {
                .modalias       = "spidev",
                .max_speed_hz   = 3000000, //48 Mbps
                .bus_num        = 3,
                .chip_select    = 1,
                .mode = 0,
        },
...
};

static void __init omap3_beagle_init(void)
{
...
   spi_register_board_info(my_spi_board_info,
                           ARRAY_SIZE(my_spi_board_info));
...
}

如您所见,我指定了“bus-num”omap CPU有几个SPI,我还指定了chipselect和speed,然后我调用spi_register_board_info,然后在重新构建内核并重新启动之后,就会出现类似/dev/spidev3.1的内容。

关于linux - Intel Atom板上的spidev Linux驱动程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39118721/

10-09 05:58