原文:Linux SPI總線和設備驅動架構之三:SPI控制器驅動

通過第一篇文章,我們已經知道,整個SPI驅動架構可以分為協議驅動 通用接口層和控制器驅動三大部分。其中,控制器驅動負責最底層的數據收發工作,為了完成數據的收發工作,控制器驅動需要完成以下這些功能: . 申請必要的硬件資源,例如中斷,DMA通道,DMA內存緩沖區等等 . 配置SPI控制器的工作模式和參數,使之可以和相應的設備進行正確的數據交換工作 . 向通用接口層提供接口,使得上層的協議驅動可以通過 ...

2016-09-05 15:33 0 2306 推薦指數:

查看詳情

linux設備驅動 spi詳解3-控制器驅動層(spi控制器

整個SPI驅動架構可以分為協議驅動、通用接口層和控制器驅動三大部分。其中,控制器驅動spi主機,負責最底層的數據收發工作,為了完成數據的收發工作,控制器驅動需要完成以下這些功能: (1)申請必要的硬件資源,例如中斷,DMA通道,DMA內存緩沖區等等; (2)配置SPI控制器的工作模式和參數 ...

Sun May 31 04:44:00 CST 2020 0 924
Linux SPI總線設備驅動架構 (自己補充的零散的內容(5))

轉載於: http://blog.rongpmcu.com/linux-spiqu-dong-kuang-jia-fen-xi/ spi傳輸詳細介紹 總線結構如下圖所示: SPI接口共有4根信號線,分別是:設備選擇線、時鍾線、串行輸出數據線、串行輸入數據線。 MOSI ...

Mon Nov 07 00:48:00 CST 2016 0 3331
Linux SPI總線設備驅動架構之二:SPI通用接口層

通過上一篇文章的介紹,我們知道,SPI通用接口層用於把具體SPI設備的協議驅動SPI控制器驅動聯接在一起,通用接口層除了為協議驅動控制器驅動提供一系列的標准接口API,同時還為這些接口API定義了相應的數據結構,這些數據結構一部分是SPI設備SPI協議驅動SPI控制器的數據抽象,一部分 ...

Mon Sep 05 23:32:00 CST 2016 0 3082
Linux設備驅動剖析之SPI(三)

572至574行,分配內存,注意對象的類型是struct spidev_data,看下它在drivers/spi/spidev.c中的定義: 76行,設備號。79行,設備鏈表,所有采用此驅動設備將連成一個鏈表。83行,計數,也即是此設備被open的次數。 回到 ...

Sun Aug 18 04:13:00 CST 2013 0 5188
Linux設備驅動剖析之SPI(二)

957至962行,一個SPI控制器用一個master來描述。這里使用SPI核心的spi_alloc_master函數請求分配master。它在drivers/spi/spi.c文件中定義: 478至480行,這里分配的內存大小是*master加size,包含了兩部分內存。 482 ...

Sun Aug 18 04:00:00 CST 2013 0 6531
Linux設備驅動剖析之SPI(一)

寫在前面 初次接觸SPI是因為幾年前玩單片機的時候,由於普通的51單片機沒有SPI控制器,所以只好用IO口去模擬。最近一次接觸SPI是大三時參加的校內選拔賽,當時需要用2440去控制nrf24L01,從而實現數據的無線傳輸。nrf24L01是一種典型的SPI接口的2.4GHz無線 ...

Sun Aug 18 03:45:00 CST 2013 0 14903
Linux設備驅動剖析之SPI(四)

781行之前沒什么好說的,直接看783行,將work投入到工作隊列里,然后就返回,在這里就可以回答之前為什么是異步的問題。以后在某個合適的時間里CPU會執行這個work指定的函數,這里是s3c64xx_spi_work函數,看它的定義: 730行,申請DMA,關於DMA的就不 ...

Sun Aug 18 04:22:00 CST 2013 0 3564
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM