linux_dsm_epyc7002/drivers/pinctrl/sunxi
Maxime Ripard 9a2a566adb pinctrl: sunxi: Deal with per-bank regulators
The Allwinner SoCs have on most of their GPIO banks a regulator input.

This issue was mainly ignored so far because either the regulator was a
static regulator that would be providing power anyway, or the bank was used
for a feature unsupported so far (CSI). For the odd cases, enabling it in
the bootloader was the preferred option.

However, now that we are starting to support those features, and that we
can't really rely on the bootloader for this, we need to model those
regulators as such in the DT.

This is slightly more complicated than what it looks like, since some
regulators will be tied to the PMIC, and in order to have access to the
PMIC bus, you need to mux its pins, which will need the pinctrl driver,
that needs the regulator driver to be registered. And this is how you get a
circular dependency.

In practice however, the hardware cannot fall into this case since it would
result in a completely unusable bus. In order to avoid that circular
dependency, we can thus get and enable the regulators at pin_request time.
We'll then need to account for the references of all the pins of a
particular branch to know when to put the reference, but it works pretty
nicely once implemented.

Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2018-12-14 16:07:59 +01:00
..
Kconfig pinctrl: sunxi: add support for suniv F1C100s (newer F-series SoCs) 2018-11-25 13:49:10 +01:00
Makefile pinctrl: sunxi: add support for suniv F1C100s (newer F-series SoCs) 2018-11-25 13:49:10 +01:00
pinctrl-sun4i-a10.c pinctrl: sunxi: fix a typo when merging A20 support to A10 driver 2017-12-28 15:06:01 +01:00
pinctrl-sun5i.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun6i-a31-r.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun6i-a31.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun8i-a23-r.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun8i-a23.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun8i-a33.c pinctrl: sunxi: change irq_bank_base to irq_bank_map 2018-03-27 15:07:49 +02:00
pinctrl-sun8i-a83t-r.c pinctrl: sunxi: Add support for A83T R_PIO 2017-06-09 11:20:32 +02:00
pinctrl-sun8i-a83t.c pinctrl: sunxi: Fix SPDIF function name for A83T 2017-05-23 11:30:56 +02:00
pinctrl-sun8i-h3-r.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun8i-h3.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun8i-v3s.c pinctrl: sunxi: change irq_bank_base to irq_bank_map 2018-03-27 15:07:49 +02:00
pinctrl-sun9i-a80-r.c pinctrl: sunxi: Disable strict mode for old pinctrl drivers 2017-10-31 09:45:00 +01:00
pinctrl-sun9i-a80.c pinctrl: sunxi: Fix A80 interrupt pin bank 2017-11-30 16:47:37 +01:00
pinctrl-sun50i-a64-r.c pinctrl: sunxi: Add A64 R_PIO controller support 2017-03-14 14:42:24 +01:00
pinctrl-sun50i-a64.c pinctrl: sunxi: a64: Rename function ts0 to ts 2018-12-07 13:29:28 +01:00
pinctrl-sun50i-h5.c pinctrl: sunxi: Disable strict mode for H5 driver 2017-11-30 16:50:43 +01:00
pinctrl-sun50i-h6-r.c pinctrl: sunxi: add support for H6 R_PIO pin controller 2018-05-16 14:19:13 +02:00
pinctrl-sun50i-h6.c pinctrl: sunxi: add support for the Allwinner H6 main pin controller 2018-03-27 15:09:42 +02:00
pinctrl-suniv-f1c100s.c pinctrl: sunxi: add support for suniv F1C100s (newer F-series SoCs) 2018-11-25 13:49:10 +01:00
pinctrl-sunxi.c pinctrl: sunxi: Deal with per-bank regulators 2018-12-14 16:07:59 +01:00
pinctrl-sunxi.h pinctrl: sunxi: Deal with per-bank regulators 2018-12-14 16:07:59 +01:00