mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-28 14:03:44 +00:00
6642a681e4
Add support for internal matrix keyboard controller for Nvidia Tegra platforms. This driver uses the fdt decode function to obtain its key codes. Support for the Ctrl modifier is provided. The left and right ctrl keys are dealt with in the same way. This uses the new keyboard input library (drivers/input/input.c) to decode keys and handle most of the common input logic. The new key matrix library is also used to decode (row, column) key positions into key codes. The intent is to make this driver purely about dealing with the hardware. Key detection before the driver is loaded is supported. This key will be picked up when the keyboard driver is initialized. Modified by Bernie Thompson <bhthompson@chromium.org> and Simon Glass <sjg@chromium.org> for device tree, input layer, key matrix and various other things. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Warren <twarren@nvidia.com>
33 lines
743 B
C
33 lines
743 B
C
/*
|
|
* 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>
|
|
|
|
#define KEY_IS_MODIFIER(key) ((key) >= KEY_FIRST_MODIFIER)
|
|
|
|
struct kbc_tegra {
|
|
u32 control;
|
|
u32 interrupt;
|
|
u32 row_cfg[4];
|
|
u32 col_cfg[3];
|
|
u32 timeout_dly;
|
|
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 */
|
|
|
|
#endif /* __include_tegra_kbc_h__ */
|