【helper2416】第四弹 linux 3.2的spi驱动解决方法
[复制链接]
linux kernel 2.6的内核,helper2416的spi驱动是自带的在driver/spi下的hspi-s3c2443.c,而向上到linux 3.2是没有带的。 因为这个原因我试了很久都没有驱动SPI串口成功。。不得已只好给给helper2416开发板移植linux 3.2内核。。。刚开始的时候是直接用的旧版中的spi驱动,但是这个驱动有个问题,它没有注册spi_master,导致无法注册slave,比如你有个芯片要用到spi,你注册个spi_driver然后调用spi函数来收发数据,没有master它工作不了。
搞个驱动搞了我好久。。。,研究了几天。研究出两种解决办法:分享下:
1. 自己在原驱动上注册spi_master
2. Linux 3.2及以上内核可以使用6410的spi驱动driver/spi/spi-s3c64xx.c。
spi测试方法:
Linux 2.6中是没有测试代码的,Linux3.2中有在Documentation/spi/spidev_test.c,
可以把spi的SDI与SDO两线短接,然后用交叉编译的spidev_test程序放到板子上测试,如果收与发的数据一样,就说明驱动OK
比如我的:
[root@hcs /]# ./spidev_test -D /dev/spidev0.0
spi mode: 0
bits per word: 8
mapped channel 24 to 0
mapped channel 23 to 1
max speed: 497512 Hz (497 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
|