linux下的spi调试.

      最近手头有一平台要用spi口操作外设寄存器.

     查了查,发现其不支持spi操作.

     后发现一文章,我是其于此基础上做的.

    文章地址为:http://blog.csdn.net/sg131971/article/details/6700636

     但是我用的与其有差别,

    在此重点说一下,

   1,首先配置内核,此处无差别.

   2,添加结构体
static struct spi_board_info s3c2410_spi0_board[] = {
[0] = {
.modalias = "spidev",
.bus_num = 0,
.chip_select = 0,
.max_speed_hz = 500*1000,
        },
};

此结构体bus_num是指spi0或者spi1的总线的,chip_select是指spi接口的cs*的.max_speed不用说了.

重点说一下,modalias,此处我刚开始写的不是spidev,发现使用操作不了spi,经测试发现必须写spidev,

只有这样才能打到spidev的驱动.为何别的人可以写别的名字,此处我还没有明白.

 3,在static void __init ek_board_init(void)中,添加 at91_add_device_spi(ek_spi0_devices, ARRAY_SIZE(ek_spi0_devices));

4,查看/dev中,已经存在spidev0.0与spidev1.0

5,使用spi,可以参考linux/Doc/spi/中的spidev_test.c

另外,查看是否存在spi模块,进入/sys/bus/devices与/sys/bus/drives即可查看设备与驱动,一个驱动对应两个设备在此处.

你可能感兴趣的:(嵌入式环境+BSP,linux驱动)