Documentation / devicetree / bindings / input / matrix-keymap.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/matrix-keymap.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Common Key Matrices on Matrix-connected Key Boards

maintainers:
  - Olof Johansson <olof@lixom.net>

description: |
  A simple common binding for matrix-connected key boards. Currently targeted at
  defining the keys in the scope of linux key codes since that is a stable and
  standardized interface at this time.
 
  Some users of this binding might choose to specify secondary keymaps for
  cases where there is a modifier key such as a Fn key. Proposed names
  for said properties are "linux,fn-keymap" or with another descriptive
  word for the modifier other from "Fn".

properties:
  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

  keypad,num-rows:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Number of row lines connected to the keypad controller.

  keypad,num-columns:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Number of column lines connected to the keypad controller.

additionalProperties: true

examples:
  - |
    keypad {
        /* ... */
        linux,keymap = < 0x00030012
                         0x0102003a >;
        keypad,num-rows = <2>;
        keypad,num-columns = <8>;
    };