]> git.baikalelectronics.ru Git - kernel.git/commit
regmap: Add generic non-memory mapped register access API
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 11 May 2011 17:59:58 +0000 (19:59 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sat, 23 Jul 2011 06:56:03 +0000 (07:56 +0100)
commit960a5641bcc7e7b23e2cfabd85e2c8cb631093a6
treee478834902bba3d4c774804d55a88c9b50bca2c0
parent42630bfbbb3b46e6948836135f09efc9bdeaaf03
regmap: Add generic non-memory mapped register access API

There are many places in the tree where we implement register access for
devices on non-memory mapped buses, especially I2C and SPI. Since hardware
designers seem to have settled on a relatively consistent set of register
interfaces this can be effectively factored out into shared code.  There
are a standard set of formats for marshalling data for exchange with the
device, with the actual I/O mechanisms generally being simple byte
streams.

We create an abstraction for marshaling data into formats which can be
sent on the control interfaces, and create a standard method for
plugging in actual transport underneath that.

This is mostly a refactoring and renaming of the bottom level of the
existing code for sharing register I/O which we have in ASoC. A
subsequent patch in this series converts ASoC to use this.  The main
difference in interface is that reads return values by writing to a
location provided by a pointer rather than in the return value, ensuring
we can use the full range of the type for register data.  We also use
unsigned types rather than ints for the same reason.

As some of the devices can have very large register maps the existing
ASoC code also contains infrastructure for managing register caches.
This cache work will be moved over in a future stage to allow for
separate review, the current patch only deals with the physical I/O.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
MAINTAINERS
drivers/base/Kconfig
drivers/base/Makefile
drivers/base/regmap/Kconfig [new file with mode: 0644]
drivers/base/regmap/Makefile [new file with mode: 0644]
drivers/base/regmap/regmap.c [new file with mode: 0644]
include/linux/regmap.h [new file with mode: 0644]