|
实现板子与外部spi设备通信有两种方式:
1. 将spi user interface 导出,直接在用户空间操作SPI的读写
2. 直接在内核实现spi设备驱动(属于内核实现,不做描述)。
第1种方式的实现方法(以spi1为例):
(1)编辑linux-2.6.39/arch/arm/mach-at91/board-sam9x5cm.c
找到static struct spi_board_info cm_spi_devices[] ,根据实际需要在结构体中添加:
[mw_shl_code=cpp,true]{
.modalias = "spidev",
.chip_select = 0,
.max_speed_hz = 15 * 1000 * 1000,
.bus_num = 1,
.mode = SPI_MODE_0,
},[/mw_shl_code]
(2)添加User mode spi配置:
make menuconfig -> Device Drivers -> SPI support -> <*> User mode SPI device driver support
重新编译将新镜像烧到开发板启动后,会在/dev/生成spidev1.0 设备节点,可用open()、read()、write()、ioctl()对其操作。
关于spi的操作可参考https://www.kernel.org/doc/Documentation/spi/spidev
|
|