1/* Copyright (c) 2011, Code Aurora Forum. All rights reserved. 2 * 3 * This program is free software; you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License version 2 and 5 * only version 2 as published by the Free Software Foundation. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 */ 12 13#ifndef __PMIC8XXX_KEYPAD_H__ 14#define __PMIC8XXX_KEYPAD_H__ 15 16#include <linux/input/matrix_keypad.h> 17 18#define PM8XXX_KEYPAD_DEV_NAME "pm8xxx-keypad" 19 20/** 21 * struct pm8xxx_keypad_platform_data - platform data for keypad 22 * @keymap_data - matrix keymap data 23 * @input_name - input device name 24 * @input_phys_device - input device name 25 * @num_cols - number of columns of keypad 26 * @num_rows - number of row of keypad 27 * @debounce_ms - debounce period in milliseconds 28 * @scan_delay_ms - scan delay in milliseconds 29 * @row_hold_ns - row hold period in nanoseconds 30 * @wakeup - configure keypad as wakeup 31 * @rep - enable or disable key repeat bit 32 */ 33struct pm8xxx_keypad_platform_data { 34 const struct matrix_keymap_data *keymap_data; 35 36 const char *input_name; 37 const char *input_phys_device; 38 39 unsigned int num_cols; 40 unsigned int num_rows; 41 unsigned int rows_gpio_start; 42 unsigned int cols_gpio_start; 43 44 unsigned int debounce_ms; 45 unsigned int scan_delay_ms; 46 unsigned int row_hold_ns; 47 48 bool wakeup; 49 bool rep; 50}; 51 52#endif /*__PMIC8XXX_KEYPAD_H__ */ 53