2015-11-30 22 views
0

我正在嘗試使用DMA來編程連接到OMAP-L138的SPI總線的FPGA,但沒有成功。DMA傳輸是否支持使用devicetree配置的davinci-spi設備驅動程序?

目前,我正在使用linux 3.19自帶的stock davinci-spi驅動程序(drivers/spi/spi-davinci.c)。 FPGA配置成功(沒有啓用DMA),但速度非常慢。我正在使用設備樹來配置SPI接口。

我想使用DMA來提高性能,但是通過查看spi-davinci.c源代碼及其設備樹綁定,驅動程序在配置設備樹時似乎不支持DMA。我的理解是否正確?如果是這樣,在使用設備樹時,是否有計劃使用davinci的SPI驅動程序來支持DMA傳輸?

+0

*「目前,我公司採用股票達芬奇-SPI驅動(驅動器/ SPI /達芬奇-spi.c)與Linux 3.19自帶。「* - 在主線沒有這樣的文件。一些驅動程序使用DT和板文件中的結構來獲取配置信息。 – sawdust

+0

對不起,我的意思是drivers/spi/spi-davinci.c。我沒有意識到一些驅動程序同時使用DT和板文件來獲取配置信息。我認爲DT的目的之一就是消除對板子特定文件的需求。 –

+0

*「我認爲DT的目的之一......」 - - 的確如此,但是您是否想討論意圖與實際執行的內容? FWIW我使用來自DT早期採用者之一的SoC(Atmel&Free Electrons),並且在所有電路板和驅動器都是100%DT之前還有好幾年。 – sawdust

回答

0

這裏有一些準則,以實現自己的目標:

首先,檢查SPI有它自己的DMA引擎。如果沒有,也許在板上有一個通用的DMA控制器。您可以通過查看SPI數據表並查看電路板互連原理圖來檢查此情況。

如果以上都不是,那麼您不能在SPI中使用DMA。

如果SPI有自己的DMA,則需要爲其編寫驅動程序。 如果有一個DMA,它可能被其他組件使用,爲該特定設備搜索dma_dngine驅動程序。然後,您需要爲該特定的DMA引擎創建一個DMA客戶端。

請閱讀:

DMA Provider

DMA Client

好運

相關問題