linux/arch/arm/mach-pxa/include/mach/pxa27x_keypad.h
<<
>>
Prefs
   1#ifndef __ASM_ARCH_PXA27x_KEYPAD_H
   2#define __ASM_ARCH_PXA27x_KEYPAD_H
   3
   4#include <linux/input.h>
   5#include <linux/input/matrix_keypad.h>
   6
   7#define MAX_MATRIX_KEY_ROWS     (8)
   8#define MAX_MATRIX_KEY_COLS     (8)
   9#define MATRIX_ROW_SHIFT        (3)
  10#define MAX_DIRECT_KEY_NUM      (8)
  11
  12/* pxa3xx keypad platform specific parameters
  13 *
  14 * NOTE:
  15 * 1. direct_key_num indicates the number of keys in the direct keypad
  16 *    _plus_ the number of rotary-encoder sensor inputs,  this can be
  17 *    left as 0 if only rotary encoders are enabled,  the driver will
  18 *    automatically calculate this
  19 *
  20 * 2. direct_key_map is the key code map for the direct keys, if rotary
  21 *    encoder(s) are enabled, direct key 0/1(2/3) will be ignored
  22 *
  23 * 3. rotary can be either interpreted as a relative input event (e.g.
  24 *    REL_WHEEL/REL_HWHEEL) or specific keys (e.g. UP/DOWN/LEFT/RIGHT)
  25 *
  26 * 4. matrix key and direct key will use the same debounce_interval by
  27 *    default, which should be sufficient in most cases
  28 */
  29struct pxa27x_keypad_platform_data {
  30
  31        /* code map for the matrix keys */
  32        unsigned int    matrix_key_rows;
  33        unsigned int    matrix_key_cols;
  34        unsigned int    *matrix_key_map;
  35        int             matrix_key_map_size;
  36
  37        /* direct keys */
  38        int             direct_key_num;
  39        unsigned int    direct_key_map[MAX_DIRECT_KEY_NUM];
  40
  41        /* rotary encoders 0 */
  42        int             enable_rotary0;
  43        int             rotary0_rel_code;
  44        int             rotary0_up_key;
  45        int             rotary0_down_key;
  46
  47        /* rotary encoders 1 */
  48        int             enable_rotary1;
  49        int             rotary1_rel_code;
  50        int             rotary1_up_key;
  51        int             rotary1_down_key;
  52
  53        /* key debounce interval */
  54        unsigned int    debounce_interval;
  55};
  56
  57extern void pxa_set_keypad_info(struct pxa27x_keypad_platform_data *info);
  58
  59#endif /* __ASM_ARCH_PXA27x_KEYPAD_H */
  60