diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-14 17:05:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-14 17:05:05 -0500 |
commit | 980f3c344ff1cb4a8be9a169c6bde2dc74ca6288 (patch) | |
tree | f7b22006dec2cebed697b0a2c6701ca16c58c7a2 /drivers/pinctrl | |
parent | 7d22286ff757586f3cdbd70ded88b98250285ec5 (diff) | |
parent | 170680abd1eb98a9773ed068435fef9a6402a10f (diff) |
Merge tag 'gpio-v3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio
Pull take two of the GPIO updates:
"Same stuff as last time, now with a fixup patch for the previous
compile error plus I ran a few extra rounds of compile-testing.
This is the bulk of GPIO changes for the v3.19 series:
- A new API that allows setting more than one GPIO at the time. This
is implemented for the new descriptor-based API only and makes it
possible to e.g. toggle a clock and data line at the same time, if
the hardware can do this with a single register write. Both
consumers and drivers need new calls, and the core will fall back
to driving individual lines where needed. Implemented for the
MPC8xxx driver initially
- Patched the mdio-mux-gpio and the serial mctrl driver that drives
modems to use the new multiple-setting API to set several signals
simultaneously
- Get rid of the global GPIO descriptor array, and instead allocate
descriptors dynamically for each GPIO on a certain GPIO chip. This
moves us closer to getting rid of the limitation of using the
global, static GPIO numberspace
- New driver and device tree bindings for 74xx ICs
- New driver and device tree bindings for the VF610 Vybrid
- Support the RCAR r8a7793 and r8a7794
- Guidelines for GPIO device tree bindings trying to get things a bit
more strict with the advent of combined device properties
- Suspend/resume support for the MVEBU driver
- A slew of minor fixes and improvements"
* tag 'gpio-v3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (33 commits)
gpio: mcp23s08: fix up compilation error
gpio: pl061: document gpio-ranges property for bindings file
gpio: pl061: hook request if gpio-ranges avaiable
gpio: mcp23s08: Add option to configure IRQ output polarity as active high
gpio: fix deferred probe detection for legacy API
serial: mctrl_gpio: use gpiod_set_array function
mdio-mux-gpio: Use GPIO descriptor interface and new gpiod_set_array function
gpio: remove const modifier from gpiod_get_direction()
gpio: remove gpio_descs global array
gpio: mxs: implement get_direction callback
gpio: em: Use dynamic allocation of GPIOs
gpio: Check if base is positive before calling gpio_is_valid()
gpio: mcp23s08: Add simple IRQ support for SPI devices
gpio: mcp23s08: request a shared interrupt
gpio: mcp23s08: Do not free unrequested interrupt
gpio: rcar: Add r8a7793 and r8a7794 support
gpio-mpc8xxx: add mpc8xxx_gpio_set_multiple function
gpiolib: allow simultaneous setting of multiple GPIO outputs
gpio: mvebu: add suspend/resume support
gpio: gpio-davinci: remove duplicate check on resource
..
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/pinctrl-at91.c | 4 | ||||
-rw-r--r-- | drivers/pinctrl/samsung/pinctrl-exynos.c | 4 | ||||
-rw-r--r-- | drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c index 66db9849aca8..2867730100e4 100644 --- a/drivers/pinctrl/pinctrl-at91.c +++ b/drivers/pinctrl/pinctrl-at91.c | |||
@@ -1471,7 +1471,7 @@ static unsigned int gpio_irq_startup(struct irq_data *d) | |||
1471 | unsigned pin = d->hwirq; | 1471 | unsigned pin = d->hwirq; |
1472 | int ret; | 1472 | int ret; |
1473 | 1473 | ||
1474 | ret = gpio_lock_as_irq(&at91_gpio->chip, pin); | 1474 | ret = gpiochip_lock_as_irq(&at91_gpio->chip, pin); |
1475 | if (ret) { | 1475 | if (ret) { |
1476 | dev_err(at91_gpio->chip.dev, "unable to lock pind %lu IRQ\n", | 1476 | dev_err(at91_gpio->chip.dev, "unable to lock pind %lu IRQ\n", |
1477 | d->hwirq); | 1477 | d->hwirq); |
@@ -1487,7 +1487,7 @@ static void gpio_irq_shutdown(struct irq_data *d) | |||
1487 | unsigned pin = d->hwirq; | 1487 | unsigned pin = d->hwirq; |
1488 | 1488 | ||
1489 | gpio_irq_mask(d); | 1489 | gpio_irq_mask(d); |
1490 | gpio_unlock_as_irq(&at91_gpio->chip, pin); | 1490 | gpiochip_unlock_as_irq(&at91_gpio->chip, pin); |
1491 | } | 1491 | } |
1492 | 1492 | ||
1493 | #ifdef CONFIG_PM | 1493 | #ifdef CONFIG_PM |
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index d5d4cfc55873..becb3792977b 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c | |||
@@ -174,7 +174,7 @@ static int exynos_irq_request_resources(struct irq_data *irqd) | |||
174 | unsigned int con; | 174 | unsigned int con; |
175 | int ret; | 175 | int ret; |
176 | 176 | ||
177 | ret = gpio_lock_as_irq(&bank->gpio_chip, irqd->hwirq); | 177 | ret = gpiochip_lock_as_irq(&bank->gpio_chip, irqd->hwirq); |
178 | if (ret) { | 178 | if (ret) { |
179 | dev_err(bank->gpio_chip.dev, "unable to lock pin %s-%lu IRQ\n", | 179 | dev_err(bank->gpio_chip.dev, "unable to lock pin %s-%lu IRQ\n", |
180 | bank->name, irqd->hwirq); | 180 | bank->name, irqd->hwirq); |
@@ -227,7 +227,7 @@ static void exynos_irq_release_resources(struct irq_data *irqd) | |||
227 | 227 | ||
228 | spin_unlock_irqrestore(&bank->slock, flags); | 228 | spin_unlock_irqrestore(&bank->slock, flags); |
229 | 229 | ||
230 | gpio_unlock_as_irq(&bank->gpio_chip, irqd->hwirq); | 230 | gpiochip_unlock_as_irq(&bank->gpio_chip, irqd->hwirq); |
231 | } | 231 | } |
232 | 232 | ||
233 | /* | 233 | /* |
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c index ef9d804e55de..3d0744337736 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c | |||
@@ -553,7 +553,7 @@ static int sunxi_pinctrl_irq_request_resources(struct irq_data *d) | |||
553 | if (!func) | 553 | if (!func) |
554 | return -EINVAL; | 554 | return -EINVAL; |
555 | 555 | ||
556 | ret = gpio_lock_as_irq(pctl->chip, | 556 | ret = gpiochip_lock_as_irq(pctl->chip, |
557 | pctl->irq_array[d->hwirq] - pctl->desc->pin_base); | 557 | pctl->irq_array[d->hwirq] - pctl->desc->pin_base); |
558 | if (ret) { | 558 | if (ret) { |
559 | dev_err(pctl->dev, "unable to lock HW IRQ %lu for IRQ\n", | 559 | dev_err(pctl->dev, "unable to lock HW IRQ %lu for IRQ\n", |
@@ -571,8 +571,8 @@ static void sunxi_pinctrl_irq_release_resources(struct irq_data *d) | |||
571 | { | 571 | { |
572 | struct sunxi_pinctrl *pctl = irq_data_get_irq_chip_data(d); | 572 | struct sunxi_pinctrl *pctl = irq_data_get_irq_chip_data(d); |
573 | 573 | ||
574 | gpio_unlock_as_irq(pctl->chip, | 574 | gpiochip_unlock_as_irq(pctl->chip, |
575 | pctl->irq_array[d->hwirq] - pctl->desc->pin_base); | 575 | pctl->irq_array[d->hwirq] - pctl->desc->pin_base); |
576 | } | 576 | } |
577 | 577 | ||
578 | static int sunxi_pinctrl_irq_set_type(struct irq_data *d, unsigned int type) | 578 | static int sunxi_pinctrl_irq_set_type(struct irq_data *d, unsigned int type) |