linux/include/linux/input/ad714x.h
<<
>>
Prefs
   1/*
   2 * include/linux/input/ad714x.h
   3 *
   4 * AD714x is very flexible, it can be used as buttons, scrollwheel,
   5 * slider, touchpad at the same time. That depends on the boards.
   6 * The platform_data for the device's "struct device" holds this
   7 * information.
   8 *
   9 * Copyright 2009-2011 Analog Devices Inc.
  10 *
  11 * Licensed under the GPL-2 or later.
  12 */
  13
  14#ifndef __LINUX_INPUT_AD714X_H__
  15#define __LINUX_INPUT_AD714X_H__
  16
  17#define STAGE_NUM              12
  18#define STAGE_CFGREG_NUM       8
  19#define SYS_CFGREG_NUM         8
  20
  21/* board information which need be initialized in arch/mach... */
  22struct ad714x_slider_plat {
  23        int start_stage;
  24        int end_stage;
  25        int max_coord;
  26};
  27
  28struct ad714x_wheel_plat {
  29        int start_stage;
  30        int end_stage;
  31        int max_coord;
  32};
  33
  34struct ad714x_touchpad_plat {
  35        int x_start_stage;
  36        int x_end_stage;
  37        int x_max_coord;
  38
  39        int y_start_stage;
  40        int y_end_stage;
  41        int y_max_coord;
  42};
  43
  44struct ad714x_button_plat {
  45        int keycode;
  46        unsigned short l_mask;
  47        unsigned short h_mask;
  48};
  49
  50struct ad714x_platform_data {
  51        int slider_num;
  52        int wheel_num;
  53        int touchpad_num;
  54        int button_num;
  55        struct ad714x_slider_plat *slider;
  56        struct ad714x_wheel_plat *wheel;
  57        struct ad714x_touchpad_plat *touchpad;
  58        struct ad714x_button_plat *button;
  59        unsigned short stage_cfg_reg[STAGE_NUM][STAGE_CFGREG_NUM];
  60        unsigned short sys_cfg_reg[SYS_CFGREG_NUM];
  61        unsigned long irqflags;
  62};
  63
  64#endif
  65