内核目录下的/driver/spi/spidev.c文件是linux内核提供的一个spi通用驱动。若不写具体的spi从设备驱动的话,可以使用这个驱动来操作spi总线上的从设备。Documentation/spi/spidev是对spidev的描述,同时内核中也提供一个了spidev_test.c的测试程序。
spidev.c使用很简单,只需要在BSP代码中spi_device驱动部分将 spi_board_info 的 .modalias 定义为.modalias = "spidev",这样编译完内核,设备启动后就可以在/dev看到spidevD.X的设备节点,D.X就是spi_board_info 中设置的.bus_num和.chip_select的值的组合。在spidev中,spidev驱动注册会和相应的spi从设备绑定,也就是说spidev对应的是一个实际的从设备。
spidev注册成字符设备,可以方便的使用其提供的标准read/write/ioctl等功能函数对spi从设备进行读写和设置等操作,设备的全双工半双工都得以实现。