On Thu, Dec 6, 2018 at 3:02 PM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote: > 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@xxxxxxxxxxx> Patch applied. Yours, Linus Walleij