/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include <boot/boot.h> #include <boot/board.h> #include <boot/gpio_keypad.h> #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) static unsigned int dream_row_gpios[] = { #if 0 // unused? 35, /* KP_MKOUT0 */ 34, /* KP_MKOUT1 */ 33, /* KP_MKOUT2 */ 32, /* KP_MKOUT3 */ 31, /* KP_MKOUT4 */ 23, /* KP_MKOUT5 */ #endif #if 1 30, /* KP_MKOUT6 */ 78, /* KP_MKOUT7 */ #endif }; static unsigned int dream_col_gpios[] = { #if 1 // main buttons 42, /* KP_MKIN0 */ 41, /* KP_MKIN1 */ 40, /* KP_MKIN2 */ 39, /* KP_MKIN3 */ #endif #if 1 // side buttons 38, /* KP_MKIN4 */ 37, /* KP_MKIN5 */ 36, /* KP_MKIN6 */ #endif }; static gpio_keypad_info dream_keypad = { .output_gpios = dream_row_gpios, .input_gpios = dream_col_gpios, .noutputs = ARRAY_SIZE(dream_row_gpios), .ninputs = ARRAY_SIZE(dream_col_gpios), .settle_time = 5000, .polarity = 0 }; static void keypad_poll() { static int skip = 0; skip++; if(skip > 10) { gpio_keypad_scan_keys(&dream_keypad); skip = 0; } } void keypad_init(void) { gpio_keypad_init(&dream_keypad); boot_register_poll_func(keypad_poll); }