diff options
| author | Linus Walleij <linus.walleij@linaro.org> | 2016-09-16 07:48:12 -0400 |
|---|---|---|
| committer | Linus Walleij <linus.walleij@linaro.org> | 2016-09-28 12:28:34 -0400 |
| commit | 3c6e8d05d60d8106b5cdc730cf220b2a4b521b66 (patch) | |
| tree | cbad9c3802c81e7c7c8ad829eda925c58a53c3bb /include/linux/mfd | |
| parent | 29b4817d4018df78086157ea3a55c1d9424a7cfc (diff) | |
mfd/gpio: Move HTC GPIO driver to GPIO subsystem
The HTC GPIO driver is a pure GPIO driver and I just can not
see what it is doing inside MFD. Let's just move it to GPIO
and take this opportunity to move the platform data to
<linux/platform_data/gpio-htc-egpio.h>
Cc: arm@kernel.org
Cc: Russell King <linux@armlinux.org.uk>
Acked-by: Lee Jones <lee.jones@linaro.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include/linux/mfd')
| -rw-r--r-- | include/linux/mfd/htc-egpio.h | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/include/linux/mfd/htc-egpio.h b/include/linux/mfd/htc-egpio.h deleted file mode 100644 index b4201c971367..000000000000 --- a/include/linux/mfd/htc-egpio.h +++ /dev/null | |||
| @@ -1,57 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * HTC simple EGPIO irq and gpio extender | ||
| 3 | */ | ||
| 4 | |||
| 5 | #ifndef __HTC_EGPIO_H__ | ||
| 6 | #define __HTC_EGPIO_H__ | ||
| 7 | |||
| 8 | #include <linux/gpio.h> | ||
| 9 | |||
| 10 | /* Descriptive values for all-in or all-out htc_egpio_chip descriptors. */ | ||
| 11 | #define HTC_EGPIO_OUTPUT (~0) | ||
| 12 | #define HTC_EGPIO_INPUT 0 | ||
| 13 | |||
| 14 | /** | ||
| 15 | * struct htc_egpio_chip - descriptor to create gpio_chip for register range | ||
| 16 | * @reg_start: index of first register | ||
| 17 | * @gpio_base: gpio number of first pin in this register range | ||
| 18 | * @num_gpios: number of gpios in this register range, max BITS_PER_LONG | ||
| 19 | * (number of registers = DIV_ROUND_UP(num_gpios, reg_width)) | ||
| 20 | * @direction: bitfield, '0' = input, '1' = output, | ||
| 21 | */ | ||
| 22 | struct htc_egpio_chip { | ||
| 23 | int reg_start; | ||
| 24 | int gpio_base; | ||
| 25 | int num_gpios; | ||
| 26 | unsigned long direction; | ||
| 27 | unsigned long initial_values; | ||
| 28 | }; | ||
| 29 | |||
| 30 | /** | ||
| 31 | * struct htc_egpio_platform_data - description provided by the arch | ||
| 32 | * @irq_base: beginning of available IRQs (eg, IRQ_BOARD_START) | ||
| 33 | * @num_irqs: number of irqs | ||
| 34 | * @reg_width: number of bits per register, either 8 or 16 bit | ||
| 35 | * @bus_width: alignment of the registers, either 16 or 32 bit | ||
| 36 | * @invert_acks: set if chip requires writing '0' to ack an irq, instead of '1' | ||
| 37 | * @ack_register: location of the irq/ack register | ||
| 38 | * @chip: pointer to array of htc_egpio_chip descriptors | ||
| 39 | * @num_chips: number of egpio chip descriptors | ||
| 40 | */ | ||
| 41 | struct htc_egpio_platform_data { | ||
| 42 | int bus_width; | ||
| 43 | int reg_width; | ||
| 44 | |||
| 45 | int irq_base; | ||
| 46 | int num_irqs; | ||
| 47 | int invert_acks; | ||
| 48 | int ack_register; | ||
| 49 | |||
| 50 | struct htc_egpio_chip *chip; | ||
| 51 | int num_chips; | ||
| 52 | }; | ||
| 53 | |||
| 54 | /* Determine the wakeup irq, to be called during early resume */ | ||
| 55 | extern int htc_egpio_get_wakeup_irq(struct device *dev); | ||
| 56 | |||
| 57 | #endif | ||
