On Wed, Jan 31, 2024 at 2:32 PM Krzysztof Kozlowski krzysztof.kozlowski@linaro.org wrote:
The non-exclusive GPIO was made explicitly for regulators, so it is working fine there, but it is broken everywhere else, where the drivers do not handle it in sane way as regulator core does.
I looked at it, it's 8 users in the entire kernel that aren't regulators, so let's put it on the TODO to get rid of those.
To make it working, either GPIO should be enable-count-aware, to which Bartosz was opposing with talks with me, or the subsystem should mimic regulators approach. In some way, my patchset is the second way here - reset framework subsystem being aware of shared GPIO and handles the enable-count, even though it is not using non-exclusive flag.
That's nice, I was thinking if it could be abstracted so the regulator core can move away from this too?
I guess it may be an issue that regulators are not using Device Tree exclusively, but also has to deal with a slew of platform_devices:s :/ IIRC that was one of the reasons why it looks as it does.
Maybe reset can only solve this in an elegant way if the solution is tightly coupled with DT and you have the advantage that you can require it from day one? (It looks a bit like that to me.)
Yours, Linus Walleij