我正在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/