chrome_kb.h revision 263936
1263936Sbr/*-
2263936Sbr * Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com>
3263936Sbr * All rights reserved.
4263936Sbr *
5263936Sbr * Redistribution and use in source and binary forms, with or without
6263936Sbr * modification, are permitted provided that the following conditions
7263936Sbr * are met:
8263936Sbr * 1. Redistributions of source code must retain the above copyright
9263936Sbr *    notice, this list of conditions and the following disclaimer.
10263936Sbr * 2. Redistributions in binary form must reproduce the above copyright
11263936Sbr *    notice, this list of conditions and the following disclaimer in the
12263936Sbr *    documentation and/or other materials provided with the distribution.
13263936Sbr *
14263936Sbr * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15263936Sbr * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16263936Sbr * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17263936Sbr * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18263936Sbr * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19263936Sbr * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20263936Sbr * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21263936Sbr * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22263936Sbr * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23263936Sbr * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24263936Sbr * SUCH DAMAGE.
25263936Sbr *
26263936Sbr * $FreeBSD: head/sys/arm/samsung/exynos/chrome_kb.h 263936 2014-03-30 15:22:36Z br $
27263936Sbr */
28263936Sbr
29263936Sbrvoid ckb_ec_intr(void *);
30263936Sbr
31263936Sbrstruct key {
32263936Sbr	uint8_t row;
33263936Sbr	uint8_t col;
34263936Sbr	uint8_t key;
35263936Sbr};
36263936Sbr
37263936Sbr#define	KEYMAP_LEN	75
38263936Sbr
39263936Sbrstruct key keymap[KEYMAP_LEN] = {
40263936Sbr	{ 0x00, 0x01, 0x7d }, /* lmeta */
41263936Sbr	{ 0x00, 0x02, 0x3b }, /* F1 */
42263936Sbr	{ 0x00, 0x03, 0x30 }, /* B */
43263936Sbr	{ 0x00, 0x04, 0x44 }, /* F10 */
44263936Sbr	{ 0x00, 0x06, 0x31 }, /* N */
45263936Sbr	{ 0x00, 0x08, 0x0d }, /* = */
46263936Sbr	{ 0x00, 0x0a, 0x64 }, /* ralt */
47263936Sbr
48263936Sbr	{ 0x01, 0x01, 0x01 }, /* escape */
49263936Sbr	{ 0x01, 0x02, 0x3e }, /* F4 */
50263936Sbr	{ 0x01, 0x03, 0x22 }, /* G */
51263936Sbr	{ 0x01, 0x04, 0x41 }, /* F7 */
52263936Sbr	{ 0x01, 0x06, 0x23 }, /* H */
53263936Sbr	{ 0x01, 0x08, 0x28 }, /* ' */
54263936Sbr	{ 0x01, 0x09, 0x43 }, /* F9 */
55263936Sbr	{ 0x01, 0x0b, 0x0e }, /* backspace */
56263936Sbr
57263936Sbr	{ 0x02, 0x00, 0x1d }, /* lctrl */
58263936Sbr	{ 0x02, 0x01, 0x0f }, /* tab */
59263936Sbr	{ 0x02, 0x02, 0x3d }, /* F3 */
60263936Sbr	{ 0x02, 0x03, 0x14 }, /* t */
61263936Sbr	{ 0x02, 0x04, 0x40 }, /* F6 */
62263936Sbr	{ 0x02, 0x05, 0x1b }, /* ] */
63263936Sbr	{ 0x02, 0x06, 0x15 }, /* y */
64263936Sbr	{ 0x02, 0x07, 0x56 }, /* 102nd */
65263936Sbr	{ 0x02, 0x08, 0x1a }, /* [ */
66263936Sbr	{ 0x02, 0x09, 0x42 }, /* F8 */
67263936Sbr
68263936Sbr	{ 0x03, 0x01, 0x29 }, /* grave */
69263936Sbr	{ 0x03, 0x02, 0x3c }, /* F2 */
70263936Sbr	{ 0x03, 0x03, 0x06 }, /* 5 */
71263936Sbr	{ 0x03, 0x04, 0x3f }, /* F5 */
72263936Sbr	{ 0x03, 0x06, 0x07 }, /* 6 */
73263936Sbr	{ 0x03, 0x08, 0x0c }, /* - */
74263936Sbr	{ 0x03, 0x0b, 0x2b }, /* \ */
75263936Sbr
76263936Sbr	{ 0x04, 0x00, 0x61 }, /* rctrl */
77263936Sbr	{ 0x04, 0x01, 0x1e }, /* a */
78263936Sbr	{ 0x04, 0x02, 0x20 }, /* d */
79263936Sbr	{ 0x04, 0x03, 0x21 }, /* f */
80263936Sbr	{ 0x04, 0x04, 0x1f }, /* s */
81263936Sbr	{ 0x04, 0x05, 0x25 }, /* k */
82263936Sbr	{ 0x04, 0x06, 0x24 }, /* j */
83263936Sbr	{ 0x04, 0x08, 0x27 }, /* ; */
84263936Sbr	{ 0x04, 0x09, 0x26 }, /* l */
85263936Sbr	{ 0x04, 0x0a, 0x2b }, /* \ */
86263936Sbr	{ 0x04, 0x0b, 0x1c }, /* enter */
87263936Sbr
88263936Sbr	{ 0x05, 0x01, 0x2c }, /* z */
89263936Sbr	{ 0x05, 0x02, 0x2e }, /* c */
90263936Sbr	{ 0x05, 0x03, 0x2f }, /* v */
91263936Sbr	{ 0x05, 0x04, 0x2d }, /* x */
92263936Sbr	{ 0x05, 0x05, 0x33 }, /* , */
93263936Sbr	{ 0x05, 0x06, 0x32 }, /* m */
94263936Sbr	{ 0x05, 0x07, 0x2a }, /* lsh */
95263936Sbr	{ 0x05, 0x08, 0x35 }, /* / */
96263936Sbr	{ 0x05, 0x09, 0x34 }, /* . */
97263936Sbr	{ 0x05, 0x0B, 0x39 }, /* space */
98263936Sbr
99263936Sbr	{ 0x06, 0x01, 0x02 }, /* 1 */
100263936Sbr	{ 0x06, 0x02, 0x04 }, /* 3 */
101263936Sbr	{ 0x06, 0x03, 0x05 }, /* 4 */
102263936Sbr	{ 0x06, 0x04, 0x03 }, /* 2 */
103263936Sbr	{ 0x06, 0x05, 0x09 }, /* 8 */
104263936Sbr	{ 0x06, 0x06, 0x08 }, /* 7 */
105263936Sbr	{ 0x06, 0x08, 0x0b }, /* 0 */
106263936Sbr	{ 0x06, 0x09, 0x0a }, /* 9 */
107263936Sbr	{ 0x06, 0x0a, 0x38 }, /* lalt */
108263936Sbr	{ 0x06, 0x0b, 0x64 }, /* down */
109263936Sbr	{ 0x06, 0x0c, 0x62 }, /* right */
110263936Sbr
111263936Sbr	{ 0x07, 0x01, 0x10 }, /* q */
112263936Sbr	{ 0x07, 0x02, 0x12 }, /* e */
113263936Sbr	{ 0x07, 0x03, 0x13 }, /* r */
114263936Sbr	{ 0x07, 0x04, 0x11 }, /* w */
115263936Sbr	{ 0x07, 0x05, 0x17 }, /* i */
116263936Sbr	{ 0x07, 0x06, 0x16 }, /* u */
117263936Sbr	{ 0x07, 0x07, 0x36 }, /* rsh */
118263936Sbr	{ 0x07, 0x08, 0x19 }, /* p */
119263936Sbr	{ 0x07, 0x09, 0x18 }, /* o */
120263936Sbr	{ 0x07, 0x0b, 0x5F }, /* up */
121263936Sbr	{ 0x07, 0x0c, 0x61 }, /* left */
122263936Sbr};
123