1223328Sgavin// SPDX-License-Identifier: GPL-2.0-only
2223328Sgavin/*
379971Sobrien * Keyboard dts fragment for devices that use cros-ec-keyboard
4223328Sgavin *
5223328Sgavin * Copyright (c) 2014 Google, Inc
6223328Sgavin *
7223328Sgavin * This file is taken from Linux
8223328Sgavin * arch/arm/boot/dts/cros-ec-keyboard.dtsi.
9223328Sgavin *
1079971Sobrien * A duplicate KEY_BACKSLASH key had to be removed.
11223328Sgavin */
12223328Sgavin
13223328Sgavin#include <dt-bindings/input/input.h>
14223328Sgavin
15223328Sgavin&cros_ec {
16223328Sgavin	keyboard-controller {
17223328Sgavin		compatible = "google,cros-ec-keyb";
18223328Sgavin		keypad,num-rows = <8>;
19223328Sgavin		keypad,num-columns = <13>;
20223328Sgavin		google,needs-ghost-filter;
21223328Sgavin
22223328Sgavin		linux,keymap = <
23223328Sgavin			MATRIX_KEY(0x00, 0x01, KEY_LEFTMETA)
24223328Sgavin			MATRIX_KEY(0x00, 0x02, KEY_F1)
25223328Sgavin			MATRIX_KEY(0x00, 0x03, KEY_B)
26223328Sgavin			MATRIX_KEY(0x00, 0x04, KEY_F10)
27223328Sgavin			MATRIX_KEY(0x00, 0x05, KEY_RO)
28223328Sgavin			MATRIX_KEY(0x00, 0x06, KEY_N)
29223328Sgavin			MATRIX_KEY(0x00, 0x08, KEY_EQUAL)
30223328Sgavin			MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT)
31223328Sgavin
32223328Sgavin			MATRIX_KEY(0x01, 0x01, KEY_ESC)
33223328Sgavin			MATRIX_KEY(0x01, 0x02, KEY_F4)
34223328Sgavin			MATRIX_KEY(0x01, 0x03, KEY_G)
35223328Sgavin			MATRIX_KEY(0x01, 0x04, KEY_F7)
36223328Sgavin			MATRIX_KEY(0x01, 0x06, KEY_H)
37223328Sgavin			MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE)
38223328Sgavin			MATRIX_KEY(0x01, 0x09, KEY_F9)
39223328Sgavin			MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE)
40223328Sgavin			MATRIX_KEY(0x01, 0x0c, KEY_HENKAN)
41223328Sgavin
42223328Sgavin			MATRIX_KEY(0x02, 0x00, KEY_LEFTCTRL)
43223328Sgavin			MATRIX_KEY(0x02, 0x01, KEY_TAB)
44223328Sgavin			MATRIX_KEY(0x02, 0x02, KEY_F3)
45223328Sgavin			MATRIX_KEY(0x02, 0x03, KEY_T)
46223328Sgavin			MATRIX_KEY(0x02, 0x04, KEY_F6)
47223328Sgavin			MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE)
48223328Sgavin			MATRIX_KEY(0x02, 0x06, KEY_Y)
49223328Sgavin			MATRIX_KEY(0x02, 0x07, KEY_102ND)
50223328Sgavin			MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE)
51223328Sgavin			MATRIX_KEY(0x02, 0x09, KEY_F8)
52223328Sgavin			MATRIX_KEY(0x02, 0x0a, KEY_YEN)
53223328Sgavin
54223328Sgavin			MATRIX_KEY(0x03, 0x01, KEY_GRAVE)
55223328Sgavin			MATRIX_KEY(0x03, 0x02, KEY_F2)
56223328Sgavin			MATRIX_KEY(0x03, 0x03, KEY_5)
57223328Sgavin			MATRIX_KEY(0x03, 0x04, KEY_F5)
58223328Sgavin			MATRIX_KEY(0x03, 0x06, KEY_6)
59223328Sgavin			MATRIX_KEY(0x03, 0x08, KEY_MINUS)
60223328Sgavin			MATRIX_KEY(0x03, 0x09, KEY_F13)
61223328Sgavin			MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH)
62223328Sgavin			MATRIX_KEY(0x03, 0x0c, KEY_MUHENKAN)
63223328Sgavin
64223328Sgavin			MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL)
65223328Sgavin			MATRIX_KEY(0x04, 0x01, KEY_A)
66223328Sgavin			MATRIX_KEY(0x04, 0x02, KEY_D)
67223328Sgavin			MATRIX_KEY(0x04, 0x03, KEY_F)
68223328Sgavin			MATRIX_KEY(0x04, 0x04, KEY_S)
69223328Sgavin			MATRIX_KEY(0x04, 0x05, KEY_K)
70223328Sgavin			MATRIX_KEY(0x04, 0x06, KEY_J)
71223328Sgavin			MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON)
72223328Sgavin			MATRIX_KEY(0x04, 0x09, KEY_L)
73223328Sgavin			/*
74223328Sgavin			 * Do not map any key twice
75223328Sgavin			 * MATRIX_KEY(0x04, 0x0a, KEY_BACKSLASH)
76223328Sgavin			 */
77223328Sgavin			MATRIX_KEY(0x04, 0x0b, KEY_ENTER)
78223328Sgavin
79223328Sgavin			MATRIX_KEY(0x05, 0x01, KEY_Z)
80223328Sgavin			MATRIX_KEY(0x05, 0x02, KEY_C)
81223328Sgavin			MATRIX_KEY(0x05, 0x03, KEY_V)
82223328Sgavin			MATRIX_KEY(0x05, 0x04, KEY_X)
83223328Sgavin			MATRIX_KEY(0x05, 0x05, KEY_COMMA)
84223328Sgavin			MATRIX_KEY(0x05, 0x06, KEY_M)
85223328Sgavin			MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT)
86223328Sgavin			MATRIX_KEY(0x05, 0x08, KEY_SLASH)
87223328Sgavin			MATRIX_KEY(0x05, 0x09, KEY_DOT)
88223328Sgavin			MATRIX_KEY(0x05, 0x0b, KEY_SPACE)
89223328Sgavin
90223328Sgavin			MATRIX_KEY(0x06, 0x01, KEY_1)
91223328Sgavin			MATRIX_KEY(0x06, 0x02, KEY_3)
92223328Sgavin			MATRIX_KEY(0x06, 0x03, KEY_4)
93223328Sgavin			MATRIX_KEY(0x06, 0x04, KEY_2)
94223328Sgavin			MATRIX_KEY(0x06, 0x05, KEY_8)
95223328Sgavin			MATRIX_KEY(0x06, 0x06, KEY_7)
96223328Sgavin			MATRIX_KEY(0x06, 0x08, KEY_0)
97223328Sgavin			MATRIX_KEY(0x06, 0x09, KEY_9)
98223328Sgavin			MATRIX_KEY(0x06, 0x0a, KEY_LEFTALT)
99223328Sgavin			MATRIX_KEY(0x06, 0x0b, KEY_DOWN)
100223328Sgavin			MATRIX_KEY(0x06, 0x0c, KEY_RIGHT)
101223328Sgavin
102223328Sgavin			MATRIX_KEY(0x07, 0x01, KEY_Q)
103223328Sgavin			MATRIX_KEY(0x07, 0x02, KEY_E)
104223328Sgavin			MATRIX_KEY(0x07, 0x03, KEY_R)
105223328Sgavin			MATRIX_KEY(0x07, 0x04, KEY_W)
106223328Sgavin			MATRIX_KEY(0x07, 0x05, KEY_I)
107223328Sgavin			MATRIX_KEY(0x07, 0x06, KEY_U)
108223328Sgavin			MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT)
109223328Sgavin			MATRIX_KEY(0x07, 0x08, KEY_P)
110223328Sgavin			MATRIX_KEY(0x07, 0x09, KEY_O)
111223328Sgavin			MATRIX_KEY(0x07, 0x0b, KEY_UP)
112223328Sgavin			MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
113223328Sgavin		>;
114223328Sgavin	};
115223328Sgavin};
116223328Sgavin