1、在配置Linux 編譯選項時,開啟相應的SPI 選項,如下所示
-> Device Drivers
-> SPI support
SPI support
*** SPI Master Controller Drivers ***
-*- Bitbanging SPI master
<*> Samsung S3C24XX series SPI
< > Samsung S3C24XX series SPI by GPIO
*** SPI Protocol Masters ***
< > SPI EEPROMs from most vendors
<*> User mode SPI device driver support
< > Infineon TLE62X0 (for power switching)
設定完成儲存。2、修改檔案arch/arm/mach-s3c2440/mach-mini2440.c, 添加:
#include <linux/spi/spi.h>
#include <mach/spi.h>
static struct spi_board_info s3c2410_spi0_board[] = {
[0] = {
.modalias = "spidev",
.bus_num = 0,
.chip_select = 0,
.irq = IRQ_EINT9,
.max_speed_hz = 500*1000,
},
};
static struct s3c2410_spi_info s3c2410_spi0_platdata = {
.pin_cs = S3C2410_GPB1,
.num_cs = 1,
.bus_num = 0,
};
mini2440_devices數組中添加
&s3c_device_spi0
mini2440_machine_init函數中添加
s3c_device_spi0.dev.platform_data= &s3c2410_spi0_platdata;
spi_register_board_info(s3c2410_spi0_board, ARRAY_SIZE(s3c2410_spi0_board));
完成儲存。編譯核心產生zImage,通過USB載入開發板。
3、使用document裡面的spidev_test檔案測試,注意要把spidev_test中的檔案的名字修改下不然會提示找不到裝置的。
把MOSI和MISO線串連到一起。跑測試程式。成功。