從spi驅動理解linux驅動的分層思想

2021-06-06 11:53:47 字數 787 閱讀 1304

但是linux spi驅動並不是這麼設計的,在drivers/spi/ 下有乙個spi.c檔案,實際上這個是linux的spi驅動核心,不過叫它spi匯流排驅動更好點,

int spi_async(struct spi_device *spi, struct spi_message *message)

}message->spi = spi;

message->status = -einprogress;

return master->transfer(spi, message);

}export_symbol_gpl(spi_async);

這 個函式很簡單,所做的就是,把 spi_device 和 message 告訴 spi_async,然後spi_async通過spi->master->transfer傳送出去。

這個master就是omam2_mcspi1,這個transfer函式是ti寫的,和硬體有關係了。

當然我們最關心的是 spi_device是誰?

回到前邊的乙個問題,」修改一下這個驅動,給使用者層寫個介面,不就可以解決了。。。「 如果我們在omap2_mcspi1加上使用者層介面函式,直接控制暫存器也是可以實現資料的傳輸的。

當然這樣做很多的工作了。。。。

linux 已經把這個工作分開了,那就是 匯流排 驅動 裝置模型,對應一下,匯流排——spi.c  驅動——omap2_mcspi1(/其他使用者驅動) 裝置---

static struct platform_device omap2_mcspi1 = ,

};

Linux裝置驅動 SPI驅動

spi驅動匯流排架構 spi核心層 x spi控制器驅動層 x spi裝置驅動層 spi函式介面 api 簡單介紹spi協議,硬體原理 4412datasheet sdi 資料輸入buf i2c scl6 sdo 資料輸出buf i2c sda6 sclk 時鐘buf gpc1 1 cs 片選bk ...

linux下spi驅動分析

核心版本 linux 2.6.29 主要的幾個結構platform device platform driver s3c24xx spi spi master spi bitbang spi device spi driver spidev data s3c spi info第一步 註冊platfo...

Linux下SPI驅動分析 2

接上乙個繼續看spi.c。名詞解釋of openfirmware 呼叫層次spi match device of driver match device of match device of match node 用於驅動程式檢查platform device是否在其支援列表裡 80static i...