aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-14 17:05:05 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-14 17:05:05 -0500
commit980f3c344ff1cb4a8be9a169c6bde2dc74ca6288 (patch)
treef7b22006dec2cebed697b0a2c6701ca16c58c7a2 /drivers/pinctrl
parent7d22286ff757586f3cdbd70ded88b98250285ec5 (diff)
parent170680abd1eb98a9773ed068435fef9a6402a10f (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.c4
-rw-r--r--drivers/pinctrl/samsung/pinctrl-exynos.c4
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sunxi.c6
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
578static int sunxi_pinctrl_irq_set_type(struct irq_data *d, unsigned int type) 578static int sunxi_pinctrl_irq_set_type(struct irq_data *d, unsigned int type)