This one adds support of a combined irq source for the whole matrix keypad. This can be useful if all rows and columns of the keypad are e.g. connected to a GPIO expander, which only has one interrupt line for all events on every single GPIO.
Showing the changes to include/linux/input (1 of 2 files). Show all
Unified · Split
| @@ -41,6 +41,9 @@ struct matrix_keymap_data { · 40 unmodified lines | ||
| 41 | 41 | * @col_scan_delay_us: delay, measured in microseconds, that is |
| 42 | 42 | * needed before we can keypad after activating column gpio |
| 43 | 43 | * @debounce_ms: debounce interval in milliseconds |
| 44 | + * @clustered_irq: may be specified if interrupts of all row/column GPIOs | |
| 45 | + * are bundled to one single irq | |
| 46 | + * @clustered_irq_flags: flags that are needed for the clustered irq | |
| 44 | 47 | * @active_low: gpio polarity |
| 45 | 48 | * @wakeup: controls whether the device should be set up as wakeup |
| 46 | 49 | * source |
| @@ -63,6 +66,9 @@ struct matrix_keypad_platform_data { · 16 unmodified lines | ||
| 63 | 66 | /* key debounce interval in milli-second */ |
| 64 | 67 | unsigned int debounce_ms; |
| 65 | 68 | |
| 69 | + unsigned int clustered_irq; | |
| 70 | + unsigned int clustered_irq_flags; | |
| 71 | + | |
| 66 | 72 | bool active_low; |
| 67 | 73 | bool wakeup; |
| 68 | 74 | bool no_autorepeat; |