Re: [PATCH v5 3/3] dt-bindings: input: Update dtbinding for adp5588

Conor Dooley
2024-07-03T15:20:25Z

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

On Wed, Jul 03, 2024 at 11:58:16AM +0100, Utsav Agarwal via B4 Relay wrote:
> From: Utsav Agarwal <utsav.agarwal@analog.com>
>
> Updating dt bindings for adp5588. Since the device can now function in a
> purely gpio mode, the following keypad specific properties are now made
> optional:
> - interrupts
> - keypad,num-rows
> - keypad,num-columns
> - linux,keymap
>
> However since the above properties are required to be specified when
> configuring the device as a keypad, dependencies have been added
> such that specifying either one would require the remaining as well.
>
> Signed-off-by: Utsav Agarwal <utsav.agarwal@analog.com>
> ---
> .../devicetree/bindings/input/adi,adp5588.yaml | 33 ++++++++++++++++++----
> 1 file changed, 28 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/input/adi,adp5588.yaml b/Documentation/devicetree/bindings/input/adi,adp5588.yaml
> index 26ea66834ae2..6c06464f822b 100644
> --- a/Documentation/devicetree/bindings/input/adi,adp5588.yaml
> +++ b/Documentation/devicetree/bindings/input/adi,adp5588.yaml
> @@ -49,7 +49,10 @@ properties:
> interrupt-controller:
> description:
> This property applies if either keypad,num-rows lower than 8 or
> - keypad,num-columns lower than 10.
> + keypad,num-columns lower than 10. This property does not apply if
> + keypad,num-rows or keypad,num-columns are not specified since the
> + device then acts as gpio only, during which interrupts are not
> + utilized.
>
> '#interrupt-cells':
> const: 2
> @@ -65,13 +68,15 @@ properties:
> minItems: 1
> maxItems: 2
>
> +dependencies:
> + keypad,num-rows: ["keypad,num-columns"]
> + keypad,num-cols: ["keypad,num-rows"]
> + linux,keymap: ["keypad,num-rows"]

Is what you've got here sufficient? Adding "keypad,num-rows" won't
mandate "linux,keymap" which I think is wrong. I think all 3 entries
here need to contain both of the other two.

> + interrupts: ["linux,keymap"]

I still don't understand why interrupts are only allowed when the keymap
is present. I'd cover the interrupts with something like

if:
required:
- linux,keymap
then:
required:
- interrupts

so that interrupts can be used while not in keypad mode. Unless of
course there's something (unmentioned in this patch) that prevents that.

Thanks,
Conor.

> +
> required:
> - compatible
> - reg
> - - interrupts
> - - keypad,num-rows
> - - keypad,num-columns
> - - linux,keymap
>
> unevaluatedProperties: false
>
> @@ -108,4 +113,22 @@ examples:
> >;
> };
> };
> +
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/input/input.h>
> + #include <dt-bindings/gpio/gpio.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + gpio@34 {
> + compatible = "adi,adp5588";
> + reg = <0x34>;
> +
> + #gpio-cells = <2>;
> + gpio-controller;
> + };
> + };
> +
> ...
>
> --
> 2.34.1
>
>

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