linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Markus Burri <markus.burri@mt.com>
Cc: linux-kernel@vger.kernel.org,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Marek Vasut <marek.vasut@gmail.com>,
	linux-input@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v2 3/7] dt-bindings: input: matrix_keypad - convert to YAML
Date: Mon, 11 Nov 2024 15:37:23 -0600	[thread overview]
Message-ID: <20241111213723.GA1976774-robh@kernel.org> (raw)
In-Reply-To: <20241105130322.213623-4-markus.burri@mt.com>

On Tue, Nov 05, 2024 at 02:03:18PM +0100, Markus Burri wrote:
> Convert the gpio-matrix-keypad bindings from text to DT schema.

Please don't thread new versions to previous thread.

> 
> Signed-off-by: Markus Burri <markus.burri@mt.com>
> ---
>  .../bindings/input/gpio-matrix-keypad.txt     | 49 ---------
>  .../bindings/input/gpio-matrix-keypad.yaml    | 99 +++++++++++++++++++
>  2 files changed, 99 insertions(+), 49 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
>  create mode 100644 Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml
> 
> diff --git a/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt b/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
> deleted file mode 100644
> index 570dc10..0000000
> --- a/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt
> +++ /dev/null
> @@ -1,49 +0,0 @@
> -* GPIO driven matrix keypad device tree bindings
> -
> -GPIO driven matrix keypad is used to interface a SoC with a matrix keypad.
> -The matrix keypad supports multiple row and column lines, a key can be
> -placed at each intersection of a unique row and a unique column. The matrix
> -keypad can sense a key-press and key-release by means of GPIO lines and
> -report the event using GPIO interrupts to the cpu.
> -
> -Required Properties:
> -- compatible:		Should be "gpio-matrix-keypad"
> -- row-gpios:		List of gpios used as row lines. The gpio specifier
> -			for this property depends on the gpio controller to
> -			which these row lines are connected.
> -- col-gpios:		List of gpios used as column lines. The gpio specifier
> -			for this property depends on the gpio controller to
> -			which these column lines are connected.
> -- linux,keymap:		The definition can be found at
> -			bindings/input/matrix-keymap.txt
> -
> -Optional Properties:
> -- linux,no-autorepeat:	do no enable autorepeat feature.
> -- wakeup-source:	use any event on keypad as wakeup event.
> -			(Legacy property supported: "linux,wakeup")
> -- debounce-delay-ms:	debounce interval in milliseconds
> -- col-scan-delay-us:	delay, measured in microseconds, that is needed
> -			before we can scan keypad after activating column gpio
> -- drive-inactive-cols:	drive inactive columns during scan,
> -			default is to turn inactive columns into inputs.
> -
> -Example:
> -	matrix-keypad {
> -		compatible = "gpio-matrix-keypad";
> -		debounce-delay-ms = <5>;
> -		col-scan-delay-us = <2>;
> -
> -		row-gpios = <&gpio2 25 0
> -			     &gpio2 26 0
> -			     &gpio2 27 0>;
> -
> -		col-gpios = <&gpio2 21 0
> -			     &gpio2 22 0>;
> -
> -		linux,keymap = <0x0000008B
> -				0x0100009E
> -				0x02000069
> -				0x0001006A
> -				0x0101001C
> -				0x0201006C>;
> -	};
> diff --git a/Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml b/Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml
> new file mode 100644
> index 0000000..745652b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/input/gpio-matrix-keypad.yaml
> @@ -0,0 +1,99 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +
> +$id: http://devicetree.org/schemas/input/gpio-matrix-keypad.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: GPIO matrix keypad
> +
> +description: |

Don't need '|' if no formatting.

> +  GPIO driven matrix keypad is used to interface a SoC with a matrix keypad.
> +  The matrix keypad supports multiple row and column lines, a key can be
> +  placed at each intersection of a unique row and a unique column. The matrix
> +  keypad can sense a key-press and key-release by means of GPIO lines and
> +  report the event using GPIO interrupts to the cpu.
> +
> +maintainers:
> +  - Marek Vasut <marek.vasut@gmail.com>
> +
> +properties:
> +  compatible:
> +    const: gpio-matrix-keypad
> +
> +  row-gpios:
> +    description: |

Ditto.

> +      List of GPIOs used as row lines. The gpio specifier
> +      for this property depends on the gpio controller to
> +      which these row lines are connected.

Why the odd line length? Wrap at 80 char unless there's some exceptional 
reason to go to 100.

> +
> +  col-gpios:
> +    description: |
> +      List of GPIOs used as column lines. The gpio specifier
> +      for this property depends on the gpio controller to
> +      which these column lines are connected.

Is there some reasonable range of GPIOs? 1xN is in theory possible, but 
surely no one would use N+1 GPIOs for what could be done with N GPIOs? 
So 'minItems: 2'. A max is not so clear. Eventually, I guess you 
couldn't scan them fast enough. 64 or 128 seems like way more than 
anyone would do.

> +
> +  linux,keymap:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description: |
> +      An array of packed 1-cell entries containing the equivalent of row,
> +      column and linux key-code. The 32-bit big endian cell is packed as:
> +          row << 24 | column << 16 | key-code

If you are copying another schema, you are doing it wrong...

You need a $ref to matrix-keymap.yaml.

> +
> +  linux,no-autorepeat:
> +    type: boolean
> +    description: Do not enable autorepeat feature.
> +    default: false

Drop 'default'. Doesn't apply to booleans.

> +
> +  wakeup-source:
> +    description: |
> +      Use any event on keypad as wakeup event.
> +      (Legacy property supported: "linux,wakeup")

Not supported if it is not in the schema. I imagine that's been 
deprecated long enough, you can just drop mentioning it.

> +    default: false

Drop.

> +
> +  debounce-delay-ms:
> +    description: Debounce interval in milliseconds.
> +    default: 0
> +
> +  col-scan-delay-us:
> +    description: |
> +      Delay, measured in microseconds, that is needed
> +      before we can scan keypad after activating column gpio.
> +    default: 0
> +
> +  drive-inactive-cols:
> +    type: boolean
> +    description: |
> +      Drive inactive columns during scan,
> +      default is to turn inactive columns into inputs.
> +    default: false

Drop

> +
> +required:
> +  - compatible
> +  - row-gpios
> +  - col-gpios
> +  - linux,keymap
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    matrix-keypad {
> +        compatible = "gpio-matrix-keypad";
> +        debounce-delay-ms = <5>;
> +        col-scan-delay-us = <2>;
> +
> +        row-gpios = <&gpio2 25 0
> +                     &gpio2 26 0
> +                     &gpio2 27 0>;
> +
> +        col-gpios = <&gpio2 21 0
> +                     &gpio2 22 0>;
> +
> +        linux,keymap = <0x0000008B
> +                        0x0100009E
> +                        0x02000069
> +                        0x0001006A
> +                        0x0101001C
> +                        0x0201006C>;
> +    };
> -- 
> 2.39.5
> 

  parent reply	other threads:[~2024-11-11 21:37 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-31  6:29 [PATCH 0/6] Input: matrix-keypad: Various performance improvements Markus Burri
2024-10-31  6:29 ` [PATCH 1/6] Input: matrix_keypad - move gpio-row init to the init part Markus Burri
2024-10-31  6:30 ` [PATCH 2/6] Input: matrix_keypad - use fsleep for variable delay duration Markus Burri
2024-10-31  6:30 ` [PATCH 3/6] Input: matrix_keypad - add function for reading row state Markus Burri
2024-10-31  6:30 ` [PATCH 4/6] dt-bindings: input: matrix_keypad - add settle time after enable all columns Markus Burri
2024-10-31  8:32   ` Krzysztof Kozlowski
2024-10-31  6:30 ` [PATCH 5/6] Input: " Markus Burri
2024-10-31  6:30 ` [PATCH 6/6] Input: matrix_keypad - detect change during scan Markus Burri
2024-11-05 13:03 ` [PATCH v2 0/7] Input: matrix-keypad: Various performance improvements Markus Burri
2024-11-05 13:03   ` [PATCH v2 1/7] Input: matrix_keypad - use fsleep for variable delay duration Markus Burri
2024-11-05 19:16     ` Dmitry Torokhov
2024-11-05 13:03   ` [PATCH v2 2/7] Input: matrix_keypad - add function for reading row state Markus Burri
2024-11-05 13:03   ` [PATCH v2 3/7] dt-bindings: input: matrix_keypad - convert to YAML Markus Burri
2024-11-05 17:20     ` kernel test robot
2024-11-11 21:37     ` Rob Herring [this message]
2024-11-05 13:03   ` [PATCH v2 4/7] dt-bindings: input: matrix_keypad - add missing property Markus Burri
2024-11-05 18:22     ` Conor Dooley
2024-11-05 19:14       ` Dmitry Torokhov
2024-11-06 16:24         ` Conor Dooley
2024-11-05 13:03   ` [PATCH v2 5/7] dt-bindings: input: matrix_keypad - add settle time after enable all columns Markus Burri
2024-11-11 21:38     ` Rob Herring
2024-11-05 13:03   ` [PATCH v2 6/7] Input: " Markus Burri
2024-11-05 13:03   ` [PATCH v2 7/7] Input: matrix_keypad - detect change during scan Markus Burri
2024-11-05 19:19     ` Dmitry Torokhov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241111213723.GA1976774-robh@kernel.org \
    --to=robh@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marek.vasut@gmail.com \
    --cc=markus.burri@mt.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).