• Maxime Ripard's avatar
    pinctrl: sunxi: Deal with per-bank regulators · 9a2a566a
    Maxime Ripard authored
    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: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
    Signed-off-by: Linus Walleij's avatarLinus Walleij <linus.walleij@linaro.org>
    9a2a566a
Name
Last commit
Last update
..
actions Loading commit data...
aspeed Loading commit data...
bcm Loading commit data...
berlin Loading commit data...
cirrus Loading commit data...
freescale Loading commit data...
intel Loading commit data...
mediatek Loading commit data...
meson Loading commit data...
mvebu Loading commit data...
nomadik Loading commit data...
nuvoton Loading commit data...
pxa Loading commit data...
qcom Loading commit data...
samsung Loading commit data...
sh-pfc Loading commit data...
sirf Loading commit data...
spear Loading commit data...
sprd Loading commit data...
stm32 Loading commit data...
sunxi Loading commit data...
tegra Loading commit data...
ti Loading commit data...
uniphier Loading commit data...
vt8500 Loading commit data...
zte Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
core.c Loading commit data...
core.h Loading commit data...
devicetree.c Loading commit data...
devicetree.h Loading commit data...
pinconf-generic.c Loading commit data...
pinconf.c Loading commit data...
pinconf.h Loading commit data...
pinctrl-amd.c Loading commit data...
pinctrl-amd.h Loading commit data...
pinctrl-artpec6.c Loading commit data...
pinctrl-as3722.c Loading commit data...
pinctrl-at91-pio4.c Loading commit data...
pinctrl-at91.c Loading commit data...
pinctrl-at91.h Loading commit data...
pinctrl-axp209.c Loading commit data...
pinctrl-coh901.c Loading commit data...
pinctrl-coh901.h Loading commit data...
pinctrl-da850-pupd.c Loading commit data...
pinctrl-digicolor.c Loading commit data...
pinctrl-falcon.c Loading commit data...
pinctrl-gemini.c Loading commit data...
pinctrl-ingenic.c Loading commit data...
pinctrl-lantiq.c Loading commit data...
pinctrl-lantiq.h Loading commit data...
pinctrl-lpc18xx.c Loading commit data...
pinctrl-max77620.c Loading commit data...
pinctrl-mcp23s08.c Loading commit data...
pinctrl-ocelot.c Loading commit data...
pinctrl-oxnas.c Loading commit data...
pinctrl-palmas.c Loading commit data...
pinctrl-pic32.c Loading commit data...
pinctrl-pic32.h Loading commit data...
pinctrl-pistachio.c Loading commit data...
pinctrl-rk805.c Loading commit data...
pinctrl-rockchip.c Loading commit data...
pinctrl-rza1.c Loading commit data...
pinctrl-rza2.c Loading commit data...
pinctrl-rzn1.c Loading commit data...
pinctrl-single.c Loading commit data...
pinctrl-st.c Loading commit data...
pinctrl-sx150x.c Loading commit data...
pinctrl-tb10x.c Loading commit data...
pinctrl-u300.c Loading commit data...
pinctrl-utils.c Loading commit data...
pinctrl-utils.h Loading commit data...
pinctrl-xway.c Loading commit data...
pinctrl-zynq.c Loading commit data...
pinmux.c Loading commit data...
pinmux.h Loading commit data...