cros-ec-keyboard.h 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * This header provides the constants of the standard Chrome OS key matrix
  4. * for cros-ec keyboard-controller bindings.
  5. *
  6. * Copyright (c) 2021 Google, Inc
  7. */
  8. #ifndef _CROS_EC_KEYBOARD_H
  9. #define _CROS_EC_KEYBOARD_H
  10. #define CROS_STD_TOP_ROW_KEYMAP \
  11. MATRIX_KEY(0x00, 0x02, KEY_F1) \
  12. MATRIX_KEY(0x03, 0x02, KEY_F2) \
  13. MATRIX_KEY(0x02, 0x02, KEY_F3) \
  14. MATRIX_KEY(0x01, 0x02, KEY_F4) \
  15. MATRIX_KEY(0x03, 0x04, KEY_F5) \
  16. MATRIX_KEY(0x02, 0x04, KEY_F6) \
  17. MATRIX_KEY(0x01, 0x04, KEY_F7) \
  18. MATRIX_KEY(0x02, 0x09, KEY_F8) \
  19. MATRIX_KEY(0x01, 0x09, KEY_F9) \
  20. MATRIX_KEY(0x00, 0x04, KEY_F10)
  21. #define CROS_STD_MAIN_KEYMAP \
  22. MATRIX_KEY(0x00, 0x01, KEY_LEFTMETA) \
  23. MATRIX_KEY(0x00, 0x03, KEY_B) \
  24. MATRIX_KEY(0x00, 0x05, KEY_RO) \
  25. MATRIX_KEY(0x00, 0x06, KEY_N) \
  26. MATRIX_KEY(0x00, 0x08, KEY_EQUAL) \
  27. MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT) \
  28. MATRIX_KEY(0x01, 0x01, KEY_ESC) \
  29. MATRIX_KEY(0x01, 0x03, KEY_G) \
  30. MATRIX_KEY(0x01, 0x06, KEY_H) \
  31. MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE) \
  32. MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE) \
  33. MATRIX_KEY(0x01, 0x0c, KEY_HENKAN) \
  34. \
  35. MATRIX_KEY(0x02, 0x00, KEY_LEFTCTRL) \
  36. MATRIX_KEY(0x02, 0x01, KEY_TAB) \
  37. MATRIX_KEY(0x02, 0x03, KEY_T) \
  38. MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE) \
  39. MATRIX_KEY(0x02, 0x06, KEY_Y) \
  40. MATRIX_KEY(0x02, 0x07, KEY_102ND) \
  41. MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE) \
  42. MATRIX_KEY(0x02, 0x0a, KEY_YEN) \
  43. \
  44. MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA) \
  45. MATRIX_KEY(0x03, 0x01, KEY_GRAVE) \
  46. MATRIX_KEY(0x03, 0x03, KEY_5) \
  47. MATRIX_KEY(0x03, 0x06, KEY_6) \
  48. MATRIX_KEY(0x03, 0x08, KEY_MINUS) \
  49. MATRIX_KEY(0x03, 0x09, KEY_SLEEP) \
  50. MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH) \
  51. MATRIX_KEY(0x03, 0x0c, KEY_MUHENKAN) \
  52. \
  53. MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL) \
  54. MATRIX_KEY(0x04, 0x01, KEY_A) \
  55. MATRIX_KEY(0x04, 0x02, KEY_D) \
  56. MATRIX_KEY(0x04, 0x03, KEY_F) \
  57. MATRIX_KEY(0x04, 0x04, KEY_S) \
  58. MATRIX_KEY(0x04, 0x05, KEY_K) \
  59. MATRIX_KEY(0x04, 0x06, KEY_J) \
  60. MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON) \
  61. MATRIX_KEY(0x04, 0x09, KEY_L) \
  62. MATRIX_KEY(0x04, 0x0a, KEY_BACKSLASH) \
  63. MATRIX_KEY(0x04, 0x0b, KEY_ENTER) \
  64. \
  65. MATRIX_KEY(0x05, 0x01, KEY_Z) \
  66. MATRIX_KEY(0x05, 0x02, KEY_C) \
  67. MATRIX_KEY(0x05, 0x03, KEY_V) \
  68. MATRIX_KEY(0x05, 0x04, KEY_X) \
  69. MATRIX_KEY(0x05, 0x05, KEY_COMMA) \
  70. MATRIX_KEY(0x05, 0x06, KEY_M) \
  71. MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT) \
  72. MATRIX_KEY(0x05, 0x08, KEY_SLASH) \
  73. MATRIX_KEY(0x05, 0x09, KEY_DOT) \
  74. MATRIX_KEY(0x05, 0x0b, KEY_SPACE) \
  75. \
  76. MATRIX_KEY(0x06, 0x01, KEY_1) \
  77. MATRIX_KEY(0x06, 0x02, KEY_3) \
  78. MATRIX_KEY(0x06, 0x03, KEY_4) \
  79. MATRIX_KEY(0x06, 0x04, KEY_2) \
  80. MATRIX_KEY(0x06, 0x05, KEY_8) \
  81. MATRIX_KEY(0x06, 0x06, KEY_7) \
  82. MATRIX_KEY(0x06, 0x08, KEY_0) \
  83. MATRIX_KEY(0x06, 0x09, KEY_9) \
  84. MATRIX_KEY(0x06, 0x0a, KEY_LEFTALT) \
  85. MATRIX_KEY(0x06, 0x0b, KEY_DOWN) \
  86. MATRIX_KEY(0x06, 0x0c, KEY_RIGHT) \
  87. \
  88. MATRIX_KEY(0x07, 0x01, KEY_Q) \
  89. MATRIX_KEY(0x07, 0x02, KEY_E) \
  90. MATRIX_KEY(0x07, 0x03, KEY_R) \
  91. MATRIX_KEY(0x07, 0x04, KEY_W) \
  92. MATRIX_KEY(0x07, 0x05, KEY_I) \
  93. MATRIX_KEY(0x07, 0x06, KEY_U) \
  94. MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT) \
  95. MATRIX_KEY(0x07, 0x08, KEY_P) \
  96. MATRIX_KEY(0x07, 0x09, KEY_O) \
  97. MATRIX_KEY(0x07, 0x0b, KEY_UP) \
  98. MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
  99. /* No numpad */
  100. #define CROS_TOP_ROW_KEYMAP_V30 \
  101. MATRIX_KEY(0x00, 0x01, KEY_F11) /* T11 */ \
  102. MATRIX_KEY(0x00, 0x02, KEY_F1) /* T1 */ \
  103. MATRIX_KEY(0x00, 0x04, KEY_F10) /* T10 */ \
  104. MATRIX_KEY(0x00, 0x0b, KEY_F14) /* T14 */ \
  105. MATRIX_KEY(0x00, 0x0c, KEY_F15) /* T15 */ \
  106. MATRIX_KEY(0x01, 0x02, KEY_F4) /* T4 */ \
  107. MATRIX_KEY(0x01, 0x04, KEY_F7) /* T7 */ \
  108. MATRIX_KEY(0x01, 0x05, KEY_F12) /* T12 */ \
  109. MATRIX_KEY(0x01, 0x09, KEY_F9) /* T9 */ \
  110. MATRIX_KEY(0x02, 0x02, KEY_F3) /* T3 */ \
  111. MATRIX_KEY(0x02, 0x04, KEY_F6) /* T6 */ \
  112. MATRIX_KEY(0x02, 0x0b, KEY_F8) /* T8 */ \
  113. MATRIX_KEY(0x03, 0x02, KEY_F2) /* T2 */ \
  114. MATRIX_KEY(0x03, 0x05, KEY_F13) /* T13 */ \
  115. MATRIX_KEY(0x04, 0x04, KEY_F5) /* T5 */
  116. #define CROS_MAIN_KEYMAP_V30 /* Keycode */ \
  117. MATRIX_KEY(0x00, 0x03, KEY_B) /* 50 */ \
  118. MATRIX_KEY(0x00, 0x05, KEY_N) /* 51 */ \
  119. MATRIX_KEY(0x00, 0x06, KEY_RO) /* 56 (JIS) */ \
  120. MATRIX_KEY(0x00, 0x08, KEY_EQUAL) /* 13 */ \
  121. MATRIX_KEY(0x00, 0x09, KEY_HOME) /* 80 (Numpad) */ \
  122. MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT) /* 62 */ \
  123. MATRIX_KEY(0x00, 0x10, KEY_FN) /* 127 */ \
  124. \
  125. MATRIX_KEY(0x01, 0x01, KEY_ESC) /* 110 */ \
  126. MATRIX_KEY(0x01, 0x03, KEY_G) /* 35 */ \
  127. MATRIX_KEY(0x01, 0x06, KEY_H) /* 36 */ \
  128. MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE) /* 41 */ \
  129. MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE) /* 15 */ \
  130. MATRIX_KEY(0x01, 0x0c, KEY_HENKAN) /* 65 (JIS) */ \
  131. MATRIX_KEY(0x01, 0x0e, KEY_LEFTCTRL) /* 58 */ \
  132. \
  133. MATRIX_KEY(0x02, 0x01, KEY_TAB) /* 16 */ \
  134. MATRIX_KEY(0x02, 0x03, KEY_T) /* 21 */ \
  135. MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE) /* 28 */ \
  136. MATRIX_KEY(0x02, 0x06, KEY_Y) /* 22 */ \
  137. MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE) /* 27 */ \
  138. MATRIX_KEY(0x02, 0x09, KEY_DELETE) /* 76 (Numpad) */ \
  139. MATRIX_KEY(0x02, 0x0c, KEY_PAGEUP) /* 85 (Numpad) */ \
  140. MATRIX_KEY(0x02, 0x011, KEY_YEN) /* 14 (JIS) */ \
  141. \
  142. MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA) /* Launcher */ \
  143. MATRIX_KEY(0x03, 0x01, KEY_GRAVE) /* 1 */ \
  144. MATRIX_KEY(0x03, 0x03, KEY_5) /* 6 */ \
  145. MATRIX_KEY(0x03, 0x04, KEY_S) /* 32 */ \
  146. MATRIX_KEY(0x03, 0x06, KEY_MINUS) /* 12 */ \
  147. MATRIX_KEY(0x03, 0x08, KEY_6) /* 7 */ \
  148. MATRIX_KEY(0x03, 0x09, KEY_SLEEP) /* Lock */ \
  149. MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH) /* 29 */ \
  150. MATRIX_KEY(0x03, 0x0c, KEY_MUHENKAN) /* 63 (JIS) */ \
  151. MATRIX_KEY(0x03, 0x0e, KEY_RIGHTCTRL) /* 64 */ \
  152. \
  153. MATRIX_KEY(0x04, 0x01, KEY_A) /* 31 */ \
  154. MATRIX_KEY(0x04, 0x02, KEY_D) /* 33 */ \
  155. MATRIX_KEY(0x04, 0x03, KEY_F) /* 34 */ \
  156. MATRIX_KEY(0x04, 0x05, KEY_K) /* 38 */ \
  157. MATRIX_KEY(0x04, 0x06, KEY_J) /* 37 */ \
  158. MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON) /* 40 */ \
  159. MATRIX_KEY(0x04, 0x09, KEY_L) /* 39 */ \
  160. MATRIX_KEY(0x04, 0x0b, KEY_ENTER) /* 43 */ \
  161. MATRIX_KEY(0x04, 0x0c, KEY_END) /* 81 (Numpad) */ \
  162. \
  163. MATRIX_KEY(0x05, 0x01, KEY_1) /* 2 */ \
  164. MATRIX_KEY(0x05, 0x02, KEY_COMMA) /* 53 */ \
  165. MATRIX_KEY(0x05, 0x03, KEY_DOT) /* 54 */ \
  166. MATRIX_KEY(0x05, 0x04, KEY_SLASH) /* 55 */ \
  167. MATRIX_KEY(0x05, 0x05, KEY_C) /* 48 */ \
  168. MATRIX_KEY(0x05, 0x06, KEY_SPACE) /* 61 */ \
  169. MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT) /* 44 */ \
  170. MATRIX_KEY(0x05, 0x08, KEY_X) /* 47 */ \
  171. MATRIX_KEY(0x05, 0x09, KEY_V) /* 49 */ \
  172. MATRIX_KEY(0x05, 0x0b, KEY_M) /* 52 */ \
  173. MATRIX_KEY(0x05, 0x0c, KEY_PAGEDOWN) /* 86 (Numpad) */ \
  174. \
  175. MATRIX_KEY(0x06, 0x01, KEY_Z) /* 46 */ \
  176. MATRIX_KEY(0x06, 0x02, KEY_3) /* 4 */ \
  177. MATRIX_KEY(0x06, 0x03, KEY_4) /* 5 */ \
  178. MATRIX_KEY(0x06, 0x04, KEY_2) /* 3 */ \
  179. MATRIX_KEY(0x06, 0x05, KEY_8) /* 9 */ \
  180. MATRIX_KEY(0x06, 0x06, KEY_0) /* 11 */ \
  181. MATRIX_KEY(0x06, 0x08, KEY_7) /* 8 */ \
  182. MATRIX_KEY(0x06, 0x09, KEY_9) /* 10 */ \
  183. MATRIX_KEY(0x06, 0x0b, KEY_DOWN) /* 84 */ \
  184. MATRIX_KEY(0x06, 0x0c, KEY_RIGHT) /* 89 */ \
  185. MATRIX_KEY(0x06, 0x0d, KEY_LEFTALT) /* 60 */ \
  186. MATRIX_KEY(0x06, 0x0f, KEY_ASSISTANT) /* 128 */ \
  187. MATRIX_KEY(0x06, 0x11, KEY_BACKSLASH) /* 42 (JIS, ISO) */ \
  188. \
  189. MATRIX_KEY(0x07, 0x01, KEY_U) /* 23 */ \
  190. MATRIX_KEY(0x07, 0x02, KEY_I) /* 24 */ \
  191. MATRIX_KEY(0x07, 0x03, KEY_O) /* 25 */ \
  192. MATRIX_KEY(0x07, 0x04, KEY_P) /* 26 */ \
  193. MATRIX_KEY(0x07, 0x05, KEY_Q) /* 17 */ \
  194. MATRIX_KEY(0x07, 0x06, KEY_W) /* 18 */ \
  195. MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT) /* 57 */ \
  196. MATRIX_KEY(0x07, 0x08, KEY_E) /* 19 */ \
  197. MATRIX_KEY(0x07, 0x09, KEY_R) /* 20 */ \
  198. MATRIX_KEY(0x07, 0x0b, KEY_UP) /* 83 */ \
  199. MATRIX_KEY(0x07, 0x0c, KEY_LEFT) /* 79 */ \
  200. MATRIX_KEY(0x07, 0x11, KEY_102ND) /* 45 (ISO) */
  201. #endif /* _CROS_EC_KEYBOARD_H */