#ifndef _GPIO_KEYS_H#define _GPIO_KEYS_Hstructdevice;structgpio_keys_button{/* Configuration parameters */unsignedintcode;/* input event code (KEY_*, SW_*) */intgpio;/* -1 if this key does not support gpio */intactive_low;constchar*desc;unsignedinttype;/* input event type (EV_KEY, EV_SW, EV_ABS) */intwakeup;/* configure the button as a wake-up source */intdebounce_interval;/* debounce ticks interval in msecs */boolcan_disable;intvalue;/* axis value for EV_ABS */unsignedintirq;/* Irq number in case of interrupt keys */};structgpio_keys_platform_data{structgpio_keys_button*buttons;intnbuttons;unsignedintpoll_interval;/* polling interval in msecs - for polling driver only */unsignedintrep:1;/* enable input subsystem auto repeat */int(*enable)(structdevice*dev);void(*disable)(structdevice*dev);constchar*name;/* input device name */};#endif