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