Re: [PATCH v6 1/2] dt-bindings: i2c: add bus-reset-gpios property

From: Krzysztof Kozlowski
Date: Thu Nov 16 2023 - 06:37:54 EST


On 15/11/2023 22:53, Chris Packham wrote:
> Hi Krystof,
>
> On 16/11/23 10:29, Krzysztof Kozlowski wrote:
>> On 15/11/2023 04:57, Chris Packham wrote:
>>> Add bus-reset-gpios and bus-reset-duration-us properties to the binding
>>> description for i2c busses. These can be used to describe hardware where
>>> a common reset GPIO is connected to all downstream devices on and I2C
>>> bus. This reset will be asserted then released before the downstream
>>> devices on the bus are probed.
>>>
>>> Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>
>>> ---
>>>
>> ...
>>
>>> Documentation/devicetree/bindings/i2c/i2c.txt | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/i2c/i2c.txt b/Documentation/devicetree/bindings/i2c/i2c.txt
>>> index fc3dd7ec0445..3f95d71b9985 100644
>>> --- a/Documentation/devicetree/bindings/i2c/i2c.txt
>>> +++ b/Documentation/devicetree/bindings/i2c/i2c.txt
>>> @@ -99,6 +99,14 @@ wants to support one of the below features, it should adapt these bindings.
>>> indicates that the system is accessible via this bus as an endpoint for
>>> MCTP over I2C transport.
>>>
>>> +- bus-reset-gpios:
>>> + GPIO pin providing a common reset for all downstream devices. This GPIO
>>> + will be asserted then released before the downstream devices are probed.
>> I initially reviewed it, but did not think enough about it. After more
>> consideration, I believe this is not a property of the I2C bus
>> controller. This is a property of each device, even if the GPIO is the same.
>>
>> Linux kernel already supports shared GPIO, so you only need
>> enable-ref-counting on it.
>
> That's the kind of breadcrumb I need. Although I can't see
> enable-ref-counting as any kind of DT property. Do you mean
> GPIOD_FLAGS_BIT_NONEXCLUSIVE?

It's not a feature or property of Devicetree, but missing feature of OS.

Best regards,
Krzysztof