blob: 9a2357a61fe151d064b02bf8c9a4604ace7a14de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
/*
* Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef __include_tegra_kbc_h__
#define __include_tegra_kbc_h__
#include <common.h>
enum KEYS { KEY_FN = 222, KEY_SHIFT = 223};
enum {
KBC_MAX_ROW = 16,
KBC_MAX_COL = 8,
KBC_KEY_COUNT = KBC_MAX_ROW * KBC_MAX_COL,
};
struct tegra_keyboard_config {
/* keycode tables, one for each row/col position */
int plain_keycode[KBC_KEY_COUNT]; /* when no Shift or Fn */
int shift_keycode[KBC_KEY_COUNT]; /* Shift modifier key is pressed */
int fn_keycode[KBC_KEY_COUNT]; /* Fn modifier key is pressed */
};
struct kbc_tegra {
u32 control;
u32 interrupt;
u32 row_cfg[4];
u32 col_cfg[3];
u32 timeout_cnt;
u32 init_dly;
u32 rpt_dly;
u32 kp_ent[2];
u32 row_mask[16];
};
#ifdef CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE
extern int overwrite_console(void);
#define OVERWRITE_CONSOLE overwrite_console()
#else
#define OVERWRITE_CONSOLE 0
#endif /* CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE */
extern struct tegra_keyboard_config board_keyboard_config;
#endif /* __include_tegra_kbc_h__ */
|