spi核心層**位於(drivers/spi/spi.c),
標頭檔案位於(include/linux/spi/spi.h)
spi.c一方面對spi子系統進行初始化工作,註冊spi bus,註冊spi_master class,同事提供spi裝置驅動對spi匯流排進行操作的api。
spi.h包含了spi核心層的一些重要資料結構,struct spi_master; struct spi_transfer; struct spi_message,以及一些實現比較簡單的函式等。
spi匯流排型別(drivers/spi/spi.c):
struct bus_type spi_bus_type = ;
通過bus_register()函式將spi 匯流排註冊進匯流排,成功註冊後,在/sys/bus 下即可找到spi 檔案目錄。
spi控制器裝置類 (drivers/spi/spi.c):
static struct class spi_master_class = ;
通過呼叫class_register()函式註冊裝置類,成功註冊後,在/sys/class目錄下即可找到spi_master檔案目錄。
spi類和匯流排註冊 (drivers/spi/spi.c):
static int __init spi_init(void)
spi匯流排從裝置和從裝置驅動匹配函式
static int spi_match_device(struct device *dev, struct device_driver *drv)
將struct device_driver中的name欄位與struct spi_device中的modalias欄位進行匹配,匹配成功呼叫driver->probe函式
spi類和匯流排註冊 (drivers/spi/spi.c):
static int __init spi_init(void)
linux 驅動程式 高階字元驅動程式
ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...
linux裝置驅動程式 字元裝置驅動程式
先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...
Linux裝置驅動程式 字元裝置驅動程式
1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...