SPI 控制器驅(qū)動層
SPI 控制器驅(qū)動層負(fù)責(zé)最底層的數(shù)據(jù)收發(fā),主要有以下功能:
- 申請必要的硬件資源,比如中斷、DMA 通道、DMA 內(nèi)存緩沖區(qū)等等
- 配置 SPI 控制器的工作模式和參數(shù),使之可以和相應(yīng)的設(shè)備進行正確的數(shù)據(jù)交換
- 向通用接口層提供接口,使得上層的協(xié)議驅(qū)動可以通過通用接口層訪問控制器驅(qū)動
- 配合通用接口層,完成數(shù)據(jù)消息隊列的排隊和處理,直到消息隊列變空為止
SPI 主機驅(qū)動就是 SOC 的 SPI 控制器驅(qū)動。Linux 內(nèi)核使用 spi_master/spi_controller 表示 SPI 主機驅(qū)動,spi_master 是個結(jié)構(gòu)體,定義在 include/linux/spi/spi.h 文件中。
SPI 主機驅(qū)動的核心就是申請 spi_master,然后初始化 spi_master,最后向 Linux 內(nèi)核注冊 spi_master。
API 如下:
spi_alloc_master 函數(shù):申請 spi_master。
spi_master_put 函數(shù):釋放 spi_master。
spi_register_master函數(shù):注冊 spi_master。
spi_unregister_master 函數(shù):注銷 spi_master。
spi_bitbang_start函數(shù):注冊 spi_master。
spi_bitbang_stop 函數(shù):注銷 spi_master。
SPI 主機驅(qū)動的加載
以 MTK 為例,源碼來自于小米開源項目
https://github.com/MiCode/Xiaomi_Kernel_OpenSource
小米每做一個項目,都會把 kernel 部分開源,因為需要遵循 Linux GPL 開源協(xié)議。
【設(shè)備】聲明在設(shè)備樹中
kernel-4.14/arch/arm64/boot/dts/mediatek/mt6885.dts

【驅(qū)動】
kernel-4.14/drivers/spi/spi-mt65xx.c


匹配以后,probe 函數(shù)執(zhí)行,申請 spi_master,初始化 spi_master,最后向 Linux 內(nèi)核注冊 spi_master。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
控制器
+關(guān)注
關(guān)注
114文章
17791瀏覽量
193271 -
驅(qū)動
+關(guān)注
關(guān)注
12文章
1956瀏覽量
88547 -
SPI
+關(guān)注
關(guān)注
17文章
1885瀏覽量
101270
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
深度解析Linux SPI總線和設(shè)備驅(qū)動架構(gòu)
SPI控制器不用關(guān)心設(shè)備的具體功能,它只負(fù)責(zé)把上層協(xié)議驅(qū)動準(zhǔn)備好的數(shù)據(jù)按SPI總線的時序要求發(fā)送給SPI
步進電機驅(qū)動控制器介紹
01步進電機驅(qū)動控制器步進電機驅(qū)動器作為實驗裝置可控的部分,能夠提供自動測量的方法。前面已經(jīng)有兩款步進電機驅(qū)動器:SH-20403AXIS12雙軸藍牙移動框架基于ESP8266WiFi
發(fā)表于 08-31 08:32
控制器的功能
本視頻主要介紹了控制器的功能,分別有數(shù)據(jù)緩沖、差錯控制、數(shù)據(jù)交換、狀態(tài)說明、接收和識別命令、地址識別,其次介紹了DMA
關(guān)于SPI繼電器控制驅(qū)動器設(shè)計要領(lǐng)的分析和應(yīng)用
通過上一篇SPI繼電器控制驅(qū)動器原理、特性及其模式的講解,我們對SPI繼電器控制驅(qū)動器有了初步的
關(guān)于SPI繼電器驅(qū)動控制器的現(xiàn)狀和發(fā)展應(yīng)用分析
作為一個以SPI通訊為主要控制方式的驅(qū)動器,如果微控制器和驅(qū)動器之間的SPI通信損壞,意味著發(fā)送
基于SPI的EEPROM控制器設(shè)計與實現(xiàn)
應(yīng)用實例描述了EEPROM讀寫操作的流程和時序。通過編寫ARM處理器的驅(qū)動程序,對控制器進行操作,實現(xiàn)了對EEPROM的讀與寫的具體過程,同時驗證了SP1總線接口設(shè)計的正確性。關(guān)鍵詞:SPI
發(fā)表于 08-04 14:59
?20次下載
linux spi應(yīng)用層驅(qū)動以及回環(huán)測試代碼
linux spi應(yīng)用層驅(qū)動以及回環(huán)測試代碼
發(fā)表于 10-22 15:47
?2次下載
車身控制器的各個功能規(guī)范介紹
MAX6951/MAX6950 LED顯示驅(qū)動器與MAXQ2000微控制器的通信
MAX6951/MAX6950 SPI LED驅(qū)動器簡單易用的共陰極顯示器驅(qū)動器,通過SPI串行接口連接微
SPI驅(qū)動源文件目錄在哪
SPI 的主要數(shù)據(jù)結(jié)構(gòu)和函數(shù) spi 控制器驅(qū)動,IC 廠商提供,不同廠商命名不同 kernel - 4 . 14 /drivers/spi
利用SPI控制器控制nRF24L01射頻模塊的驅(qū)動程序設(shè)計
電子發(fā)燒友網(wǎng)站提供《利用SPI控制器控制nRF24L01射頻模塊的驅(qū)動程序設(shè)計.pdf》資料免費下載
發(fā)表于 11-06 16:34
?1次下載
SPI控制器驅(qū)動層功能介紹
評論