1.概述
本文主要講述了Linux的spidev驅動使用方法。介紹了spidev驅動的配置方法及驗證方法。
Linux內核版本:6.2.8。硬件平臺:ARM SOC。
2.原理
Linux內核集成了spidev驅動,提供了SPI設備的用戶空間API,支持用于半雙工通信的read()和write()訪問接口以及用于全雙工通信和I/O配置的ioctl()接口;使用時,只需將SPI從設備的compatible屬性值添加到spidev驅動的spidev_dt_ids[]數(shù)組中,即可將該SPI從設備創(chuàng)建為spidev設備。同時,Linux內核也集成了SPI測試工具spidev_test,用于在用戶態(tài)對spidev驅動功能進行測試和驗證。
3.配置方法
(1)配置內核,使能CONFIG_SPI_SPIDEV,以添加spidev驅動。
圖1 使能CONFIG_SPI_SPIDEV配置界面
(2)添加SPI從設備的compatible屬性值到linux-6.2.8/drivers/spi/spidev.c的spidev_dt_ids[]數(shù)組。添加compatible屬性值后,則會將SPI從設備創(chuàng)建為/dev/spidevB.C設備節(jié)點,供用戶空間API使用,其中B為SPI總線編號,C為SPI片選信號編號。
圖2 添加SPI從設備的compatible屬性值代碼
4.驗證方法
(1)編譯spidev_test
以SPI0總線的片選0為例,其生成的設備節(jié)點名為spidev0.0,故首先將測試例程linux-6.2.8/tools/spi/spi_test.c中的設備節(jié)點名改為"/dev/spidev0.0"。然后在linux-6.2.8/tools/spi路徑下直接執(zhí)行make,即可生成可執(zhí)行程序spi_test。
圖3 設備節(jié)點名設置
(2)運行spidev_test
內核啟動后,./dev路徑下生成了spidev0.0設備節(jié)點。然后運行spidev_test,程序按默認配置參數(shù)執(zhí)行了,SPI0發(fā)送的數(shù)據(jù)與圖3中數(shù)組default_tx[]一致。若需設置參數(shù),詳見spidev_test.c 中的static void parse_opts(int argc, char *argv[])函數(shù)定義。
圖4 spidev_test運行結果
審核編輯 :李倩
-
Linux
+關注
關注
87文章
11336瀏覽量
210097 -
SPI
+關注
關注
17文章
1721瀏覽量
91925 -
總線
+關注
關注
10文章
2899瀏覽量
88273
原文標題:Linux驅動-spidev驅動使用方法
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論