Regmap 框架的主要分為物理總線、Regmap核心、Regmap API三部分組成。
Regmap物理總線(Regmap Bus):
Regmap物理總線是Regmap框架的底層物理接口,用于實(shí)現(xiàn)與實(shí)際硬件之間的通信。不同的總線類型(如SPI、I2C、MMIO)可以通過適當(dāng)?shù)?a class="article-link" target="_blank" href="/baike/1571085.html">驅(qū)動程序與Regmap物理總線進(jìn)行集成。每種物理總線都提供了一組操作函數(shù),用于讀取和寫入寄存器。
Regmap核心(Regmap Core):
Regmap核心提供了Regmap框架的核心功能,包括寄存器緩存、寄存器操作函數(shù)、錯誤處理等。它的主要職責(zé)是管理寄存器的讀寫操作、緩存寄存器值,并處理錯誤條件。Regmap核心還提供了一些工具函數(shù),用于解析和處理寄存器值,如位字段操作等。
Regmap API:
Regmap框架提供了一組API函數(shù),用于在驅(qū)動程序中使用Regmap進(jìn)行寄存器訪問。這些API函數(shù)包括:
regmap_init_():用于初始化Regmap對象,其中""表示具體的物理總線類型,如regmap_init_spi()用于初始化SPI總線上的Regmap對象。
regmap_read()和regmap_write():用于讀取和寫入單個寄存器的值。
regmap_bulk_read()和regmap_bulk_write():用于批量讀取和寫入多個寄存器的值。
regmap_read_poll_timeout():用于定期輪詢一個寄存器的值,直到達(dá)到指定的條件或超時。