Merge tag 'gpio-v4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Jul 2017 19:40:27 +0000 (12:40 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 7 Jul 2017 19:40:27 +0000 (12:40 -0700)
Pull GPIO updates from Linus Walleij:
 "This is the bulk of GPIO changes for the v4.13 series.

  Some administrativa:

  I have a slew of 8250 serial patches and the new IOT2040 serial+GPIO
  driver coming in through this tree, along with a whole bunch of Exar
  8250 fixes. These are ACKed by Greg and also hit drivers/platform/*
  where they are ACKed by Andy Shevchenko.

  Speaking about drivers/platform/* there is also a bunch of ACPI stuff
  coming through that route, again ACKed by Andy.

  The MCP23S08 changes are coming in here as well. You already have the
  commits in your tree, so this is just a result of sharing an immutable
  branch between pin control and GPIO.

  Core:
   - Export add/remove for lookup tables so that modules can export GPIO
     descriptor tables.
   - Handle GPIO sleep states: it is now possible to flag that a GPIO
     line may loose its state during suspend/resume of the system to
     save power. This is used in the Wolfson Micro Arizona driver.
   - ACPI-based GPIO was tightened up a lot around the edges.
   - Use bitmap_fill() to speed up a loop.

  New drivers:
   - Exar XRA1403 SPI-based GPIO.
   - MVEBU driver now supports Armada 7K and 8K.
   - LP87565 PMIC GPIO.
   - Renesas R-CAR R8A7743 (RZ/G1M).
   - The new IOT2040 8250 serial/GPIO also comes in through this
     changeset.

  Substantial driver changes:
   - Seriously fix the Exar 8250 GPIO portions to work.
   - The MCP23S08 was moved out to a pin control driver.
   - Convert MEVEBU to use regmap for register access.
   - Drop Vulcan support from the Broadcom driver.
   - Serious cleanup and improvement of the mockup driver, giving us a
     better test coverage.

  Misc:
   - Lots of janitorial clean up.
   - A bunch of documentation fixes"

* tag 'gpio-v4.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (70 commits)
  serial: exar: Add support for IOT2040 device
  gpio-exar/8250-exar: Make set of exported GPIOs configurable
  platform: Accept const properties
  serial: exar: Factor out platform hooks
  gpio-exar/8250-exar: Rearrange gpiochip parenthood
  gpio: exar: Fix iomap request
  gpio-exar/8250-exar: Do not even instantiate a GPIO device for Commtech cards
  serial: uapi: Add support for bus termination
  gpio: rcar: Add R8A7743 (RZ/G1M) support
  gpio: gpio-wcove: Fix GPIO control register offset calculation
  gpio: lp87565: Add support for GPIO
  gpio: dwapb: fix missing first irq for edgeboth irq type
  MAINTAINERS: Take maintainership for GPIO ACPI support
  gpio: exar: Fix reading of directions and values
  gpio: exar: Allocate resources on behalf of the platform device
  gpio-exar/8250-exar: Fix passing in of parent PCI device
  gpio: mockup: use devm_kcalloc() where applicable
  gpio: mockup: add myself as author
  gpio: mockup: improve the error message
  gpio: mockup: don't return magic numbers from probe()
  ...

1  2 
MAINTAINERS
arch/arm/mach-davinci/board-dm646x-evm.c
drivers/base/platform.c
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/gpio/gpio-mvebu.c
drivers/gpio/gpiolib-acpi.c
drivers/gpio/gpiolib.c
drivers/tty/serial/8250/8250_exar.c
include/linux/acpi.h
include/linux/gpio/machine.h

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
index c83ea68be792df45a354f38dee2438a866a1f29d,7a4ce0fb0ded2ad5742daeb32432ca4367f92ad1..e338c374356294f97c1b331c4c04a4977d495290
@@@ -747,7 -800,8 +800,8 @@@ static int mvebu_pwm_probe(struct platf
                set = U32_MAX;
        else
                return -EINVAL;
-       writel_relaxed(set, mvebu_gpioreg_blink_counter_select(mvchip));
+       regmap_write(mvchip->regs,
 -                   GPIO_BLINK_CNT_SELECT_OFF + mvchip->offset, 0);
++                   GPIO_BLINK_CNT_SELECT_OFF + mvchip->offset, set);
  
        mvpwm = devm_kzalloc(dev, sizeof(struct mvebu_pwm), GFP_KERNEL);
        if (!mvpwm)
@@@ -852,9 -899,13 +906,13 @@@ static const struct of_device_id mvebu_
                .data       = (void *) MVEBU_GPIO_SOC_VARIANT_ARMADAXP,
        },
        {
 -              .compatible = "marvell,armada-370-xp-gpio",
 +              .compatible = "marvell,armada-370-gpio",
                .data       = (void *) MVEBU_GPIO_SOC_VARIANT_ORION,
        },
+       {
+               .compatible = "marvell,armada-8k-gpio",
+               .data       = (void *) MVEBU_GPIO_SOC_VARIANT_A8K,
+       },
        {
                /* sentinel */
        },
Simple merge
Simple merge
index a309bcffffcd37509c88dc4b305e8b6d82701d99,b105f4cb51aae33c7211b5d093a1cf1f988f121c..b5c98e5bf52402c2febb0b4d64d54dd19c739446
@@@ -242,12 -399,12 +405,12 @@@ pci_xr17v35x_setup(struct exar8250 *pri
  
        if (idx == 0) {
                /* Setup Multipurpose Input/Output pins. */
 -              setup_gpio(p);
 +              setup_gpio(pcidev, p);
  
-               port->port.private_data = xr17v35x_register_gpio(pcidev);
+               ret = platform->register_gpio(pcidev, port);
        }
  
-       return 0;
+       return ret;
  }
  
  static void pci_xr17v35x_exit(struct pci_dev *pcidev)
Simple merge
Simple merge