blob: 2ae3ece8b07cb69f345739cd65372b325a7ba388 [file] [log] [blame]
Chandan Uddarajubedca152010-06-02 23:05:15 -07001/*
2 * Copyright (c) 2010, Code Aurora Forum. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 * * Redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer.
8 * * Redistributions in binary form must reproduce the above copyright
9 * notice, this list of conditions and the following disclaimer in the
10 * documentation and/or other materials provided with the distribution.
11 * * Neither the name of Code Aurora nor
12 * the names of its contributors may be used to endorse or promote
13 * products derived from this software without specific prior written
14 * permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 */
29
30#include <dev/keys.h>
31#include <dev/gpio_keypad.h>
32
33#define BITS_IN_ELEMENT(x) (sizeof(x)[0] * 8)
34
35static unsigned char qwerty_keys_old[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
36static unsigned char qwerty_keys_new[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
37
38#define KEYMAP_INDEX(row, col) (row)* BITS_IN_ELEMENT(qwerty_keys_new) + (col)
39
40static unsigned int qwerty_keymap[] = {
41 [KEYMAP_INDEX(1, 3)] = KEY_BACK, /* Volume down key */
42};
43
44static struct qwerty_keypad_info qwerty_keypad = {
45 .keymap = qwerty_keymap,
46 .old_keys = qwerty_keys_old,
47 .rec_keys = qwerty_keys_new,
48 .rows = 6,
49 .columns = 5,
50 .num_of_reads = 6,
51 .rd_func = &pa1_ssbi2_read_bytes,
52 .wr_func = &pa1_ssbi2_write_bytes,
53 .settle_time = 5 /* msec */,
54 .poll_time = 20 /* msec */,
55};
56
57void keypad_init(void)
58{
59 ssbi_keypad_init(&qwerty_keypad);
60}