On Tue, Jun 26, 2012 at 03:13:58AM +0800, Linus Walleij wrote: > On Sat, Jun 23, 2012 at 8:29 PM, Mark Brown > > +       regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + offset, > > +                          ARIZONA_GPN_LVL, value); > I'm guessing that regmap is caching, selectively updating volatile > regs and marshalling the writes in the background. It's just the standard read/modify/write operation (the same as you've got for ab8500 IIRC). As far as the immediate user is concerned it's just doing the I/O, the API will work with cache or the hardware depending on how the chip register map is configured.