pinctrl-sx150x: Replace sx150x_*_cfg by means of regmap API
authorAndrey Smirnov <andrew.smirnov@gmail.com>
Mon, 7 Nov 2016 16:53:17 +0000 (08:53 -0800)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 8 Nov 2016 08:42:19 +0000 (09:42 +0100)
commit6489677f86c330404ae47703bf59d30ec4c46de9
tree8a7be9957dd6b71d93e55df26e11d1f178b29d86
parent0db0f26c2c5d439e07883cd8e7f22fe24e6a0101
pinctrl-sx150x: Replace sx150x_*_cfg by means of regmap API

The difference between 8 and 16 pin GPIO expanders can be accomodated by
the means of regmap API without resorting to using driver-specific
read/write accessors. This change, IMHO, brings the following benefits:

- Replaces driver's idiosyncratic way of dealing with
  mult-register fields with regmap API, which, hopefuly,
  makes the code a bit easier for a new reader to understand

- Removes various multi-read for-loop register read logic
  from various places in the code and puts it in a signle
  place

- Removes ad-hoc IRQ register caching code in
  sx150x_irq_bus_sync_unlock, since that functionality is
  provided by regmap

Besided aforementioned benefits this change also implements necessary
RegSense byte swap necessary for SX1503 and SX1506 variants of the chip.

Tested-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-sx150x.c