pinctrl: amlogic: Make driver independent from two-domain configuration
authorCarlo Caione <carlo@endlessm.com>
Tue, 1 Mar 2016 22:04:34 +0000 (23:04 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 9 Mar 2016 06:00:28 +0000 (13:00 +0700)
commit9dab1868ec0db4bce44db2759beadf1b2156085a
tree99f1a7baf782f0c59fb8d7aa5647b489e99d78e8
parentac1afc46573a7d5447f23be5f88bc43580a92530
pinctrl: amlogic: Make driver independent from two-domain configuration

In the Amlogic Meson8 / Meson8b platforms we have two different buses:
cbus and aobus, corresponding to 2 different power domains (regular and
always-on). On each bus a different set of registers is mapped to manage
muxes, GPIOs and in general to control a clear subset of the pins.

Considering this architecture, having two different pinctrl devices, one
for each bus / power domain, makes much more sense than just having one
single device.

Right now we have one single pin controller driver that uses two
different domains (represented by 'gpio' and 'gpio-ao' sub-nodes in the
DTS) to manage the set of registers on the two buses. This dual-domain
configuration is hardcoded into the driver that strictly requires one
domain for each bus in the same pin controller device.

With this patch we refactor the driver to allow splitting the driver in
two parts. This change is needed to have a proper description of the HW
in the device-tree where we want to introduce aobus and cbus.

Signed-off-by: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/meson/pinctrl-meson.c
drivers/pinctrl/meson/pinctrl-meson.h
drivers/pinctrl/meson/pinctrl-meson8.c
drivers/pinctrl/meson/pinctrl-meson8b.c