matrix-keymap.yaml 1.5 KB

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