6410 spi 设备驱动

在arch/arm/mach-s3c64XX/mach-smdk6410.c中中增加如下代码:
static void  cs_set_level(unsigned line_id, int lvl) {
    gpio_direction_output(line_id, lvl);
};

static struct s3c64xx_spi_csinfo s3c64xx_spi0_csinfo = {
  .fb_delay=100,
  .line=S3C64XX_GPC(3),
  .set_level=cs_set_level,
};

static struct spi_board_info s3c6410_spi0_board[] = { 
[0] = { 
.modalias = "spidev", 
.bus_num= 0, 
.chip_select= 0, //必须小于s3c6410_spi0_platdata.num_cs 
.irq =IRQ_SPI0, 
.max_speed_hz= 500*1000, 
.mode=SPI_MODE_0,
.controller_data=&s3c64xx_spi0_csinfo,
}, 
};

static struct s3c64xx_spi_csinfo s3c64xx_spi1_csinfo = {
  .fb_delay=100,
  .line=S3C64XX_GPC(7),
  .set_level=cs_set_level,
};

static struct spi_board_info s3c6410_spi1_board[] = { 
[0] = { 
.modalias = "spidev", 
.bus_num= 1,//代表使用芯片的第二个spi模块 
.chip_select= 0, //必须小于s3c6410_spi1_platdata.num_cs 
.irq = IRQ_SPI1, 
.max_speed_hz = 500*1000, 
.mode=SPI_MODE_0,
.controller_data=&s3c64xx_spi1_csinfo,
}, 
};


在mach-smdk6410.c最后在函数 mini6410_machine_init中添加:
s3c64xx_spi_set_info(0,0,2);
s3c64xx_spi_set_info(1,0,2);
spi_register_board_info(s3c6410_spi0_board, ARRAY_SIZE(s3c6410_spi0_board)); 
spi_register_board_info(s3c6410_spi1_board, ARRAY_SIZE(s3c6410_spi1_board));

mach-smdk6410.c头文件里面添加了:
#include <linux/spi/spidev.h>
#include <linux/spi/spi.h>
#include <plat/s3c64xx-spi.h>

重点的来了:
在此目录中找到:Makefile,打开
修改成
# device support

obj-y    += dev-uart.o
obj-y    += dev-audio.o
obj-y                          += dev-spi.o
现在编译make zImage,成功
放到板子上安装,就可以在dev下看到spidev0.0,spidev1.0了:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值