diff options
| author | Linus Walleij <linus.walleij@linaro.org> | 2014-07-24 14:08:55 -0400 |
|---|---|---|
| committer | Linus Walleij <linus.walleij@linaro.org> | 2014-07-28 06:23:35 -0400 |
| commit | 0a6d315827eedc733d404ecff3cd4cc0e6437865 (patch) | |
| tree | de3b6538e200030ad2a3f7553e7e78f2112f652d /include/linux/gpio | |
| parent | c7caf86823c71fae652cc50c7d8dd0d2b5c41229 (diff) | |
gpio: split gpiod board registration into machine header
As per example from the regulator subsystem: put all defines and
functions related to registering board info for GPIO descriptors
into a separate <linux/gpio/machine.h> header.
Cc: Andrew Victor <linux@maxim.org.za>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Reviewed-by: Alexandre Courbot <gnurou@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'include/linux/gpio')
| -rw-r--r-- | include/linux/gpio/driver.h | 54 | ||||
| -rw-r--r-- | include/linux/gpio/machine.h | 58 |
2 files changed, 58 insertions, 54 deletions
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index 4c463fb0155e..e78a2373e374 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h | |||
| @@ -151,60 +151,6 @@ void gpio_unlock_as_irq(struct gpio_chip *chip, unsigned int offset); | |||
| 151 | 151 | ||
| 152 | struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc); | 152 | struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc); |
| 153 | 153 | ||
| 154 | enum gpio_lookup_flags { | ||
| 155 | GPIO_ACTIVE_HIGH = (0 << 0), | ||
| 156 | GPIO_ACTIVE_LOW = (1 << 0), | ||
| 157 | GPIO_OPEN_DRAIN = (1 << 1), | ||
| 158 | GPIO_OPEN_SOURCE = (1 << 2), | ||
| 159 | }; | ||
| 160 | |||
| 161 | /** | ||
| 162 | * struct gpiod_lookup - lookup table | ||
| 163 | * @chip_label: name of the chip the GPIO belongs to | ||
| 164 | * @chip_hwnum: hardware number (i.e. relative to the chip) of the GPIO | ||
| 165 | * @con_id: name of the GPIO from the device's point of view | ||
| 166 | * @idx: index of the GPIO in case several GPIOs share the same name | ||
| 167 | * @flags: mask of GPIO_* values | ||
| 168 | * | ||
| 169 | * gpiod_lookup is a lookup table for associating GPIOs to specific devices and | ||
| 170 | * functions using platform data. | ||
| 171 | */ | ||
| 172 | struct gpiod_lookup { | ||
| 173 | const char *chip_label; | ||
| 174 | u16 chip_hwnum; | ||
| 175 | const char *con_id; | ||
| 176 | unsigned int idx; | ||
| 177 | enum gpio_lookup_flags flags; | ||
| 178 | }; | ||
| 179 | |||
| 180 | struct gpiod_lookup_table { | ||
| 181 | struct list_head list; | ||
| 182 | const char *dev_id; | ||
| 183 | struct gpiod_lookup table[]; | ||
| 184 | }; | ||
| 185 | |||
| 186 | /* | ||
| 187 | * Simple definition of a single GPIO under a con_id | ||
| 188 | */ | ||
| 189 | #define GPIO_LOOKUP(_chip_label, _chip_hwnum, _con_id, _flags) \ | ||
| 190 | GPIO_LOOKUP_IDX(_chip_label, _chip_hwnum, _con_id, 0, _flags) | ||
| 191 | |||
| 192 | /* | ||
| 193 | * Use this macro if you need to have several GPIOs under the same con_id. | ||
| 194 | * Each GPIO needs to use a different index and can be accessed using | ||
| 195 | * gpiod_get_index() | ||
| 196 | */ | ||
| 197 | #define GPIO_LOOKUP_IDX(_chip_label, _chip_hwnum, _con_id, _idx, _flags) \ | ||
| 198 | { \ | ||
| 199 | .chip_label = _chip_label, \ | ||
| 200 | .chip_hwnum = _chip_hwnum, \ | ||
| 201 | .con_id = _con_id, \ | ||
| 202 | .idx = _idx, \ | ||
| 203 | .flags = _flags, \ | ||
| 204 | } | ||
| 205 | |||
| 206 | void gpiod_add_lookup_table(struct gpiod_lookup_table *table); | ||
| 207 | |||
| 208 | #ifdef CONFIG_GPIOLIB_IRQCHIP | 154 | #ifdef CONFIG_GPIOLIB_IRQCHIP |
| 209 | 155 | ||
| 210 | void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip, | 156 | void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip, |
diff --git a/include/linux/gpio/machine.h b/include/linux/gpio/machine.h new file mode 100644 index 000000000000..b8ad87fab4ce --- /dev/null +++ b/include/linux/gpio/machine.h | |||
| @@ -0,0 +1,58 @@ | |||
| 1 | #ifndef __LINUX_GPIO_MACHINE_H | ||
| 2 | #define __LINUX_GPIO_MACHINE_H | ||
| 3 | |||
| 4 | enum gpio_lookup_flags { | ||
| 5 | GPIO_ACTIVE_HIGH = (0 << 0), | ||
| 6 | GPIO_ACTIVE_LOW = (1 << 0), | ||
| 7 | GPIO_OPEN_DRAIN = (1 << 1), | ||
| 8 | GPIO_OPEN_SOURCE = (1 << 2), | ||
| 9 | }; | ||
| 10 | |||
| 11 | /** | ||
| 12 | * struct gpiod_lookup - lookup table | ||
| 13 | * @chip_label: name of the chip the GPIO belongs to | ||
| 14 | * @chip_hwnum: hardware number (i.e. relative to the chip) of the GPIO | ||
| 15 | * @con_id: name of the GPIO from the device's point of view | ||
| 16 | * @idx: index of the GPIO in case several GPIOs share the same name | ||
| 17 | * @flags: mask of GPIO_* values | ||
| 18 | * | ||
| 19 | * gpiod_lookup is a lookup table for associating GPIOs to specific devices and | ||
| 20 | * functions using platform data. | ||
| 21 | */ | ||
| 22 | struct gpiod_lookup { | ||
| 23 | const char *chip_label; | ||
| 24 | u16 chip_hwnum; | ||
| 25 | const char *con_id; | ||
| 26 | unsigned int idx; | ||
| 27 | enum gpio_lookup_flags flags; | ||
| 28 | }; | ||
| 29 | |||
| 30 | struct gpiod_lookup_table { | ||
| 31 | struct list_head list; | ||
| 32 | const char *dev_id; | ||
| 33 | struct gpiod_lookup table[]; | ||
| 34 | }; | ||
| 35 | |||
| 36 | /* | ||
| 37 | * Simple definition of a single GPIO under a con_id | ||
| 38 | */ | ||
| 39 | #define GPIO_LOOKUP(_chip_label, _chip_hwnum, _con_id, _flags) \ | ||
| 40 | GPIO_LOOKUP_IDX(_chip_label, _chip_hwnum, _con_id, 0, _flags) | ||
| 41 | |||
| 42 | /* | ||
| 43 | * Use this macro if you need to have several GPIOs under the same con_id. | ||
| 44 | * Each GPIO needs to use a different index and can be accessed using | ||
| 45 | * gpiod_get_index() | ||
| 46 | */ | ||
| 47 | #define GPIO_LOOKUP_IDX(_chip_label, _chip_hwnum, _con_id, _idx, _flags) \ | ||
| 48 | { \ | ||
| 49 | .chip_label = _chip_label, \ | ||
| 50 | .chip_hwnum = _chip_hwnum, \ | ||
| 51 | .con_id = _con_id, \ | ||
| 52 | .idx = _idx, \ | ||
| 53 | .flags = _flags, \ | ||
| 54 | } | ||
| 55 | |||
| 56 | void gpiod_add_lookup_table(struct gpiod_lookup_table *table); | ||
| 57 | |||
| 58 | #endif /* __LINUX_GPIO_MACHINE_H */ | ||
