mbox series

[v9,0/3] adp5588-keys: Support for dedicated gpio operation

Message ID 20240806-adp5588_gpio_support-v9-0-4d6118b6d653@analog.com (mailing list archive)
Headers show
Series adp5588-keys: Support for dedicated gpio operation | expand

Message

Utsav Agarwal via B4 Relay Aug. 6, 2024, 8:48 a.m. UTC
Current state of the driver for the ADP5588/87 only allows partial
I/O to be used as GPIO. This support was previously present as a
separate gpio driver, which was dropped with the commit
5ddc896088b0 ("gpio: gpio-adp5588: drop the driver") since the
functionality was deemed to have been merged with adp5588-keys.

This series of patches re-enables this support by allowing the driver to 
relax the requirement for registering a keymap and enable pure GPIO 
operation. 

Changelog
==========

V2: 
	-  Changed gpio_only from a local variable to a member of struct
	adp5588_kpad
	-  Removed condition from adp5588_probe() to skip adp5588_fw_parse() if 
	gpio-only specified. adp558_fw_parse() now handles and returns
	0 if gpio-only has been specified.
	-  Added a check in adp5588_fw_parse() to make sure keypad 
	properties(keypad,num-columns and keypad,num-rows) were not defined when 
	gpio-only specified

V3:
	-  Moved device_property_present() for reading "gpio-only" into 
	adp558_fw_parse()
	-  Added print statements in case of error

V4:
	- Added dt-bindings patch

Signed-off-by: Utsav Agarwal <utsav.agarwal@analog.com>
---
V5:
	- Removed extra property "gpio-only", now pure gpio mode is
	  detected via the adbsence of keypad specific properties.
	- Added dependencies for keypad properties to preserve
	  the original requirements in case a pure gpio mode is not
	  being used.
	- Added additional description for why the "interrupts" property
	  was made optional
	- Rebased current work based on https://lore.kernel.org/linux-input/ZoLt_qBCQS-tG8Ar@google.com/
- Link to v4: https://lore.kernel.org/r/20240701-adp5588_gpio_support-v4-0-44bba0445e90@analog.com

---
Changes in v9:
	- Added dt-binding dependency for interrupt-controller. Now if
	  interrupt-controller is specified, interrupts must be
	  provided.
- Link to v8: https://lore.kernel.org/r/20240704-adp5588_gpio_support-v8-0-208cf5d4c2d6@analog.com

Changes in v8:
	- Fixed indentation in document example (removed extra spaces)
- Link to v7: https://lore.kernel.org/r/20240704-adp5588_gpio_support-v7-0-e34eb7eba5ab@analog.com

Changes in v7:
	- Fixed commit subject for transported patch 
	- Driver now does not setup gpio_irq_chip if 
	  interrupt has not been provided
	- Fixed indentation for dtbinding example
- Link to v6: https://lore.kernel.org/r/20240704-adp5588_gpio_support-v6-0-cb65514d714b@analog.com

Changes in v6:
	- Restored functionality to register interrupts in GPIO
	  mode(i.e, these are optional but not exclusive to keypad mode
	  since even in pure gpio mode, they can be used as inputs via 
	  gpio-keys)
	- Updated dt-bindings such that each keypad property depends on
	  the others. Interrupts, although optional are now required by 
	  keypad mode but are not limited to it.
- Link to v5: https://lore.kernel.org/r/20240703-adp5588_gpio_support-v5-0-49fcead0d390@analog.com

---
Dmitry Torokhov (1):
      Input: adp5588-keys - use guard notation when acquiring mutexes

Utsav Agarwal (2):
      Input: adp5588-keys - add support for pure gpio
      dt-bindings: input: Update dtbinding for adp5588

 .../devicetree/bindings/input/adi,adp5588.yaml     | 51 +++++++++++--
 drivers/input/keyboard/adp5588-keys.c              | 86 +++++++++++++---------
 2 files changed, 95 insertions(+), 42 deletions(-)
---
base-commit: 1c52cf5e79d30ac996f34b64284f2c317004d641
change-id: 20240701-adp5588_gpio_support-65db2bd21a9f

Best regards,

Comments

Krzysztof Kozlowski Aug. 6, 2024, 9:01 a.m. UTC | #1
On 06/08/2024 10:48, Utsav Agarwal via B4 Relay wrote:
> Current state of the driver for the ADP5588/87 only allows partial
> I/O to be used as GPIO. This support was previously present as a
> separate gpio driver, which was dropped with the commit
> 5ddc896088b0 ("gpio: gpio-adp5588: drop the driver") since the
> functionality was deemed to have been merged with adp5588-keys.
> 
> This series of patches re-enables this support by allowing the driver to 
> relax the requirement for registering a keymap and enable pure GPIO 
> operation. 
> 
> Changelog
> ==========
> 
> V2: 
> 	-  Changed gpio_only from a local variable to a member of struct
> 	adp5588_kpad
> 	-  Removed condition from adp5588_probe() to skip adp5588_fw_parse() if 
> 	gpio-only specified. adp558_fw_parse() now handles and returns
> 	0 if gpio-only has been specified.
> 	-  Added a check in adp5588_fw_parse() to make sure keypad 
> 	properties(keypad,num-columns and keypad,num-rows) were not defined when 
> 	gpio-only specified
> 
> V3:
> 	-  Moved device_property_present() for reading "gpio-only" into 
> 	adp558_fw_parse()
> 	-  Added print statements in case of error
> 
> V4:
> 	- Added dt-bindings patch
> 
> Signed-off-by: Utsav Agarwal <utsav.agarwal@analog.com>
> ---
> V5:
> 	- Removed extra property "gpio-only", now pure gpio mode is
> 	  detected via the adbsence of keypad specific properties.
> 	- Added dependencies for keypad properties to preserve
> 	  the original requirements in case a pure gpio mode is not
> 	  being used.
> 	- Added additional description for why the "interrupts" property
> 	  was made optional
> 	- Rebased current work based on https://lore.kernel.org/linux-input/ZoLt_qBCQS-tG8Ar@google.com/
> - Link to v4: https://lore.kernel.org/r/20240701-adp5588_gpio_support-v4-0-44bba0445e90@analog.com
> 
> ---
> Changes in v9:

That's some mess in changelog... v1, v2... v5, v9, v8, v7?


> 	- Added dt-binding dependency for interrupt-controller. Now if
> 	  interrupt-controller is specified, interrupts must be
> 	  provided.

So that's the reason of skipping tag?

Best regards,
Krzysztof
Agarwal, Utsav Aug. 6, 2024, 10:16 a.m. UTC | #2
> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: Tuesday, August 6, 2024 10:01 AM
> To: Agarwal, Utsav <Utsav.Agarwal@analog.com>; Hennerich, Michael
> <Michael.Hennerich@analog.com>; Dmitry Torokhov
> <dmitry.torokhov@gmail.com>; Rob Herring <robh@kernel.org>; Krzysztof
> Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Sa,
> Nuno <Nuno.Sa@analog.com>
> Cc: linux-input@vger.kernel.org; devicetree@vger.kernel.org; linux-
> kernel@vger.kernel.org; Artamonovs, Arturs
> <Arturs.Artamonovs@analog.com>; Bimpikas, Vasileios
> <Vasileios.Bimpikas@analog.com>; Gaskell, Oliver
> <Oliver.Gaskell@analog.com>
> Subject: Re: [PATCH v9 0/3] adp5588-keys: Support for dedicated gpio
> operation
> 
> 
> 
> > 	- Added dt-binding dependency for interrupt-controller. Now if
> > 	  interrupt-controller is specified, interrupts must be
> > 	  provided.
> 
> So that's the reason of skipping tag?

Apologies if I don’t understand this, but I have pointed to the link 
for the previous version as well as labelled that this change is 
under v9. I understand the order is wrong, but all versions seem to
be present in the changelog. Could you guide me on what should
to be added?

> 
> Best regards,
> Krzysztof


- Utsav
Krzysztof Kozlowski Aug. 6, 2024, 10:41 a.m. UTC | #3
On 06/08/2024 12:16, Agarwal, Utsav wrote:
>>
>>
>>> 	- Added dt-binding dependency for interrupt-controller. Now if
>>> 	  interrupt-controller is specified, interrupts must be
>>> 	  provided.
>>
>> So that's the reason of skipping tag?
> 
> Apologies if I don’t understand this, but I have pointed to the link 
> for the previous version as well as labelled that this change is 
> under v9. I understand the order is wrong, but all versions seem to
> be present in the changelog. Could you guide me on what should
> to be added?

You received a tag (or even tags). Where is it?

Best regards,
Krzysztof
Agarwal, Utsav Aug. 6, 2024, 11:29 a.m. UTC | #4
> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: Tuesday, August 6, 2024 11:42 AM
> To: Agarwal, Utsav <Utsav.Agarwal@analog.com>; Hennerich, Michael
> <Michael.Hennerich@analog.com>; Dmitry Torokhov
> <dmitry.torokhov@gmail.com>; Rob Herring <robh@kernel.org>; Krzysztof
> Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Sa,
> Nuno <Nuno.Sa@analog.com>
> Cc: linux-input@vger.kernel.org; devicetree@vger.kernel.org; linux-
> kernel@vger.kernel.org; Artamonovs, Arturs
> <Arturs.Artamonovs@analog.com>; Bimpikas, Vasileios
> <Vasileios.Bimpikas@analog.com>; Gaskell, Oliver
> <Oliver.Gaskell@analog.com>
> Subject: Re: [PATCH v9 0/3] adp5588-keys: Support for dedicated gpio
> operation
> 
> [External]
> 
> On 06/08/2024 12:16, Agarwal, Utsav wrote:
> >>
> >>
> >>> 	- Added dt-binding dependency for interrupt-controller. Now if
> >>> 	  interrupt-controller is specified, interrupts must be
> >>> 	  provided.
> >>
> >> So that's the reason of skipping tag?
> >
> > Apologies if I don’t understand this, but I have pointed to the link
> > for the previous version as well as labelled that this change is
> > under v9. I understand the order is wrong, but all versions seem to
> > be present in the changelog. Could you guide me on what should
> > to be added?
> 
> You received a tag (or even tags). Where is it?
> 
> Best regards,
> Krzysztof

Ah I see. Thank you for pointing that to me. I will add them.

- Utsav