# 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>

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>;
    };
