SPI請求進入I/O隊列。對給定SPI器件的請求按FIFO順序發出,異步通知通過完成機制發出。與簡單的同步措施相同:先寫後讀。
兩種類型的SPI驅動器:
控制器驅動程序...是壹套SOC控制器,起到主從的雙重作用。類驅動直接聯系硬件層寄存器,甚至使用DMA。或者他們玩bitbanger,只需要GPIO管腳。
原始河流...控制器從機或控制器的另壹個SPI鏈路主機發送消息。協議驅動控制器讀取數據,堆棧0,1代碼,解析有意義的協議數據;
在協議驅動中,我想寫,spilinux內核spi系統spi核心層,類似於USBcore主控制器部,另外還有壹個spi設備層。前者內核幫我們寫,讓spi設備可以工作,protocoldrivers是在spicontroller驅動的幫助下寫的。
Struct spi_device結構封裝了兩類驅動器之間的主機端接口。
SPI編程接口內核主要為器件表提供板級初始化代碼,並將控制器協議連接到。sysfs文件系統的幫助下的驅動模型。SPI視圖:
1 /sys/devices/.../CTLR...給定SPI控制器的物理節點
2
3 /sys/devices/.../CTLR/spiB。C...總線“B”上的spi_device,
4芯片選擇C,通過CTLR訪問。
五
6 /sys/bus/spi/devices/spiB。C...物理符號鏈接
七.../CTLR/spiB。c設備
八
9/系統/設備/.../CTLR/spiB。C/modalias...識別驅動程序
該設備應使用的10(用於熱插拔/冷插)
11
12/系統/總線/SPI/驅動器/D...壹個或多個spi*的驅動程序。*設備
13
14/sys/class/SPI _ master/spiB...符號鏈接(或實際設備節點)到
15壹個邏輯節點,可以保存
16控制器管理總線“B”。所有spiB。*設備共享壹個
17物理SPI總線段,帶SCLK、MOSI和MISO。
應該註意,控制器類狀態的實際位置取決於您是否打開了CONFIG_SYSFS_DEPRECATED標誌。只有特定的類狀態總線號(“spiB”中的“B”),所有/sys/class條目只標識總線標誌。