- 論壇徽章:
- 0
|
本帖最后由 thzhr2009 于 2013-07-08 19:15 編輯
內(nèi)核版本:2.6.21
cpu:s3c2416
代碼修改過程如下:
在/arch/arm/mach-s3c2416/mach-s3c2416.c中增加spi_board_info及spi_board_info:
static struct spi_board_info s3c2416_spi0_board[] = {
[0] = {
//.modalias = "PN512",
.modalias = "s3c2416-spi",
.bus_num = 0,
.chip_select = 0,
//.irq = IRQ_SPI0 , //中斷號暫時不知
.max_speed_hz = 500*1000,
},
};
static struct s3c2410_spi_info s3c2416_spi0_platdata = {
.pin_cs = S3C2410_GPL13,
.board_info = &s3c2416_spi0_board[0],
};
在platform_device中增加此設(shè)備:
static struct platform_device *smdk2416_devices[] __initdata = {
//&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_lcd,
&s3c_device_rtc,
&s3c_device_adc,
&s3c_device_iis,
&s3c_device_usbgadget,
&s3c_device_usb,
//&s3c_device_hsmmc0, //mmc0 未啟用 ,已用作ic卡
&s3c_device_hsmmc1,
//&s3c_device_smc911x
&s3c_device_dm9000,
&s3c_device_spi0,
};
最后在smdk2416_machine_init中注冊:
static void __init smdk2416_machine_init(void)
{
/* SROM init for NFS */
smdk2416_cs89x0_set();
hsspi_set_gpio();
smdk_machine_init();
s3c_device_spi0.dev.platform_data= &s3c2416_spi0_platdata;
spi_register_board_info(s3c2416_spi0_board, ARRAY_SIZE(s3c2416_spi0_board));
}
驅(qū)動程序直接使用內(nèi)核自帶的SPI驅(qū)動/driver/spi/hspi-s3c2416.c,編譯成ko加載。
現(xiàn)在問題是加載驅(qū)動后/dev目錄下無spi設(shè)備,/sys/bus/spi/devices/及/sys/bus/spi/drivers/文件下也為空。
請問問題在哪?
網(wǎng)上查了下,在make menuconfig時需要加入spi基礎(chǔ)驅(qū)動spi_bitbang,這個以ko形式加入了。還需加入"User mode SPI device driver support",但為何我的內(nèi)核menuconfig時沒有這一選項(xiàng)呢,不知道問題出在哪。
請高手指教。多謝 |
|