devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] input: touch: goodix: Extend reset pull-up fix to DT platforms
@ 2025-04-29  9:56 Esben Haabendal
  2025-04-29  9:56 ` [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property Esben Haabendal
  2025-04-29  9:56 ` [PATCH v2 2/2] Input: goodix - Allow DT specification of missing reset pull-up Esben Haabendal
  0 siblings, 2 replies; 11+ messages in thread
From: Esben Haabendal @ 2025-04-29  9:56 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede
  Cc: linux-input, devicetree, linux-kernel, Esben Haabendal

This extends the fix for platforms without external pull-up on reset pin
to device-tree platforms.

Signed-off-by: Esben Haabendal <esben@geanix.com>
---
Changes in v2:
- Added vendor prefix to property (goodix,no-reset-pull-up)
- Simplified check to only look at gpiod_rst_flags.
- Link to v1: https://lore.kernel.org/r/20250422-goodix-no-reset-pull-up-v1-0-3983bb65a1bf@geanix.com

---
Esben Haabendal (2):
      dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
      Input: goodix - Allow DT specification of missing reset pull-up

 .../devicetree/bindings/input/touchscreen/goodix.yaml     |  4 ++++
 drivers/input/touchscreen/goodix.c                        | 15 ++++++++++++---
 2 files changed, 16 insertions(+), 3 deletions(-)
---
base-commit: 9c32cda43eb78f78c73aee4aa344b777714e259b
change-id: 20250422-goodix-no-reset-pull-up-d2e4a9a3e07a

Best regards,
-- 
Esben Haabendal <esben@geanix.com>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29  9:56 [PATCH v2 0/2] input: touch: goodix: Extend reset pull-up fix to DT platforms Esben Haabendal
@ 2025-04-29  9:56 ` Esben Haabendal
  2025-04-29 15:31   ` Conor Dooley
  2025-04-29  9:56 ` [PATCH v2 2/2] Input: goodix - Allow DT specification of missing reset pull-up Esben Haabendal
  1 sibling, 1 reply; 11+ messages in thread
From: Esben Haabendal @ 2025-04-29  9:56 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede
  Cc: linux-input, devicetree, linux-kernel, Esben Haabendal

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


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/2] Input: goodix - Allow DT specification of missing reset pull-up
  2025-04-29  9:56 [PATCH v2 0/2] input: touch: goodix: Extend reset pull-up fix to DT platforms Esben Haabendal
  2025-04-29  9:56 ` [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property Esben Haabendal
@ 2025-04-29  9:56 ` Esben Haabendal
  2025-04-29  9:58   ` Hans de Goede
  1 sibling, 1 reply; 11+ messages in thread
From: Esben Haabendal @ 2025-04-29  9:56 UTC (permalink / raw)
  To: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede
  Cc: linux-input, devicetree, linux-kernel, Esben Haabendal

In commit a2fd46cd3dbb ("Input: goodix - try not to touch the reset-pin on x86/ACPI devices")
a fix for problems on various x86/ACPI devices where external
pull-up is missing were added. The same type of problem can exist on
device-tree platforms, and the fix can be activated by adding the
no-reset-pull-up device-tree property.

Signed-off-by: Esben Haabendal <esben@geanix.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/input/touchscreen/goodix.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
index a3e8a51c91449533b4d5185746df6b98676053dd..ce4622bbcc89434a4d89c49bb97f084fb61aa448 100644
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -772,10 +772,12 @@ int goodix_reset_no_int_sync(struct goodix_ts_data *ts)
 
 	/*
 	 * Put the reset pin back in to input / high-impedance mode to save
-	 * power. Only do this in the non ACPI case since some ACPI boards
-	 * don't have a pull-up, so there the reset pin must stay active-high.
+	 * power.
+	 * Avoid doing this on boards that are known to not have external
+	 * pull-up, and all ACPI boards since some ACPI boards don't have a
+	 * pull-up. These boards need the reset pin to stay active-high.
 	 */
-	if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_GPIO) {
+	if (ts->gpiod_rst_flags == GPIOD_IN) {
 		error = gpiod_direction_input(ts->gpiod_rst);
 		if (error)
 			goto error;
@@ -969,6 +971,13 @@ static int goodix_get_gpio_config(struct goodix_ts_data *ts)
 	 */
 	ts->gpiod_rst_flags = GPIOD_IN;
 
+	/*
+	 * Devices that does not have pull-up on reset signal should not be
+	 * changed to input
+	 */
+	if (device_property_read_bool(dev, "goodix,no-reset-pull-up"))
+		ts->gpiod_rst_flags = GPIOD_ASIS;
+
 	ts->avdd28 = devm_regulator_get(dev, "AVDD28");
 	if (IS_ERR(ts->avdd28))
 		return dev_err_probe(dev, PTR_ERR(ts->avdd28), "Failed to get AVDD28 regulator\n");

-- 
2.49.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 2/2] Input: goodix - Allow DT specification of missing reset pull-up
  2025-04-29  9:56 ` [PATCH v2 2/2] Input: goodix - Allow DT specification of missing reset pull-up Esben Haabendal
@ 2025-04-29  9:58   ` Hans de Goede
  0 siblings, 0 replies; 11+ messages in thread
From: Hans de Goede @ 2025-04-29  9:58 UTC (permalink / raw)
  To: Esben Haabendal, Dmitry Torokhov, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-input, devicetree, linux-kernel

Hi,

On 29-Apr-25 11:56 AM, Esben Haabendal wrote:
> In commit a2fd46cd3dbb ("Input: goodix - try not to touch the reset-pin on x86/ACPI devices")
> a fix for problems on various x86/ACPI devices where external
> pull-up is missing were added. The same type of problem can exist on
> device-tree platforms, and the fix can be activated by adding the
> no-reset-pull-up device-tree property.
> 
> Signed-off-by: Esben Haabendal <esben@geanix.com>
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Thanks the new version looks good to me.

Regards,

Hans



> ---
>  drivers/input/touchscreen/goodix.c | 15 ++++++++++++---
>  1 file changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
> index a3e8a51c91449533b4d5185746df6b98676053dd..ce4622bbcc89434a4d89c49bb97f084fb61aa448 100644
> --- a/drivers/input/touchscreen/goodix.c
> +++ b/drivers/input/touchscreen/goodix.c
> @@ -772,10 +772,12 @@ int goodix_reset_no_int_sync(struct goodix_ts_data *ts)
>  
>  	/*
>  	 * Put the reset pin back in to input / high-impedance mode to save
> -	 * power. Only do this in the non ACPI case since some ACPI boards
> -	 * don't have a pull-up, so there the reset pin must stay active-high.
> +	 * power.
> +	 * Avoid doing this on boards that are known to not have external
> +	 * pull-up, and all ACPI boards since some ACPI boards don't have a
> +	 * pull-up. These boards need the reset pin to stay active-high.
>  	 */
> -	if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_GPIO) {
> +	if (ts->gpiod_rst_flags == GPIOD_IN) {
>  		error = gpiod_direction_input(ts->gpiod_rst);
>  		if (error)
>  			goto error;
> @@ -969,6 +971,13 @@ static int goodix_get_gpio_config(struct goodix_ts_data *ts)
>  	 */
>  	ts->gpiod_rst_flags = GPIOD_IN;
>  
> +	/*
> +	 * Devices that does not have pull-up on reset signal should not be
> +	 * changed to input
> +	 */
> +	if (device_property_read_bool(dev, "goodix,no-reset-pull-up"))
> +		ts->gpiod_rst_flags = GPIOD_ASIS;
> +
>  	ts->avdd28 = devm_regulator_get(dev, "AVDD28");
>  	if (IS_ERR(ts->avdd28))
>  		return dev_err_probe(dev, PTR_ERR(ts->avdd28), "Failed to get AVDD28 regulator\n");
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29  9:56 ` [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property Esben Haabendal
@ 2025-04-29 15:31   ` Conor Dooley
  2025-04-29 15:37     ` Esben Haabendal
  2025-04-29 15:42     ` Hans de Goede
  0 siblings, 2 replies; 11+ messages in thread
From: Conor Dooley @ 2025-04-29 15:31 UTC (permalink / raw)
  To: Esben Haabendal
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede, linux-input, devicetree, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]

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
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29 15:31   ` Conor Dooley
@ 2025-04-29 15:37     ` Esben Haabendal
  2025-04-29 16:09       ` Dmitry Torokhov
  2025-04-29 15:42     ` Hans de Goede
  1 sibling, 1 reply; 11+ messages in thread
From: Esben Haabendal @ 2025-04-29 15:37 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede, linux-input, devicetree, linux-kernel

"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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29 15:31   ` Conor Dooley
  2025-04-29 15:37     ` Esben Haabendal
@ 2025-04-29 15:42     ` Hans de Goede
  2025-04-30 15:35       ` Conor Dooley
  1 sibling, 1 reply; 11+ messages in thread
From: Hans de Goede @ 2025-04-29 15:42 UTC (permalink / raw)
  To: Conor Dooley, Esben Haabendal
  Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-input, devicetree, linux-kernel

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
>>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29 15:37     ` Esben Haabendal
@ 2025-04-29 16:09       ` Dmitry Torokhov
  2025-04-29 19:02         ` Esben Haabendal
  0 siblings, 1 reply; 11+ messages in thread
From: Dmitry Torokhov @ 2025-04-29 16:09 UTC (permalink / raw)
  To: Esben Haabendal
  Cc: Conor Dooley, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede, linux-input, devicetree, linux-kernel

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29 16:09       ` Dmitry Torokhov
@ 2025-04-29 19:02         ` Esben Haabendal
  2025-04-29 21:32           ` Dmitry Torokhov
  0 siblings, 1 reply; 11+ messages in thread
From: Esben Haabendal @ 2025-04-29 19:02 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Conor Dooley, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede, linux-input, devicetree, linux-kernel

"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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29 19:02         ` Esben Haabendal
@ 2025-04-29 21:32           ` Dmitry Torokhov
  0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Torokhov @ 2025-04-29 21:32 UTC (permalink / raw)
  To: Esben Haabendal
  Cc: Conor Dooley, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Hans de Goede, linux-input, devicetree, linux-kernel

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property
  2025-04-29 15:42     ` Hans de Goede
@ 2025-04-30 15:35       ` Conor Dooley
  0 siblings, 0 replies; 11+ messages in thread
From: Conor Dooley @ 2025-04-30 15:35 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Esben Haabendal, Dmitry Torokhov, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, linux-input, devicetree,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1666 bytes --]

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>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-04-30 15:35 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-29  9:56 [PATCH v2 0/2] input: touch: goodix: Extend reset pull-up fix to DT platforms Esben Haabendal
2025-04-29  9:56 ` [PATCH v2 1/2] dt-bindings: input: touchscreen: goodix: Add no-reset-pull-up property Esben Haabendal
2025-04-29 15:31   ` Conor Dooley
2025-04-29 15:37     ` Esben Haabendal
2025-04-29 16:09       ` Dmitry Torokhov
2025-04-29 19:02         ` Esben Haabendal
2025-04-29 21:32           ` Dmitry Torokhov
2025-04-29 15:42     ` Hans de Goede
2025-04-30 15:35       ` Conor Dooley
2025-04-29  9:56 ` [PATCH v2 2/2] Input: goodix - Allow DT specification of missing reset pull-up Esben Haabendal
2025-04-29  9:58   ` Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).