# 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. This device also supports
  switches/buttons like power and volume buttons.

properties:
  compatible:
    oneOf:
      - description: ChromeOS EC with only buttons/switches
        const: google,cros-ec-keyb-switches
      - description: ChromeOS EC with keyboard and possibly buttons/switches
        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.

dependencies:
  function-row-phsymap: [ 'linux,keymap' ]
  google,needs-ghost-filter: [ 'linux,keymap' ]

required:
  - compatible

if:
  properties:
    compatible:
      contains:
        const: google,cros-ec-keyb
then:
  $ref: "/schemas/input/matrix-keymap.yaml#"
  required:
    - keypad,num-rows
    - keypad,num-columns
    - linux,keymap

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    keyboard-controller {
        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>;
    };
  - |
    /* No matrix keyboard, just buttons/switches */
    keyboard-controller {
        compatible = "google,cros-ec-keyb-switches";
    };
...
