分享

控制总线通用接口regmap

 mot0522 2014-02-25

regmap是Linux内核新引进的一套控制总线通用接口,初始版本应该出现在Linux-3.1。什么是控制总线?嵌入式系统最常见的是I2C和SPI,这大家应该非常熟悉。

在regmap出现之前,当设备驱动使用I2C或SPI总线进行控制时,都要写一堆device/driver/boardinfo,然后再注册进去。具体范例可以参考:驱动模块使用I2C总线范例。仅仅注册就非常繁琐了,更不用提读写接口不是一致的。

而regmap把硬件细节抽象起来,它不管你底层是I2C还是SPI,读写接口都是一样的。你所需要做的就是:1)配置好struct regmap_config,包括reg_bits(寄存器地址宽度)、val_bits(寄存器值宽度)、num_reg_defaults(寄存器数目)等等信息;2)注册接口时,根据接口类型使用不同的函数,I2C用regmap_init_i2c(),SPI用regmap_init_spi()。除了使用方便以外,还可以在线调试,只要你将debugfs挂载上去,就可以在线读写设备的控制接口,这点第2小节详细介绍下。

Linux内核版本:3.4.5

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多