# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---

$id: http://devicetree.org/schemas/input/google,cros-ec-keyb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ChromeOS EC Keyboard

maintainers:
  - Simon Glass <sjg@chromium.org>
  - Benson Leung <bleung@chromium.org>
  - Enric Balletbo i Serra <enric.balletbo@collabora.com>

description: |
  Google's ChromeOS EC Keyboard is a simple matrix keyboard
  implemented on a separate EC (Embedded Controller) device. It provides
  a message for reading key scans from the EC. These are then converted
  into keycodes for processing by the kernel.

allOf:
  - $ref: "/schemas/input/matrix-keymap.yaml#"

properties:
  compatible:
    const: google,cros-ec-keyb

  google,needs-ghost-filter:
    description:
      Enable a ghost filter for the matrix keyboard. This is recommended
      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

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
         * The values below are for a US keyboard layout and
         * are taken from the Linux driver. Note that the
         * 102ND key is not used for US keyboards.
         */
        linux,keymap = <
            /* CAPSLCK F1         B          F10     */
            0x0001003a 0x0002003b 0x00030030 0x00040044
            /* N       =          R_ALT      ESC     */
            0x00060031 0x0008000d 0x000a0064 0x01010001
            /* F4      G          F7         H       */
            0x0102003e 0x01030022 0x01040041 0x01060023
            /* '       F9         BKSPACE    L_CTRL  */
            0x01080028 0x01090043 0x010b000e 0x0200001d
            /* TAB     F3         T          F6      */
            0x0201000f 0x0202003d 0x02030014 0x02040040
            /* ]       Y          102ND      [       */
            0x0205001b 0x02060015 0x02070056 0x0208001a
            /* F8      GRAVE      F2         5       */
            0x02090042 0x03010029 0x0302003c 0x03030006
            /* F5      6          -          \       */
            0x0304003f 0x03060007 0x0308000c 0x030b002b
            /* R_CTRL  A          D          F       */
            0x04000061 0x0401001e 0x04020020 0x04030021
            /* S       K          J          ;       */
            0x0404001f 0x04050025 0x04060024 0x04080027
            /* L       ENTER      Z          C       */
            0x04090026 0x040b001c 0x0501002c 0x0502002e
            /* V       X          ,          M       */
            0x0503002f 0x0504002d 0x05050033 0x05060032
            /* L_SHIFT /          .          SPACE   */
            0x0507002a 0x05080035 0x05090034 0x050B0039
            /* 1       3          4          2       */
            0x06010002 0x06020004 0x06030005 0x06040003
            /* 8       7          0          9       */
            0x06050009 0x06060008 0x0608000b 0x0609000a
            /* L_ALT   DOWN       RIGHT      Q       */
            0x060a0038 0x060b006c 0x060c006a 0x07010010
            /* E       R          W          I       */
            0x07020012 0x07030013 0x07040011 0x07050017
            /* U       R_SHIFT    P          O       */
            0x07060016 0x07070036 0x07080019 0x07090018
            /* UP      LEFT    */
            0x070b0067 0x070c0069>;
    };
