Commit 311a27da authored by Philip Chen's avatar Philip Chen Committed by Dmitry Torokhov
Browse files

dt-bindings: input: cros-ec-keyb: Add a new property describing top row



Add a new property `function-row-physmap` to the
device tree for the custom keyboard top row design.

The property describes the rows/columns of the top row keys
from left to right.

Signed-off-by: default avatarPhilip Chen <philipchen@chromium.org>
Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210115122412.v7.1.I025fb861cd5fa0ef5286b7dce514728e9df7ae74@changeid


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 415e915f
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -31,6 +31,17 @@ properties:
      if the EC does not have its own logic or hardware for this.
    type: boolean

  function-row-physmap:
    minItems: 1
    maxItems: 15
    description: |
      An ordered u32 array describing the rows/columns (in the scan matrix)
      of top row keys from physical left (KEY_F1) to right. Each entry
      encodes the row/column as:
      (((row) & 0xFF) << 24) | (((column) & 0xFF) << 16)
      where the lower 16 bits are reserved. This property is specified only
      when the keyboard has a custom design for the top row keys.

required:
  - compatible

@@ -38,11 +49,24 @@ unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    cros-ec-keyb {
        compatible = "google,cros-ec-keyb";
        keypad,num-rows = <8>;
        keypad,num-columns = <13>;
        google,needs-ghost-filter;
        function-row-physmap = <
            MATRIX_KEY(0x00, 0x02, 0)   /* T1 */
            MATRIX_KEY(0x03, 0x02, 0)   /* T2 */
            MATRIX_KEY(0x02, 0x02, 0)   /* T3 */
            MATRIX_KEY(0x01, 0x02, 0)   /* T4 */
            MATRIX_KEY(0x03, 0x04, 0)   /* T5 */
            MATRIX_KEY(0x02, 0x04, 0)   /* T6 */
            MATRIX_KEY(0x01, 0x04, 0)   /* T7 */
            MATRIX_KEY(0x02, 0x09, 0)   /* T8 */
            MATRIX_KEY(0x01, 0x09, 0)   /* T9 */
            MATRIX_KEY(0x00, 0x04, 0)   /* T10 */
        >;
        /*
         * Keymap entries take the form of 0xRRCCKKKK where
         * RR=Row CC=Column KKKK=Key Code