15、设备驱动中Regmap API的使用

设备驱动中Regmap API的使用

1. Regmap API简介

在Linux系统中,I2C和SPI等子系统常用于连接总线上的设备,这些总线都具备对连接设备的寄存器进行读写的功能。然而,这往往会导致在具有寄存器读写功能的子系统中出现冗余代码。为了避免这种情况,同时提取通用代码,方便驱动的维护和开发,从Linux 3.1版本开始,引入了名为regmap的新内核API。

regmap基础设施最初存在于Linux ASoC(ALSA)子系统中,现在通过regmap API(定义在 include/linux/regmap.h ,实现在内核源代码树的 drivers/based/regmap/ 目录下)为整个Linux系统所使用。regmap子系统对SPI和I2C设备的寄存器访问以及内存映射寄存器(MMIO)进行了抽象,还提供了缓存机制,可减少对设备的访问次数,并能处理IRQ芯片和IRQ。

2. Regmap子系统的主要结构

regmap子系统主要包含以下几个重要的结构体:
- struct regmap :声明于 drivers/base/regmap/internal.h ,表示慢速I/O设备寄存器操作的映射。
- struct regmap_bus :声明于 include/linux/regmap.h ,表示某类慢速I/O设备(如SPI或I2C设备)的寄存器操作,该结构体与 regmap 结构体绑定。
- stru

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值