thzhr2009 发表于 2013-07-08 17:35

无法生成spi设备

本帖最后由 thzhr2009 于 2013-07-08 19:15 编辑

内核版本: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[] = {
       = {
                //.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,
};
在platform_device中增加此设备:
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));
}
驱动程序直接使用内核自带的SPI驱动/driver/spi/hspi-s3c2416.c,编译成ko加载。
现在问题是加载驱动后/dev目录下无spi设备,/sys/bus/spi/devices/及/sys/bus/spi/drivers/文件下也为空。
请问问题在哪?
网上查了下,在make menuconfig时需要加入spi基础驱动spi_bitbang,这个以ko形式加入了。还需加入"User mode SPI device driver support",但为何我的内核menuconfig时没有这一选项呢,不知道问题出在哪。
请高手指教。多谢

wwxxxxll 发表于 2013-07-08 20:03

实在不行,把.ko放到文件系统中,然后在/etc/profile加一句insmod *.ko自动加载

thzhr2009 发表于 2013-07-08 20:07

我现在调试时通过nfs挂载,将..ko考到文件系统中再insmod

wwxxxxll 发表于 2013-07-08 20:52

回复 3# thzhr2009
这样不能达到你的要求吗


   

wwxxxxll 发表于 2013-07-08 21:05

回复 3# thzhr2009

你是说/sys下没有是吧
我之前是用misc驱动写的没有platform,不是太清楚
不过你说要spi-bitbang,那你可以把它单独编译加载
或轨矩一点就看看Kconfig和Makefile的依赖关系


   

thzhr2009 发表于 2013-07-08 21:15

spi-bitbang已经是单独加载成功,貌似我这里没有spidev.ko,有网友说需要该文件,不知道是否该原因引起。
有没有做过的朋友说下

thzhr2009 发表于 2013-07-09 14:02

在板子/sys/devices/platform/中有看到设备s3c2410-spi.0,这个应该就是我注册的设备。我是菜鸟,请教下此文件下设备如何操作。
比如我现在想验证SPI的读写功能。

wwxxxxll 发表于 2013-07-09 14:34

回复 7# thzhr2009


我这几天正在写关于设备模型
你可一看看我的blog,有关于/sys下的文件的应用

http://blog.csdn.net/xxxxxlllllxl

thzhr2009 发表于 2013-07-09 16:15

但/sys/bus/spi/devices/及/sys/bus/spi/drivers/文件下都为空,是否说明我的设备没有注册成功。

thzhr2009 发表于 2013-07-09 17:09

现在主要的需求是测试SPI读写是否正常,请问如何测试,2.6.21也不到SPI测试程序,好像高点版本有。
页: [1] 2
查看完整版本: 无法生成spi设备