On Wed, Dec 4, 2019 at 12:51 AM Rob Herring <robh@xxxxxxxxxx> wrote: > On Thu, Nov 28, 2019 at 11:06:35AM +0100, Linus Walleij wrote: > > The ambition to use refcounted GPIOs to solve this > > usecase is probably wrong, I would say try to go for a > > GPIO-based reset controller instead. > > Yes, but I think we can have that AND use the existing binding. > > > The fact that some Linux drivers are already using explicit > > GPIO's for their reset handling is maybe unfortunate, > > they will simply have to grow code to deal with a reset > > alternatively to GPIO, like first try to grab a reset > > handle and if that doesn't fall back to use a GPIO. > > I think this could just be all handled within the reset subsystem given > that we've been consistent in using 'reset-gpios' (GPIO regulators are > similar, but we never had such consistency with GPIO names for > regulators). We can implement a reset driver for the 'reset-gpios' > property that deals with the sharing. Drivers to DT nodes doesn't have > to be 1:1. It's convenient when they are, but that's encoding the OS's > (current) driver structure into DT. This seems like a good approach if it can be made to work. reset-gpios should have the right polarity flags (else drivers and/or device trees need to be fixed...) so the driver can simply scan over them and try to build a consensus on how to assert or deassert a shared reset-gpios line. It is also a natural placeholder for the connection to device core that will inevitably need to happen the day the device hierarchy needs to be torn up/down for a reset on some random device. Peter, will you have a go at it? Yours, Linus Walleij