您的位置:首页 > 其它

sdk6下启用spidev

2015-08-04 16:50 330 查看
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.out
spi mode: 0
bits per word: 8
max 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: