sdk6下启用spidev

来源:互联网 发布:小京东app源码 编辑:程序博客网 时间:2024/06/07 21:06
Com3354开发板 , 资料基于sdk6.0:

一   首先去除与spi0冲突的i2c1:


其他的板子 如果没有冲突的引脚可以略过这一步.

二    内核配置:


Device Drivers  ---> 
[*] SPI support  ---> 
<*>   McSPI driver for OMAP 
如果是要模拟spi设备接口的话,还需要在配置的时候加上
<*>   User mode SPI device driver support

三    修改添加板级初始化文件如下:

(kernel)/arch/arm/mach-omap2/board-com335x.c

如果是其他板子则可以修改 (kernel)/arch/arm/mach-omap2/board-am335xevm.c

static struct spi_board_info am335x_spi0_slave_info[] = {     {         .modalias      = "spidev",         .irq           = -1,         .max_speed_hz  = 1000000,         .bus_num       = 1,         .chip_select   = 0,     },};static void spi0_init(void){        setup_pin_mux(spi0_pin_mux);        spi_register_board_info(am335x_spi0_slave_info,        ARRAY_SIZE(am335x_spi0_slave_info));        return;}
板级初始化文件,后面不要忘记板级初始化里调用一下:
static void __init com335x_init(void){         ...         spi0_init();         ...}

其他的板子可以修改:

beaglebone_dev_cfg[] :{spi0_init, DEV_ON_BASEBOARD, PROFILE_NONE},


四    验证:
1
在/sys/bus/spi/devices/下有 spidev1.0

在/dev/下有 spidev1.0


出现了spi1.0 而i2c-2则没有了, 因为硬件 i2c0 <=> 内核i2c0 <=> 文件系统i2c1; 硬件 i2c1 <=> 内核i2c1 <=> 文件系统i2c2, 而这里显示的是文件系统的节点, 所以这里没有 i2c2节点 就表示硬件i2c1接口并没有启用

2
短接MOSI与 MISO
arm-linux-gnueabihf-gcc spidev_test.c./a.outspi mode: 0bits per word: 8max speed: 500000 Hz (500 KHz)FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF DE AD BE EF BA AD F0 0D

表示正常.

参考资料:
http://communistcode.co.uk/blog/blogPost.php?blogPostID=1
0 0