xref: /openbmc/linux/Documentation/devicetree/bindings/input/matrix-keymap.yaml (revision 639d6eda3b8036f9a8f9c9ac0d00405878aadda6)
1*639d6edaSAnson Huang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*639d6edaSAnson Huang%YAML 1.2
3*639d6edaSAnson Huang---
4*639d6edaSAnson Huang$id: http://devicetree.org/schemas/input/matrix-keymap.yaml#
5*639d6edaSAnson Huang$schema: http://devicetree.org/meta-schemas/core.yaml#
6*639d6edaSAnson Huang
7*639d6edaSAnson Huangtitle: Common key matrices binding for matrix-connected key boards
8*639d6edaSAnson Huang
9*639d6edaSAnson Huangmaintainers:
10*639d6edaSAnson Huang  - Olof Johansson <olof@lixom.net>
11*639d6edaSAnson Huang
12*639d6edaSAnson Huangdescription: |
13*639d6edaSAnson Huang  A simple common binding for matrix-connected key boards. Currently targeted at
14*639d6edaSAnson Huang  defining the keys in the scope of linux key codes since that is a stable and
15*639d6edaSAnson Huang  standardized interface at this time.
16*639d6edaSAnson Huang
17*639d6edaSAnson Huang  Some users of this binding might choose to specify secondary keymaps for
18*639d6edaSAnson Huang  cases where there is a modifier key such as a Fn key. Proposed names
19*639d6edaSAnson Huang  for said properties are "linux,fn-keymap" or with another descriptive
20*639d6edaSAnson Huang  word for the modifier other from "Fn".
21*639d6edaSAnson Huang
22*639d6edaSAnson Huangproperties:
23*639d6edaSAnson Huang  linux,keymap:
24*639d6edaSAnson Huang    $ref: '/schemas/types.yaml#/definitions/uint32-array'
25*639d6edaSAnson Huang    description: |
26*639d6edaSAnson Huang      An array of packed 1-cell entries containing the equivalent of row,
27*639d6edaSAnson Huang      column and linux key-code. The 32-bit big endian cell is packed as:
28*639d6edaSAnson Huang          row << 24 | column << 16 | key-code
29*639d6edaSAnson Huang
30*639d6edaSAnson Huang  keypad,num-rows:
31*639d6edaSAnson Huang    $ref: /schemas/types.yaml#/definitions/uint32
32*639d6edaSAnson Huang    description: Number of row lines connected to the keypad controller.
33*639d6edaSAnson Huang
34*639d6edaSAnson Huang  keypad,num-columns:
35*639d6edaSAnson Huang    $ref: /schemas/types.yaml#/definitions/uint32
36*639d6edaSAnson Huang    description: Number of column lines connected to the keypad controller.
37*639d6edaSAnson Huang
38*639d6edaSAnson Huangexamples:
39*639d6edaSAnson Huang  - |
40*639d6edaSAnson Huang    keypad {
41*639d6edaSAnson Huang        /* ... */
42*639d6edaSAnson Huang        linux,keymap = < 0x00030012
43*639d6edaSAnson Huang                         0x0102003a >;
44*639d6edaSAnson Huang        keypad,num-rows = <2>;
45*639d6edaSAnson Huang        keypad,num-columns = <8>;
46*639d6edaSAnson Huang    };
47