struct gpio_keys_button_data {
int last_state;
int count;
int threshold;
int can_sleep;
};
這一段是定義了一個button_data的一個結構體。包含四種數據。poll的意思就是輪詢。
struct gpio_keys_polled_dev {
struct input_polled_dev *poll_dev;
struct device *dev;
struct gpio_keys_platform_data *pdata;
struct gpio_keys_button_data data[0];
};
定義一個結構體其中input_polled_dev 是一個結構體。如下
struct input_polled_dev {
void * private;
void (* open) (struct input_polled_dev *dev);
void (* close) (struct input_polled_dev *dev);
void (* poll) (struct input_polled_dev *dev);
unsigned int poll_interval;
unsigned int poll_interval_max;
unsigned int poll_interval_min;
struct input_dev * input;
};
定義了這個是私有驅動。三個函數:打開,關閉和輪詢。下面三個是相應的參數,有最大最小的輪詢間隔。