[PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property

Esben Haabendal posted 2 patches 7 months, 3 weeks ago
[PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Esben Haabendal 7 months, 3 weeks ago
This should be added for boards where there is no pull-up on the reset pin,
as the driver will otherwise switch the reset signal to high-impedance to
save power, which obviously not safe without pull-up.

Signed-off-by: Esben Haabendal <esben@geanix.com>
---
 Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
--- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
+++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
@@ -45,6 +45,10 @@ properties:
   reset-gpios:
     maxItems: 1
 
+  goodix,no-reset-pull-up:
+    type: boolean
+    description: There is no pull-up on reset pin
+
   AVDD28-supply:
     description: Analog power supply regulator on AVDD28 pin
 

-- 
2.49.0
Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Conor Dooley 7 months, 3 weeks ago
On Tue, Apr 29, 2025 at 11:56:11AM +0200, Esben Haabendal wrote:
> This should be added for boards where there is no pull-up on the reset pin,
> as the driver will otherwise switch the reset signal to high-impedance to
> save power, which obviously not safe without pull-up.
> 
> Signed-off-by: Esben Haabendal <esben@geanix.com>
> ---
>  Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> @@ -45,6 +45,10 @@ properties:
>    reset-gpios:
>      maxItems: 1
>  
> +  goodix,no-reset-pull-up:
> +    type: boolean
> +    description: There is no pull-up on reset pin

I have to wonder, why are these system using the reset property if the
reset is not usable? Shouldn't the property be omitted?

> +
>    AVDD28-supply:
>      description: Analog power supply regulator on AVDD28 pin
>  
> 
> -- 
> 2.49.0
> 
Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Hans de Goede 7 months, 3 weeks ago
Hi,

On 29-Apr-25 17:31, Conor Dooley wrote:
> On Tue, Apr 29, 2025 at 11:56:11AM +0200, Esben Haabendal wrote:
>> This should be added for boards where there is no pull-up on the reset pin,
>> as the driver will otherwise switch the reset signal to high-impedance to
>> save power, which obviously not safe without pull-up.
>>
>> Signed-off-by: Esben Haabendal <esben@geanix.com>
>> ---
>>  Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
>> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> @@ -45,6 +45,10 @@ properties:
>>    reset-gpios:
>>      maxItems: 1
>>  
>> +  goodix,no-reset-pull-up:
>> +    type: boolean
>> +    description: There is no pull-up on reset pin
> 
> I have to wonder, why are these system using the reset property if the
> reset is not usable? Shouldn't the property be omitted?

The reset is usable, but it lacks an external pull-up resistor, so
the driver cannot switch the gpio output on the CPU going to
the touchscreen controller to input to save power as it does by default.

Regards,

Hans




> 
>> +
>>    AVDD28-supply:
>>      description: Analog power supply regulator on AVDD28 pin
>>  
>>
>> -- 
>> 2.49.0
>>
Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Conor Dooley 7 months, 3 weeks ago
On Tue, Apr 29, 2025 at 05:42:46PM +0200, Hans de Goede wrote:
> Hi,
> 
> On 29-Apr-25 17:31, Conor Dooley wrote:
> > On Tue, Apr 29, 2025 at 11:56:11AM +0200, Esben Haabendal wrote:
> >> This should be added for boards where there is no pull-up on the reset pin,
> >> as the driver will otherwise switch the reset signal to high-impedance to
> >> save power, which obviously not safe without pull-up.
> >>
> >> Signed-off-by: Esben Haabendal <esben@geanix.com>
> >> ---
> >>  Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
> >> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> @@ -45,6 +45,10 @@ properties:
> >>    reset-gpios:
> >>      maxItems: 1
> >>  
> >> +  goodix,no-reset-pull-up:
> >> +    type: boolean
> >> +    description: There is no pull-up on reset pin
> > 
> > I have to wonder, why are these system using the reset property if the
> > reset is not usable? Shouldn't the property be omitted?
> 
> The reset is usable, but it lacks an external pull-up resistor, so
> the driver cannot switch the gpio output on the CPU going to
> the touchscreen controller to input to save power as it does by default.

Ah, okay. The patch seems okay then.
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Esben Haabendal 7 months, 3 weeks ago
"Conor Dooley" <conor@kernel.org> writes:

> On Tue, Apr 29, 2025 at 11:56:11AM +0200, Esben Haabendal wrote:
>> This should be added for boards where there is no pull-up on the reset pin,
>> as the driver will otherwise switch the reset signal to high-impedance to
>> save power, which obviously not safe without pull-up.
>> 
>> Signed-off-by: Esben Haabendal <esben@geanix.com>
>> ---
>>  Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
>>  1 file changed, 4 insertions(+)
>> 
>> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
>> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> @@ -45,6 +45,10 @@ properties:
>>    reset-gpios:
>>      maxItems: 1
>>  
>> +  goodix,no-reset-pull-up:
>> +    type: boolean
>> +    description: There is no pull-up on reset pin
>
> I have to wonder, why are these system using the reset property if the
> reset is not usable? Shouldn't the property be omitted?

The reset are fully functional. It just have to be controlled in
push-pull mode.

Because of the lack of external pull-up, configuring the reset gpio as
input (to save power) puts the reset pin in an unknown state.

/Esben
Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Dmitry Torokhov 7 months, 3 weeks ago
On Tue, Apr 29, 2025 at 05:37:34PM +0200, Esben Haabendal wrote:
> "Conor Dooley" <conor@kernel.org> writes:
> 
> > On Tue, Apr 29, 2025 at 11:56:11AM +0200, Esben Haabendal wrote:
> >> This should be added for boards where there is no pull-up on the reset pin,
> >> as the driver will otherwise switch the reset signal to high-impedance to
> >> save power, which obviously not safe without pull-up.
> >> 
> >> Signed-off-by: Esben Haabendal <esben@geanix.com>
> >> ---
> >>  Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
> >>  1 file changed, 4 insertions(+)
> >> 
> >> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
> >> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> @@ -45,6 +45,10 @@ properties:
> >>    reset-gpios:
> >>      maxItems: 1
> >>  
> >> +  goodix,no-reset-pull-up:
> >> +    type: boolean
> >> +    description: There is no pull-up on reset pin
> >
> > I have to wonder, why are these system using the reset property if the
> > reset is not usable? Shouldn't the property be omitted?
> 
> The reset are fully functional. It just have to be controlled in
> push-pull mode.
> 
> Because of the lack of external pull-up, configuring the reset gpio as
> input (to save power) puts the reset pin in an unknown state.

How much power do we save by doing this? I don't recall other drivers
trying to switch reset GPIO into input mode after performing reset...

Thanks.

-- 
Dmitry
Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Esben Haabendal 7 months, 3 weeks ago
"Dmitry Torokhov" <dmitry.torokhov@gmail.com> writes:

> On Tue, Apr 29, 2025 at 05:37:34PM +0200, Esben Haabendal wrote:
>> "Conor Dooley" <conor@kernel.org> writes:
>>
>> > On Tue, Apr 29, 2025 at 11:56:11AM +0200, Esben Haabendal wrote:
>> >> This should be added for boards where there is no pull-up on the reset pin,
>> >> as the driver will otherwise switch the reset signal to high-impedance to
>> >> save power, which obviously not safe without pull-up.
>> >>
>> >> Signed-off-by: Esben Haabendal <esben@geanix.com>
>> >> ---
>> >>  Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
>> >>  1 file changed, 4 insertions(+)
>> >>
>> >> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> >> index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
>> >> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> >> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
>> >> @@ -45,6 +45,10 @@ properties:
>> >>    reset-gpios:
>> >>      maxItems: 1
>> >>
>> >> +  goodix,no-reset-pull-up:
>> >> +    type: boolean
>> >> +    description: There is no pull-up on reset pin
>> >
>> > I have to wonder, why are these system using the reset property if the
>> > reset is not usable? Shouldn't the property be omitted?
>>
>> The reset are fully functional. It just have to be controlled in
>> push-pull mode.
>>
>> Because of the lack of external pull-up, configuring the reset gpio as
>> input (to save power) puts the reset pin in an unknown state.
>
> How much power do we save by doing this? I don't recall other drivers
> trying to switch reset GPIO into input mode after performing reset...

I don't know.  I also don't recall seeing this in other drivers.  But as
not knowing how much power it is, I did not feel comofortable proposing
to remove it.

/Esben
Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
Posted by Dmitry Torokhov 7 months, 3 weeks ago
On Tue, Apr 29, 2025 at 09:02:14PM +0200, Esben Haabendal wrote:
> "Dmitry Torokhov" <dmitry.torokhov@gmail.com> writes:
> 
> > On Tue, Apr 29, 2025 at 05:37:34PM +0200, Esben Haabendal wrote:
> >> "Conor Dooley" <conor@kernel.org> writes:
> >>
> >> > On Tue, Apr 29, 2025 at 11:56:11AM +0200, Esben Haabendal wrote:
> >> >> This should be added for boards where there is no pull-up on the reset pin,
> >> >> as the driver will otherwise switch the reset signal to high-impedance to
> >> >> save power, which obviously not safe without pull-up.
> >> >>
> >> >> Signed-off-by: Esben Haabendal <esben@geanix.com>
> >> >> ---
> >> >>  Documentation/devicetree/bindings/input/touchscreen/goodix.yaml | 4 ++++
> >> >>  1 file changed, 4 insertions(+)
> >> >>
> >> >> diff --git a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> >> index eb4992f708b70fef93bd4b59b9565123f7c6ad5d..21ac13046b6e021eeb403d854aabc945801dd29f 100644
> >> >> --- a/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> >> +++ b/Documentation/devicetree/bindings/input/touchscreen/goodix.yaml
> >> >> @@ -45,6 +45,10 @@ properties:
> >> >>    reset-gpios:
> >> >>      maxItems: 1
> >> >>
> >> >> +  goodix,no-reset-pull-up:
> >> >> +    type: boolean
> >> >> +    description: There is no pull-up on reset pin
> >> >
> >> > I have to wonder, why are these system using the reset property if the
> >> > reset is not usable? Shouldn't the property be omitted?
> >>
> >> The reset are fully functional. It just have to be controlled in
> >> push-pull mode.
> >>
> >> Because of the lack of external pull-up, configuring the reset gpio as
> >> input (to save power) puts the reset pin in an unknown state.
> >
> > How much power do we save by doing this? I don't recall other drivers
> > trying to switch reset GPIO into input mode after performing reset...
> 
> I don't know.  I also don't recall seeing this in other drivers.  But as
> not knowing how much power it is, I did not feel comofortable proposing
> to remove it.

Hmm, setting RESET line to "input" was supposed to be removed in 2015:

https://lore.kernel.org/all/1473530257-7495-5-git-send-email-irina.tirdea@intel.com/

And I even said that I applied that patch, but I can't find it. And
it's been 10 years so I have no idea... The wording about power savings
seem to have come from Hans, maybe he knows/remembers more?

But I really wonder if we are not better off keeping reset line in
"inactive" output state, like every other driver does.

Thanks.

-- 
Dmitry