gpio_keys.h 952 B

12345678910111213141516171819202122232425262728293031
  1. #ifndef _GPIO_KEYS_H
  2. #define _GPIO_KEYS_H
  3. struct device;
  4. struct gpio_keys_button {
  5. /* Configuration parameters */
  6. unsigned int code; /* input event code (KEY_*, SW_*) */
  7. int gpio; /* -1 if this key does not support gpio */
  8. int active_low;
  9. const char *desc;
  10. unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */
  11. int wakeup; /* configure the button as a wake-up source */
  12. int debounce_interval; /* debounce ticks interval in msecs */
  13. bool can_disable;
  14. int value; /* axis value for EV_ABS */
  15. unsigned int irq; /* Irq number in case of interrupt keys */
  16. };
  17. struct gpio_keys_platform_data {
  18. struct gpio_keys_button *buttons;
  19. int nbuttons;
  20. unsigned int poll_interval; /* polling interval in msecs -
  21. for polling driver only */
  22. unsigned int rep:1; /* enable input subsystem auto repeat */
  23. int (*enable)(struct device *dev);
  24. void (*disable)(struct device *dev);
  25. const char *name; /* input device name */
  26. };
  27. #endif