diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2016-09-23 08:57:16 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-09-23 08:57:16 -0400 |
commit | 0565f49cfe937640c2347f6d7f40ad2f4e4f088b (patch) | |
tree | 6067447df39c37946bc2de3ee004f45957bf123e /drivers/pinctrl | |
parent | ccf1e9e1c0072088420aad42797986d6e74366b5 (diff) | |
parent | 9395452b4aab7bc2475ef8935b4a4fb99d778d70 (diff) |
Merge tag 'v4.8-rc6' into devel
Linux 4.8-rc6
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r-- | drivers/pinctrl/intel/pinctrl-cherryview.c | 5 | ||||
-rw-r--r-- | drivers/pinctrl/intel/pinctrl-merrifield.c | 1 | ||||
-rw-r--r-- | drivers/pinctrl/meson/pinctrl-meson.c | 8 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-amd.c | 20 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-pistachio.c | 21 | ||||
-rw-r--r-- | drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c | 4 | ||||
-rw-r--r-- | drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c | 4 |
7 files changed, 15 insertions, 48 deletions
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c index 5749a4eee746..0fe8fad25e4d 100644 --- a/drivers/pinctrl/intel/pinctrl-cherryview.c +++ b/drivers/pinctrl/intel/pinctrl-cherryview.c | |||
@@ -1539,12 +1539,11 @@ static int chv_gpio_probe(struct chv_pinctrl *pctrl, int irq) | |||
1539 | offset += range->npins; | 1539 | offset += range->npins; |
1540 | } | 1540 | } |
1541 | 1541 | ||
1542 | /* Mask and clear all interrupts */ | 1542 | /* Clear all interrupts */ |
1543 | chv_writel(0, pctrl->regs + CHV_INTMASK); | ||
1544 | chv_writel(0xffff, pctrl->regs + CHV_INTSTAT); | 1543 | chv_writel(0xffff, pctrl->regs + CHV_INTSTAT); |
1545 | 1544 | ||
1546 | ret = gpiochip_irqchip_add(chip, &chv_gpio_irqchip, 0, | 1545 | ret = gpiochip_irqchip_add(chip, &chv_gpio_irqchip, 0, |
1547 | handle_simple_irq, IRQ_TYPE_NONE); | 1546 | handle_bad_irq, IRQ_TYPE_NONE); |
1548 | if (ret) { | 1547 | if (ret) { |
1549 | dev_err(pctrl->dev, "failed to add IRQ chip\n"); | 1548 | dev_err(pctrl->dev, "failed to add IRQ chip\n"); |
1550 | goto fail; | 1549 | goto fail; |
diff --git a/drivers/pinctrl/intel/pinctrl-merrifield.c b/drivers/pinctrl/intel/pinctrl-merrifield.c index eb4990ff26ca..7fb765642ee7 100644 --- a/drivers/pinctrl/intel/pinctrl-merrifield.c +++ b/drivers/pinctrl/intel/pinctrl-merrifield.c | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | #include <linux/bitops.h> | 12 | #include <linux/bitops.h> |
13 | #include <linux/err.h> | 13 | #include <linux/err.h> |
14 | #include <linux/io.h> | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
16 | #include <linux/pinctrl/pinconf.h> | 17 | #include <linux/pinctrl/pinconf.h> |
diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c index 9678599cc774..57122eda155a 100644 --- a/drivers/pinctrl/meson/pinctrl-meson.c +++ b/drivers/pinctrl/meson/pinctrl-meson.c | |||
@@ -679,13 +679,7 @@ static int meson_pinctrl_probe(struct platform_device *pdev) | |||
679 | return PTR_ERR(pc->pcdev); | 679 | return PTR_ERR(pc->pcdev); |
680 | } | 680 | } |
681 | 681 | ||
682 | ret = meson_gpiolib_register(pc); | 682 | return meson_gpiolib_register(pc); |
683 | if (ret) { | ||
684 | pinctrl_unregister(pc->pcdev); | ||
685 | return ret; | ||
686 | } | ||
687 | |||
688 | return 0; | ||
689 | } | 683 | } |
690 | 684 | ||
691 | static struct platform_driver meson_pinctrl_driver = { | 685 | static struct platform_driver meson_pinctrl_driver = { |
diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index be8ae98871f5..aea310a91821 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c | |||
@@ -43,17 +43,6 @@ static int amd_gpio_direction_input(struct gpio_chip *gc, unsigned offset) | |||
43 | 43 | ||
44 | spin_lock_irqsave(&gpio_dev->lock, flags); | 44 | spin_lock_irqsave(&gpio_dev->lock, flags); |
45 | pin_reg = readl(gpio_dev->base + offset * 4); | 45 | pin_reg = readl(gpio_dev->base + offset * 4); |
46 | /* | ||
47 | * Suppose BIOS or Bootloader sets specific debounce for the | ||
48 | * GPIO. if not, set debounce to be 2.75ms and remove glitch. | ||
49 | */ | ||
50 | if ((pin_reg & DB_TMR_OUT_MASK) == 0) { | ||
51 | pin_reg |= 0xf; | ||
52 | pin_reg |= BIT(DB_TMR_OUT_UNIT_OFF); | ||
53 | pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF; | ||
54 | pin_reg &= ~BIT(DB_TMR_LARGE_OFF); | ||
55 | } | ||
56 | |||
57 | pin_reg &= ~BIT(OUTPUT_ENABLE_OFF); | 46 | pin_reg &= ~BIT(OUTPUT_ENABLE_OFF); |
58 | writel(pin_reg, gpio_dev->base + offset * 4); | 47 | writel(pin_reg, gpio_dev->base + offset * 4); |
59 | spin_unlock_irqrestore(&gpio_dev->lock, flags); | 48 | spin_unlock_irqrestore(&gpio_dev->lock, flags); |
@@ -326,15 +315,6 @@ static void amd_gpio_irq_enable(struct irq_data *d) | |||
326 | 315 | ||
327 | spin_lock_irqsave(&gpio_dev->lock, flags); | 316 | spin_lock_irqsave(&gpio_dev->lock, flags); |
328 | pin_reg = readl(gpio_dev->base + (d->hwirq)*4); | 317 | pin_reg = readl(gpio_dev->base + (d->hwirq)*4); |
329 | /* | ||
330 | Suppose BIOS or Bootloader sets specific debounce for the | ||
331 | GPIO. if not, set debounce to be 2.75ms. | ||
332 | */ | ||
333 | if ((pin_reg & DB_TMR_OUT_MASK) == 0) { | ||
334 | pin_reg |= 0xf; | ||
335 | pin_reg |= BIT(DB_TMR_OUT_UNIT_OFF); | ||
336 | pin_reg &= ~BIT(DB_TMR_LARGE_OFF); | ||
337 | } | ||
338 | pin_reg |= BIT(INTERRUPT_ENABLE_OFF); | 318 | pin_reg |= BIT(INTERRUPT_ENABLE_OFF); |
339 | pin_reg |= BIT(INTERRUPT_MASK_OFF); | 319 | pin_reg |= BIT(INTERRUPT_MASK_OFF); |
340 | writel(pin_reg, gpio_dev->base + (d->hwirq)*4); | 320 | writel(pin_reg, gpio_dev->base + (d->hwirq)*4); |
diff --git a/drivers/pinctrl/pinctrl-pistachio.c b/drivers/pinctrl/pinctrl-pistachio.c index c6d410ef8de0..55375b1b3cc8 100644 --- a/drivers/pinctrl/pinctrl-pistachio.c +++ b/drivers/pinctrl/pinctrl-pistachio.c | |||
@@ -809,17 +809,17 @@ static const struct pistachio_pin_group pistachio_groups[] = { | |||
809 | PADS_FUNCTION_SELECT2, 12, 0x3), | 809 | PADS_FUNCTION_SELECT2, 12, 0x3), |
810 | MFIO_MUX_PIN_GROUP(83, MIPS_PLL_LOCK, MIPS_TRACE_DATA, USB_DEBUG, | 810 | MFIO_MUX_PIN_GROUP(83, MIPS_PLL_LOCK, MIPS_TRACE_DATA, USB_DEBUG, |
811 | PADS_FUNCTION_SELECT2, 14, 0x3), | 811 | PADS_FUNCTION_SELECT2, 14, 0x3), |
812 | MFIO_MUX_PIN_GROUP(84, SYS_PLL_LOCK, MIPS_TRACE_DATA, USB_DEBUG, | 812 | MFIO_MUX_PIN_GROUP(84, AUDIO_PLL_LOCK, MIPS_TRACE_DATA, USB_DEBUG, |
813 | PADS_FUNCTION_SELECT2, 16, 0x3), | 813 | PADS_FUNCTION_SELECT2, 16, 0x3), |
814 | MFIO_MUX_PIN_GROUP(85, WIFI_PLL_LOCK, MIPS_TRACE_DATA, SDHOST_DEBUG, | 814 | MFIO_MUX_PIN_GROUP(85, RPU_V_PLL_LOCK, MIPS_TRACE_DATA, SDHOST_DEBUG, |
815 | PADS_FUNCTION_SELECT2, 18, 0x3), | 815 | PADS_FUNCTION_SELECT2, 18, 0x3), |
816 | MFIO_MUX_PIN_GROUP(86, BT_PLL_LOCK, MIPS_TRACE_DATA, SDHOST_DEBUG, | 816 | MFIO_MUX_PIN_GROUP(86, RPU_L_PLL_LOCK, MIPS_TRACE_DATA, SDHOST_DEBUG, |
817 | PADS_FUNCTION_SELECT2, 20, 0x3), | 817 | PADS_FUNCTION_SELECT2, 20, 0x3), |
818 | MFIO_MUX_PIN_GROUP(87, RPU_V_PLL_LOCK, DREQ2, SOCIF_DEBUG, | 818 | MFIO_MUX_PIN_GROUP(87, SYS_PLL_LOCK, DREQ2, SOCIF_DEBUG, |
819 | PADS_FUNCTION_SELECT2, 22, 0x3), | 819 | PADS_FUNCTION_SELECT2, 22, 0x3), |
820 | MFIO_MUX_PIN_GROUP(88, RPU_L_PLL_LOCK, DREQ3, SOCIF_DEBUG, | 820 | MFIO_MUX_PIN_GROUP(88, WIFI_PLL_LOCK, DREQ3, SOCIF_DEBUG, |
821 | PADS_FUNCTION_SELECT2, 24, 0x3), | 821 | PADS_FUNCTION_SELECT2, 24, 0x3), |
822 | MFIO_MUX_PIN_GROUP(89, AUDIO_PLL_LOCK, DREQ4, DREQ5, | 822 | MFIO_MUX_PIN_GROUP(89, BT_PLL_LOCK, DREQ4, DREQ5, |
823 | PADS_FUNCTION_SELECT2, 26, 0x3), | 823 | PADS_FUNCTION_SELECT2, 26, 0x3), |
824 | PIN_GROUP(TCK, "tck"), | 824 | PIN_GROUP(TCK, "tck"), |
825 | PIN_GROUP(TRSTN, "trstn"), | 825 | PIN_GROUP(TRSTN, "trstn"), |
@@ -1432,7 +1432,6 @@ static int pistachio_pinctrl_probe(struct platform_device *pdev) | |||
1432 | { | 1432 | { |
1433 | struct pistachio_pinctrl *pctl; | 1433 | struct pistachio_pinctrl *pctl; |
1434 | struct resource *res; | 1434 | struct resource *res; |
1435 | int ret; | ||
1436 | 1435 | ||
1437 | pctl = devm_kzalloc(&pdev->dev, sizeof(*pctl), GFP_KERNEL); | 1436 | pctl = devm_kzalloc(&pdev->dev, sizeof(*pctl), GFP_KERNEL); |
1438 | if (!pctl) | 1437 | if (!pctl) |
@@ -1464,13 +1463,7 @@ static int pistachio_pinctrl_probe(struct platform_device *pdev) | |||
1464 | return PTR_ERR(pctl->pctldev); | 1463 | return PTR_ERR(pctl->pctldev); |
1465 | } | 1464 | } |
1466 | 1465 | ||
1467 | ret = pistachio_gpio_register(pctl); | 1466 | return pistachio_gpio_register(pctl); |
1468 | if (ret < 0) { | ||
1469 | pinctrl_unregister(pctl->pctldev); | ||
1470 | return ret; | ||
1471 | } | ||
1472 | |||
1473 | return 0; | ||
1474 | } | 1467 | } |
1475 | 1468 | ||
1476 | static struct platform_driver pistachio_pinctrl_driver = { | 1469 | static struct platform_driver pistachio_pinctrl_driver = { |
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c b/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c index ce483b03a263..f9d661e5c14a 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c +++ b/drivers/pinctrl/sunxi/pinctrl-sun8i-a23.c | |||
@@ -485,12 +485,12 @@ static const struct sunxi_desc_pin sun8i_a23_pins[] = { | |||
485 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8), | 485 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8), |
486 | SUNXI_FUNCTION(0x0, "gpio_in"), | 486 | SUNXI_FUNCTION(0x0, "gpio_in"), |
487 | SUNXI_FUNCTION(0x1, "gpio_out"), | 487 | SUNXI_FUNCTION(0x1, "gpio_out"), |
488 | SUNXI_FUNCTION(0x2, "uart2"), /* RTS */ | 488 | SUNXI_FUNCTION(0x2, "uart1"), /* RTS */ |
489 | SUNXI_FUNCTION_IRQ_BANK(0x4, 2, 8)), /* PG_EINT8 */ | 489 | SUNXI_FUNCTION_IRQ_BANK(0x4, 2, 8)), /* PG_EINT8 */ |
490 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9), | 490 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9), |
491 | SUNXI_FUNCTION(0x0, "gpio_in"), | 491 | SUNXI_FUNCTION(0x0, "gpio_in"), |
492 | SUNXI_FUNCTION(0x1, "gpio_out"), | 492 | SUNXI_FUNCTION(0x1, "gpio_out"), |
493 | SUNXI_FUNCTION(0x2, "uart2"), /* CTS */ | 493 | SUNXI_FUNCTION(0x2, "uart1"), /* CTS */ |
494 | SUNXI_FUNCTION_IRQ_BANK(0x4, 2, 9)), /* PG_EINT9 */ | 494 | SUNXI_FUNCTION_IRQ_BANK(0x4, 2, 9)), /* PG_EINT9 */ |
495 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10), | 495 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10), |
496 | SUNXI_FUNCTION(0x0, "gpio_in"), | 496 | SUNXI_FUNCTION(0x0, "gpio_in"), |
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c b/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c index 3040abe6f73a..3131cac2b76f 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c +++ b/drivers/pinctrl/sunxi/pinctrl-sun8i-a33.c | |||
@@ -407,12 +407,12 @@ static const struct sunxi_desc_pin sun8i_a33_pins[] = { | |||
407 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8), | 407 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 8), |
408 | SUNXI_FUNCTION(0x0, "gpio_in"), | 408 | SUNXI_FUNCTION(0x0, "gpio_in"), |
409 | SUNXI_FUNCTION(0x1, "gpio_out"), | 409 | SUNXI_FUNCTION(0x1, "gpio_out"), |
410 | SUNXI_FUNCTION(0x2, "uart2"), /* RTS */ | 410 | SUNXI_FUNCTION(0x2, "uart1"), /* RTS */ |
411 | SUNXI_FUNCTION_IRQ_BANK(0x4, 1, 8)), /* PG_EINT8 */ | 411 | SUNXI_FUNCTION_IRQ_BANK(0x4, 1, 8)), /* PG_EINT8 */ |
412 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9), | 412 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 9), |
413 | SUNXI_FUNCTION(0x0, "gpio_in"), | 413 | SUNXI_FUNCTION(0x0, "gpio_in"), |
414 | SUNXI_FUNCTION(0x1, "gpio_out"), | 414 | SUNXI_FUNCTION(0x1, "gpio_out"), |
415 | SUNXI_FUNCTION(0x2, "uart2"), /* CTS */ | 415 | SUNXI_FUNCTION(0x2, "uart1"), /* CTS */ |
416 | SUNXI_FUNCTION_IRQ_BANK(0x4, 1, 9)), /* PG_EINT9 */ | 416 | SUNXI_FUNCTION_IRQ_BANK(0x4, 1, 9)), /* PG_EINT9 */ |
417 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10), | 417 | SUNXI_PIN(SUNXI_PINCTRL_PIN(G, 10), |
418 | SUNXI_FUNCTION(0x0, "gpio_in"), | 418 | SUNXI_FUNCTION(0x0, "gpio_in"), |