1/*	$NetBSD: cros-ec-keyboard.h,v 1.1.1.1 2021/11/07 16:49:57 jmcneill Exp $	*/
2
3/* SPDX-License-Identifier: GPL-2.0 */
4/*
5 * This header provides the constants of the standard Chrome OS key matrix
6 * for cros-ec keyboard-controller bindings.
7 *
8 * Copyright (c) 2021 Google, Inc
9 */
10
11#ifndef _CROS_EC_KEYBOARD_H
12#define _CROS_EC_KEYBOARD_H
13
14#define CROS_STD_TOP_ROW_KEYMAP	\
15	MATRIX_KEY(0x00, 0x02, KEY_F1)	\
16	MATRIX_KEY(0x03, 0x02, KEY_F2)	\
17	MATRIX_KEY(0x02, 0x02, KEY_F3)	\
18	MATRIX_KEY(0x01, 0x02, KEY_F4)	\
19	MATRIX_KEY(0x03, 0x04, KEY_F5)	\
20	MATRIX_KEY(0x02, 0x04, KEY_F6)	\
21	MATRIX_KEY(0x01, 0x04, KEY_F7)	\
22	MATRIX_KEY(0x02, 0x09, KEY_F8)	\
23	MATRIX_KEY(0x01, 0x09, KEY_F9)	\
24	MATRIX_KEY(0x00, 0x04, KEY_F10)
25
26#define CROS_STD_MAIN_KEYMAP	\
27	MATRIX_KEY(0x00, 0x01, KEY_LEFTMETA)	\
28	MATRIX_KEY(0x00, 0x03, KEY_B)		\
29	MATRIX_KEY(0x00, 0x05, KEY_RO)		\
30	MATRIX_KEY(0x00, 0x06, KEY_N)		\
31	MATRIX_KEY(0x00, 0x08, KEY_EQUAL)	\
32	MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT)	\
33	MATRIX_KEY(0x01, 0x01, KEY_ESC)		\
34	MATRIX_KEY(0x01, 0x03, KEY_G)		\
35	MATRIX_KEY(0x01, 0x06, KEY_H)		\
36	MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE)	\
37	MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE)	\
38	MATRIX_KEY(0x01, 0x0c, KEY_HENKAN)	\
39						\
40	MATRIX_KEY(0x02, 0x00, KEY_LEFTCTRL)	\
41	MATRIX_KEY(0x02, 0x01, KEY_TAB)		\
42	MATRIX_KEY(0x02, 0x03, KEY_T)		\
43	MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE)	\
44	MATRIX_KEY(0x02, 0x06, KEY_Y)		\
45	MATRIX_KEY(0x02, 0x07, KEY_102ND)	\
46	MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE)	\
47	MATRIX_KEY(0x02, 0x0a, KEY_YEN)		\
48						\
49	MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA)	\
50	MATRIX_KEY(0x03, 0x01, KEY_GRAVE)	\
51	MATRIX_KEY(0x03, 0x03, KEY_5)		\
52	MATRIX_KEY(0x03, 0x06, KEY_6)		\
53	MATRIX_KEY(0x03, 0x08, KEY_MINUS)	\
54	MATRIX_KEY(0x03, 0x09, KEY_SLEEP)	\
55	MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH)	\
56	MATRIX_KEY(0x03, 0x0c, KEY_MUHENKAN)	\
57						\
58	MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL)	\
59	MATRIX_KEY(0x04, 0x01, KEY_A)		\
60	MATRIX_KEY(0x04, 0x02, KEY_D)		\
61	MATRIX_KEY(0x04, 0x03, KEY_F)		\
62	MATRIX_KEY(0x04, 0x04, KEY_S)		\
63	MATRIX_KEY(0x04, 0x05, KEY_K)		\
64	MATRIX_KEY(0x04, 0x06, KEY_J)		\
65	MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON)	\
66	MATRIX_KEY(0x04, 0x09, KEY_L)		\
67	MATRIX_KEY(0x04, 0x0a, KEY_BACKSLASH)	\
68	MATRIX_KEY(0x04, 0x0b, KEY_ENTER)	\
69						\
70	MATRIX_KEY(0x05, 0x01, KEY_Z)		\
71	MATRIX_KEY(0x05, 0x02, KEY_C)		\
72	MATRIX_KEY(0x05, 0x03, KEY_V)		\
73	MATRIX_KEY(0x05, 0x04, KEY_X)		\
74	MATRIX_KEY(0x05, 0x05, KEY_COMMA)	\
75	MATRIX_KEY(0x05, 0x06, KEY_M)		\
76	MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT)	\
77	MATRIX_KEY(0x05, 0x08, KEY_SLASH)	\
78	MATRIX_KEY(0x05, 0x09, KEY_DOT)		\
79	MATRIX_KEY(0x05, 0x0b, KEY_SPACE)	\
80						\
81	MATRIX_KEY(0x06, 0x01, KEY_1)		\
82	MATRIX_KEY(0x06, 0x02, KEY_3)		\
83	MATRIX_KEY(0x06, 0x03, KEY_4)		\
84	MATRIX_KEY(0x06, 0x04, KEY_2)		\
85	MATRIX_KEY(0x06, 0x05, KEY_8)		\
86	MATRIX_KEY(0x06, 0x06, KEY_7)		\
87	MATRIX_KEY(0x06, 0x08, KEY_0)		\
88	MATRIX_KEY(0x06, 0x09, KEY_9)		\
89	MATRIX_KEY(0x06, 0x0a, KEY_LEFTALT)	\
90	MATRIX_KEY(0x06, 0x0b, KEY_DOWN)	\
91	MATRIX_KEY(0x06, 0x0c, KEY_RIGHT)	\
92						\
93	MATRIX_KEY(0x07, 0x01, KEY_Q)		\
94	MATRIX_KEY(0x07, 0x02, KEY_E)		\
95	MATRIX_KEY(0x07, 0x03, KEY_R)		\
96	MATRIX_KEY(0x07, 0x04, KEY_W)		\
97	MATRIX_KEY(0x07, 0x05, KEY_I)		\
98	MATRIX_KEY(0x07, 0x06, KEY_U)		\
99	MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT)	\
100	MATRIX_KEY(0x07, 0x08, KEY_P)		\
101	MATRIX_KEY(0x07, 0x09, KEY_O)		\
102	MATRIX_KEY(0x07, 0x0b, KEY_UP)		\
103	MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
104
105#endif /* _CROS_EC_KEYBOARD_H */
106