Re: [PATCH v2 3/3] power: supply: bq24735-charger: allow chargers to share the ac-detect gpio
From: Peter Rosin
Date: Mon Jan 02 2017 - 03:31:45 EST
On 2016-12-30 08:49, Linus Walleij wrote:
> On Wed, Dec 14, 2016 at 6:41 PM, Peter Rosin <peda@xxxxxxxxxx> wrote:
>> On 2016-12-14 18:01, Sebastian Reichel wrote:
>>> [of course I forgot to actually add gpio people, let's try again]
>>>
>>> On Wed, Dec 14, 2016 at 05:59:21PM +0100, Sebastian Reichel wrote:
>>>> Hi,
>>>>
>>>> On Wed, Dec 14, 2016 at 12:56:45AM +0100, Peter Rosin wrote:
>>>>> If several parallel bq24735 chargers have their ac-detect gpios wired
>>>>> together (or if only one of the parallel bq24735 chargers have its
>>>>> ac-detect pin wired to a gpio, and the others are assumed to react the
>>>>> same), then all driver instances need to check the same gpio. But the
>>>>> gpio subsystem does not allow sharing gpios, so handle that locally.
>>>>
>>>> Adding GPIO subsystem people to see if they can come up with
>>>> something in the gpiod API for this usecase.
>>
>> Right, I don't like how my new code steps away from gpio descriptors.
>
> The issue of shared gpiods have come up over and over again.
> For example the messy regulator code needs this too.
>
> It is better if we implement something like gpiod_get_shared()
> in the gpiolib of these cases.
>
> Just put a refcount in struct gpio_desc in drivers/gpio/gpiolib.h
> for this case I guess?
I actually tried that, but ran into atomicy issues with the
FLAG_REQUESTED bit and gave up. Didn't really try all that hard
though, but I simply didn't feel comfortable with going near such
fundamental designs...
Cheers,
peda