二、spi_master、spi_device和spi_driver的关系。
ref:
linux spi子系统_yuanlulu的博客 -优快云博客_linux spi子系统
spi_device的注册里面,会在ARM上面的Linux的/sys/bus/spi/devices
下面出现我们注册的device设备,如图:
spi0.2就是我们所注册的device设备,这个命名就和我们的spi_board_info有关系了,
内核重新编译并重启之后,如果系统中运行了udev,/dev下就会生成一个spidevX.D设备节点,其中X是总线编号,D是片选号。
这里还有个坑,就是片选信号的数值大小和master里面的片选num的问题,linux的spi api要求,master的num-chipselect必须大于 spi_board_info里面chip_select的数值。你也看到上面初始化程序,为什么master->num_chipselect = 4;
这个语句了。
spi_board_info的chip_select具体含义有spi master指定
spi_register_board_info(),,可以填入一个boardinfo的数组
ref:
Linux中的SPI: VFD驱动开发快速入门 [暮光小猿Linux开发系列]_哔哩哔哩_bilibili
linux SPI驱动框架(二) -- 设备驱动_flaoter的博客-优快云博客
linux spi子系统_yuanlulu的博客 -优快云博客_linux spi子系统
https://segmentfault.com/a/1190000020905696
源码解析: