Merge tag 'gpio-v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 4 May 2017 19:05:32 +0000 (12:05 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 4 May 2017 19:05:32 +0000 (12:05 -0700)
Pull GPIO updates from Linus Walleij:
 "This is the bulk of GPIO changes for the v4.12 kernel cycle.

  Core changes:

   - Return NULL from gpiod_get_optional() when GPIOLIB is disabled.
     This was a much discussed change. It affects use cases where people
     write drivers that might or might not be using GPIO resources. I
     have decided that this is the lesser evil right now.

   - Make gpiod_count() behave consistently across different hardware
     descriptions.

   - Fix the syntax around open drain/open source to not infer active
     high/low semantics.

  New drivers:

   - A new single-register fixed-direction framework driver for hardware
     that have lines controlled by a single register that just work in
     one direction (out or in), including IRQ support.

   - Support the Fintek F71889A GPIO SuperIO controller.

   - Support the National NI 169445 MMIO GPIO.

   - Support for the X-Gene derivative of the DWC GPIO controller

   - Support for the Rohm BD9571MWV-M PMIC GPIO controller.

   - Refactor the Gemini GPIO driver to a generic Faraday FTGPIO driver
     and replace both the Gemini and the Moxa ART custom drivers with
     this driver.

  Driver improvements:

   - A whole slew of drivers have their spinlocks chaned to raw
     spinlocks as they provide irqchips, and thus we are progressing on
     realtime compliance.

   - Use devm_irq_alloc_descs() in a slew of drivers, getting managed
     resources.

   - Support for the embedded PWM controller inside the MVEBU driver.

   - Debounce, open source and open drain support for the Aspeed driver.

   - Misc smaller fixes like spelling and syntax and whatnot"

* tag 'gpio-v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (77 commits)
  gpio: f7188x: Add a missing break
  gpio: omap: return error if requested debounce time is not possible
  gpio: Add ROHM BD9571MWV-M PMIC GPIO driver
  gpio: gpio-wcove: fix GPIO IRQ status mask
  gpio: DT bindings, move tca9554 from pcf857x to pca953x
  gpio: move tca9554 from pcf857x to pca953x
  gpio: arizona: Correct check whether the pin is an input
  gpio: Add XRA1403 DTS binding documentation
  dt-bindings: add exar to vendor prefixes list
  gpio: gpio-wcove: fix irq pending status bit width
  gpio: dwapb: use dwapb_read instead of readl_relaxed
  gpio: aspeed: Add open-source and open-drain support
  gpio: aspeed: Add debounce support
  gpio: aspeed: dt: Add optional clocks property
  gpio: aspeed: dt: Fix description alignment in bindings document
  gpio: mvebu: Add limited PWM support
  gpio: Use unsigned int for interrupt numbers
  gpio: f7188x: Add F71889A GPIO support.
  gpio: core: Decouple open drain/source flag with active low/high
  gpio: arizona: Correct handling for reading input GPIOs
  ...

1  2 
Documentation/devicetree/bindings/vendor-prefixes.txt
MAINTAINERS
drivers/gpio/Kconfig
drivers/gpio/gpio-altera.c
drivers/gpio/gpio-mockup.c
drivers/gpio/gpiolib-acpi.c
drivers/input/misc/soc_button_array.c
include/linux/acpi.h
include/linux/gpio/consumer.h

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index f210a33225598f19ac0891eec7d48c8cc152af75,c3b8e1fb46996b9b4df86fe27144bc817b2e692e..e37d37273182097d412f30a3878ea0303f9f7a5b
@@@ -312,17 -167,12 +312,18 @@@ static int soc_button_probe(struct plat
        if (!id)
                return -ENODEV;
  
 -      button_info = (struct soc_button_info *)id->driver_data;
 +      if (!id->driver_data) {
 +              button_info = soc_button_get_button_info(dev);
 +              if (IS_ERR(button_info))
 +                      return PTR_ERR(button_info);
 +      } else {
 +              button_info = (struct soc_button_info *)id->driver_data;
 +      }
  
-       if (gpiod_count(dev, NULL) <= 0) {
+       error = gpiod_count(dev, NULL);
+       if (error < 0) {
                dev_dbg(dev, "no GPIO attached, ignoring...\n");
-               return -ENODEV;
+               return error;
        }
  
        priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
Simple merge
Simple merge