All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Gireesh.Hiremath@in.bosch.com>
To: <linux-omap@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-input@vger.kernel.org>,
	<bcousson@baylibre.com>, <tony@atomide.com>, <robh+dt@kernel.org>,
	<krzysztof.kozlowski+dt@linaro.org>, <dmitry.torokhov@gmail.com>,
	<mkorpershoek@baylibre.com>, <davidgow@google.com>,
	<m.felsch@pengutronix.de>, <swboyd@chromium.org>,
	<fengping.yu@mediatek.com>, <y.oudjana@protonmail.com>,
	<rdunlap@infradead.org>, <colin.king@intel.com>,
	<Gireesh.Hiremath@in.bosch.com>
Cc: <sjoerd.simons@collabora.co.uk>,
	<VinayKumar.Shettar@in.bosch.com>,
	<Govindaraji.Sivanantham@in.bosch.com>,
	<anaclaudia.dias@de.bosch.com>
Subject: [PATCH 4/4] dt-bindings: input: mt-matrix-keypad: add guardian mt matrix keypad bindings definition
Date: Wed, 4 May 2022 10:52:54 +0000	[thread overview]
Message-ID: <20220504105254.1576-4-Gireesh.Hiremath@in.bosch.com> (raw)
In-Reply-To: <20220504105254.1576-1-Gireesh.Hiremath@in.bosch.com>

From: Gireesh Hiremath <Gireesh.Hiremath@in.bosch.com>

Add binding definition for the support of the Guardian
mt matrix keypad driver.

Signed-off-by: Gireesh Hiremath <Gireesh.Hiremath@in.bosch.com>
---
 .../bindings/input/mt-matrix-keypad.yaml      | 134 ++++++++++++++++++
 1 file changed, 134 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/mt-matrix-keypad.yaml

diff --git a/Documentation/devicetree/bindings/input/mt-matrix-keypad.yaml b/Documentation/devicetree/bindings/input/mt-matrix-keypad.yaml
new file mode 100644
index 000000000000..b52cd478f638
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/mt-matrix-keypad.yaml
@@ -0,0 +1,134 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/mt-matrix-keypad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GPIO driven mt matrix keypad device tree bindings
+
+maintainers:
+  - vinay <VinayKumar.Shettar@in.bosch.com>
+
+description: |
+  GPIO driven mt matrix keypad is used to interface a SoC with a mt matrix
+  keypad. The mt matrix keypad supports multiple gpio line, all gpio line act
+  as row as wel as column lines, a key can be placed at each intersection
+  of a unique row number not equal to a unique column and they are diagonally
+  symmetric.
+
+  Example- For 5 gpio lines, possible matrix is 5x5 and maximum possible
+        keys are 10.
+
+        Sample matrix table for 7 button and 5 gpio line
+
+        ------------------------------------------------------
+        |Row\Col |GPIO 0 | GPIO 1 | GPIO 2 | GPIO 3 | GPIO 4 |
+        ------------------------------------------------------
+        | GPIO 0 |  X    | KEY_9  | KEY_2  |   X    | KEY_1  |
+        ------------------------------------------------------
+        | GPIO 1 | KEY_9 |  X     | KEY_6  |   X    |  X     |
+        ------------------------------------------------------
+        | GPIO 2 | KEY_2 | KEY_6  |  X     | KEY_4  | KEY_7  |
+        ------------------------------------------------------
+        | GPIO 3 |  X    |  X     | KEY_4  |  X     | KEY_8  |
+        ------------------------------------------------------
+        | GPIO 4 | KEY_1 |  X     | KEY_7  | KEY_8  |  X     |
+        ------------------------------------------------------
+        X - invalid key
+        KEY_x - preferred key code
+
+  The mt 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.
+
+properties:
+  compatible:
+    oneOf:
+      - const: gpio-mt-matrix-keypad
+      - items:
+          - enum:
+              - gpio-mt-matrix-keypad
+          - const: gpio-mt-matrix-keypad
+
+  debounce-delay-ms:
+    description: Delay after the first bounce of button.
+    default: 0
+
+  col-scan-delay-us:
+    description: Delay before scanning next active line.
+    default: 0
+
+  number-of-button:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Number of button connected to the keypad controller.
+
+  linux,no-autorepeat:
+    description: |
+      Disable the Linux input system's autorepeat feature on the input device.
+
+  gpio-activelow:
+    description: Gpio line are active low.
+
+  line-gpios:
+    description: |
+      Gpio lines connected to keypad controller.
+      all gpio line act as row as wel as column lines.
+
+  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
+
+required:
+  - compatible
+  - number-of-button
+  - line-gpios
+  - linux,keymap
+
+additionalProperties: true
+
+examples:
+  - |
+    mt_matrix_keypad {
+        compatible = "gpio-mt-matrix-keypad";
+        debounce-delay-ms = <10>;
+        col-scan-delay-us = <2>;
+        number-of-button = <7>;
+        linux,no-autorepeat;
+        gpio-activelow;
+        line-gpios = <
+                &gpio1 24 1     /*gpio_56*/
+                &gpio1 23 1     /*gpio_55*/
+                &gpio1 22 1     /*gpio_54*/
+                &gpio1 20 1     /*gpio_52*/
+                &gpio1 16 1     /*gpio_48*/
+        >;
+        linux,keymap = <
+                0x00000000 /* row 0, col 0, KEY_RESERVED/invalid key */
+                0x0001000a /* row 0, col 1, KEY_9 */
+                0x00020003 /* row 0, col 2, KEY_2 */
+                0x00030000 /* row 0, col 3, KEY_RESERVED/invalid key */
+                0x00040002 /* row 0, col 4, KEY_1 */
+                0x0100000a /* row 1, col 0, KEY_9 */
+                0x01010000 /* row 1, col 1, KEY_RESERVED/invalid key */
+                0x01020007 /* row 1, col 2, KEY_6 */
+                0x01030000 /* row 1, col 3, KEY_RESERVED/invalid key */
+                0x01040000 /* row 1, col 4, KEY_RESERVED/invalid key */
+                0x02000003 /* row 2, col 0, KEY_2 */
+                0x02010007 /* row 2, col 1, KEY_6 */
+                0x02020000 /* row 2, col 2, KEY_RESERVED/invalid key */
+                0x02030005 /* row 2, col 3, KEY_4 */
+                0x02040008 /* row 2, col 4, KEY_7 */
+                0x03000000 /* row 3, col 0, KEY_RESERVED/invalid key */
+                0x03010000 /* row 3, col 1, KEY_RESERVED/invalid key */
+                0x03020005 /* row 3, col 2, KEY_4 */
+                0x03030000 /* row 3, col 3, KEY_RESERVED/invalid key */
+                0x03040009 /* row 3, col 4, KEY_8 */
+                0x04000002 /* row 4, col 0, KEY_1 */
+                0x04010000 /* row 4, col 1, KEY_RESERVED/invalid key */
+                0x04020008 /* row 4, col 2, KEY_7 */
+                0x04030009 /* row 4, col 3, KEY_8 */
+                0x04040000 /* row 4, col 4, KEY_RESERVED/invalid key */
+        >;
+    };
-- 
2.20.1


  parent reply	other threads:[~2022-05-04 10:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-04 10:52 [PATCH 1/4] ARM: dts: am335x: Guardian: switch to AM33XX_PADCONF pinmux macro Gireesh.Hiremath
2022-05-04 10:52 ` [PATCH 2/4] Input: mt-matrix-keypad: Add Bosch mt matrix keypad driver Gireesh.Hiremath
2022-05-04 12:10   ` Marco Felsch
2022-05-04 13:48   ` Gireesh.Hiremath
2022-05-04 14:14     ` Marco Felsch
2022-05-05  8:27       ` Krzysztof Kozlowski
2022-05-04 15:01   ` kernel test robot
2022-05-04 21:56   ` kernel test robot
2022-05-04 10:52 ` [PATCH 3/4] ARM: dts: am335x: Guardian: add keymap to mt matrix keypad Gireesh.Hiremath
2022-05-04 10:52 ` Gireesh.Hiremath [this message]
2022-05-05  8:29   ` [PATCH 4/4] dt-bindings: input: mt-matrix-keypad: add guardian mt matrix keypad bindings definition Krzysztof Kozlowski

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=20220504105254.1576-4-Gireesh.Hiremath@in.bosch.com \
    --to=gireesh.hiremath@in.bosch.com \
    --cc=Govindaraji.Sivanantham@in.bosch.com \
    --cc=VinayKumar.Shettar@in.bosch.com \
    --cc=anaclaudia.dias@de.bosch.com \
    --cc=bcousson@baylibre.com \
    --cc=colin.king@intel.com \
    --cc=davidgow@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=fengping.yu@mediatek.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=m.felsch@pengutronix.de \
    --cc=mkorpershoek@baylibre.com \
    --cc=rdunlap@infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=sjoerd.simons@collabora.co.uk \
    --cc=swboyd@chromium.org \
    --cc=tony@atomide.com \
    --cc=y.oudjana@protonmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.