tree b44f69623afe44d57d5c0fa83f000ec1edda408f
parent 3bb07f1b73ea6313b843807063e183e168c9182a
parent c948ef3ae71c18c1079333b65d6887ceb4577618
author Linus Torvalds <torvalds@linux-foundation.org> 1337643164 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1337643164 -0700
mergetag object c948ef3ae71c18c1079333b65d6887ceb4577618
 type commit
 tag regmap-3.5
 tagger Mark Brown <broonie@opensource.wolfsonmicro.com> 1337358227 +0100
 
 regmap: Updates for 3.5
 
 A surprisingly large series of updates for regmap this time, mostly due
 to all the work Stephen Warren has done to add support for MMIO buses.
 This wasn't really the target for the framework but it turns out that
 there's a reasonable number of cases where it's very helpful to use the
 register cache support to allow the register map to remain available
 while the device is suspended.
 
 - A MMIO bus implementation, contributed by Stephen Warren. Currently this
   is limited to 32 bit systems and native endian registers.
 - Support for naming register maps, mainly intended for MMIO devices with
   multiple register banks. This was also contributed by Stephen Warren.
 - Support for register striding, again contributed by Stephen Warren and
   mainly intended for use with MMIO as typically the registers will be a
   fixed size but byte addressed.
 - irqdomain support for the generic regmap irq_chip, including support
   for dynamically allocate interrupt numbers.
 - A function dev_get_regmap() which allows frameworks using regmap to
   obtain the regmap for a device from the struct device, making life a
   little simpler for them.
 - Updates to regmap-irq to support more chips (contributed by Graeme
   Gregory) and to use irqdomains.
 - Support for devices with 24 bit register addresses.
 
 The striding support collided with all the topic branches so the
 branches look a bit messy and eventually I just gave up.  There's also
 the TI Palmas driver and a couple of other isolated MFD patches that
 all depend on new regmap features so are being merged here.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJPtnhRAAoJEBus8iNuMP3d5yUQAJOHY+V9czTi87j6wRSOPJp+
 JhTIpn5dgpe38gScGVxNXW9kvb+W/m9iVySvkWY4r79tGED8YjYQbof53mdilxww
 JhinDpUU4bSysgMCHJiVonOYwfeehBCuQhyk1DG4Fp7v8sc8sCFXo5HpdNMNDU+G
 QC0Dlo5kqceJY/miOdiprjKGcOLwZYtXb/c++CCfYbrQlg7+XdyDUcegQrDn3Tg9
 ZIzl/cTuZJQ8FhewVR19ScmMA3pHaXXBWxuvdscEVPLIHoFi0Vbc/qFUUddEfA6Q
 g7wa5/hCOUnBTmCPdlt4fveXQllZSq5hj6cvLRuMtUFX9A1nqcYNUroLAnoJ9QVO
 6JrCmvW6A8GxgMklf1aFvcOf3xoM0yQaTOy/bFzO52LHFV28bxcwG2572gLiMmn3
 u8+z4voWy36kLDyUzwNzJ4vI1GjuyedPWSgXOX8D8S1UV1I0DeTrBEQEiVutJCP5
 KsuGaYtmrXF20H7KnSufDYLTXMU/7hLMZhroNcglRKaYMf34A/kNGYHLb00JhrnC
 rWqPjGA+Wplj8IJXrZcALZqBODGcBL/jZR0+Uc1K03rnm5G/8O0IZqbwFIam0c/+
 UDj/IrvoYliI2U3FdRS+MO+lN3+SK7OVvwP1qYROcmCsKt4R3FLLaPzLRXizrfHk
 JmlwCGWFIHu7jDtnUA6W
 =pjN4
 -----END PGP SIGNATURE-----

Merge tag 'regmap-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap

Pull regmap updates from Mark Brown:
 "A surprisingly large series of updates for regmap this time, mostly
  due to all the work Stephen Warren has done to add support for MMIO
  buses.  This wasn't really the target for the framework but it turns
  out that there's a reasonable number of cases where it's very helpful
  to use the register cache support to allow the register map to remain
  available while the device is suspended.

  - A MMIO bus implementation, contributed by Stephen Warren.  Currently
    this is limited to 32 bit systems and native endian registers.
  - Support for naming register maps, mainly intended for MMIO devices
    with multiple register banks.  This was also contributed by Stephen
    Warren.
  - Support for register striding, again contributed by Stephen Warren
    and mainly intended for use with MMIO as typically the registers
    will be a fixed size but byte addressed.
  - irqdomain support for the generic regmap irq_chip, including support
    for dynamically allocate interrupt numbers.
  - A function dev_get_regmap() which allows frameworks using regmap to
    obtain the regmap for a device from the struct device, making life a
    little simpler for them.
  - Updates to regmap-irq to support more chips (contributed by Graeme
    Gregory) and to use irqdomains.
  - Support for devices with 24 bit register addresses.

  The striding support collided with all the topic branches so the
  branches look a bit messy and eventually I just gave up.  There's also
  the TI Palmas driver and a couple of other isolated MFD patches that
  all depend on new regmap features so are being merged here."

* tag 'regmap-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (24 commits)
  mfd: palmas PMIC device support Kconfig
  mfd: palmas PMIC device support
  regmap: Fix typo in IRQ register striding
  mfd: wm8994: Update to fully use irq_domain
  regmap: add support for non contiguous status to regmap-irq
  regmap: Convert regmap_irq to use irq_domain
  regmap: Pass back the allocated regmap IRQ controller data
  mfd: da9052: Fix genirq abuse
  regmap: Implement dev_get_regmap()
  regmap: Devices using format_write don't support bulk operations
  regmap: Converts group operation into single read write operations
  regmap: Cache single values read from the chip
  regmap: fix compile errors in regmap-irq.c due to stride changes
  regmap: implement register striding
  regmap: fix compilation when !CONFIG_DEBUG_FS
  regmap: allow regmap instances to be named
  regmap: validate regmap_raw_read/write val_len
  regmap: mmio: remove some error checks now in the core
  regmap: mmio: convert some error returns to BUG()
  regmap: add MMIO bus support
  ...
