最近搞SPI的人比較多啊,以下是我以前的回複
與硬體相關的都移植了嗎?bitbang.c裡隻是抽象意義上的,具體的要根據你的硬體,重新移植驅動,可以參考弄目錄下的其它檔案。是讀還是寫當然是通過中斷來實作,你的中斷部分的程式寫了嗎?你上面給出的都是與具體硬體無關的,代碼跟到最後。我記得好像是通國completion,然後在進入中斷進行的。有幾個檔案要了解,spi目錄下的spi.c是與硬體無關的,主要就是将你自己的驅動加入到系統中,bitbang.c我前面已經說過了,spidev.c也是與硬體無關的,這個檔案都是提供給上層應用程式的接口。還有一個檔案就需要你自己移植了,就是與具體硬體相關的,裡面實作spi寄存器的初始化,要進行的具體操作等。希望我的回答對你有幫助
和我當初的想的一樣,我當初也是調不出來,後來就直接使用GPIO模拟,可以用了,在使用SPI的控制器,不過也沒有使用SPI的子系統,也是像你的一樣直接使用字元裝置的架構,後來也通了。于是才來研究SPI子系統,不過沒有使用,因為時間問題還有就是我的SPI的驅動很簡單,沒有必要使用子系統,但不過SPI子系統的代碼還是閱讀了一遍,也沒有什麼,就是一個工作隊列裡加一個completion在套一個中斷,中斷底層調的是硬體相關的讀寫程式。于是就想到,是不是是以的子系統都是這麼一個流程呢?
這裡有幾個我以前參考的網站:
http://linux.chinaunix.net/techdoc/net/2007/11/12/972031.shtml
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=714751&page=&view=&sb=&o=&vc=1
http://blog.chinaunix.net/u3/96265/showart_1924186.html
http://www.avrtool.com/avr/jz/200905/1571.html
還有一個是關于SPI子系統在linux下怎麼建立裝置節點的郵件清單,網址我找不到了,樓主你上網找找