Commit 37c669b2 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'gpio-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

Pull GPIO fixes from Linus Walleij:
 "Here are a few GPIO fixes for v4.8.

  I was expecting some fallout from the new chardev rework but nothing
  like that turned up att all.  Instead a Kconfig confusion that I think
  I have finally nailed, then some ordinary driver noise and trivia.

  This fixes a Kconfig issue with UM: when I made GPIOLIB available to
  all archs, that included UM, but the OF part of GPIOLIB requires
  HAS_IOMEM, so we add HAS_IOMEM as a dependency to OF_GPIO.

  This in turn exposed the fact that a few GPIO drivers were implicitly
  assuming OF_GPIO as their dependency but instead depended on OF alone
  (the typical problem being a pointer inside gpio_chip not existing
  unless OF_GPIO is selected) and then UM would fail to compile with
  these drivers instead.  Then I lost patience and made any GPIO driver
  depending on just OF depend on OF_GPIO instead, that is certainly what
  they meant and the only thing that makes sense anyway.  GPIO with just
  OF but !OF_GPIO does not make sense.

  Also a fix for the max730x driver data pointer, and a minor comment
  fix for the GPIO tools"

* tag 'gpio-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
  gpio: make any OF dependent driver depend on OF_GPIO
  gpio: Fix OF build problem on UM
  gpio: max730x: set gpiochip data pointer before using it
  tools/gpio: fix gpio-event-mon header comment
parents fa8410b3 048c28c9
...@@ -50,6 +50,7 @@ config GPIO_DEVRES ...@@ -50,6 +50,7 @@ config GPIO_DEVRES
config OF_GPIO config OF_GPIO
def_bool y def_bool y
depends on OF depends on OF
depends on HAS_IOMEM
config GPIO_ACPI config GPIO_ACPI
def_bool y def_bool y
...@@ -188,7 +189,7 @@ config GPIO_EP93XX ...@@ -188,7 +189,7 @@ config GPIO_EP93XX
config GPIO_ETRAXFS config GPIO_ETRAXFS
bool "Axis ETRAX FS General I/O" bool "Axis ETRAX FS General I/O"
depends on CRIS || COMPILE_TEST depends on CRIS || COMPILE_TEST
depends on OF depends on OF_GPIO
select GPIO_GENERIC select GPIO_GENERIC
select GPIOLIB_IRQCHIP select GPIOLIB_IRQCHIP
help help
...@@ -214,7 +215,7 @@ config GPIO_GENERIC_PLATFORM ...@@ -214,7 +215,7 @@ config GPIO_GENERIC_PLATFORM
config GPIO_GRGPIO config GPIO_GRGPIO
tristate "Aeroflex Gaisler GRGPIO support" tristate "Aeroflex Gaisler GRGPIO support"
depends on OF depends on OF_GPIO
select GPIO_GENERIC select GPIO_GENERIC
select IRQ_DOMAIN select IRQ_DOMAIN
help help
...@@ -312,7 +313,7 @@ config GPIO_MPC8XXX ...@@ -312,7 +313,7 @@ config GPIO_MPC8XXX
config GPIO_MVEBU config GPIO_MVEBU
def_bool y def_bool y
depends on PLAT_ORION depends on PLAT_ORION
depends on OF depends on OF_GPIO
select GENERIC_IRQ_CHIP select GENERIC_IRQ_CHIP
config GPIO_MXC config GPIO_MXC
...@@ -405,7 +406,7 @@ config GPIO_TEGRA ...@@ -405,7 +406,7 @@ config GPIO_TEGRA
bool "NVIDIA Tegra GPIO support" bool "NVIDIA Tegra GPIO support"
default ARCH_TEGRA default ARCH_TEGRA
depends on ARCH_TEGRA || COMPILE_TEST depends on ARCH_TEGRA || COMPILE_TEST
depends on OF depends on OF_GPIO
help help
Say yes here to support GPIO pins on NVIDIA Tegra SoCs. Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
...@@ -1099,7 +1100,7 @@ menu "SPI GPIO expanders" ...@@ -1099,7 +1100,7 @@ menu "SPI GPIO expanders"
config GPIO_74X164 config GPIO_74X164
tristate "74x164 serial-in/parallel-out 8-bits shift register" tristate "74x164 serial-in/parallel-out 8-bits shift register"
depends on OF depends on OF_GPIO
help help
Driver for 74x164 compatible serial-in/parallel-out 8-outputs Driver for 74x164 compatible serial-in/parallel-out 8-outputs
shift registers. This driver can be used to provide access shift registers. This driver can be used to provide access
......
...@@ -192,6 +192,10 @@ int __max730x_probe(struct max7301 *ts) ...@@ -192,6 +192,10 @@ int __max730x_probe(struct max7301 *ts)
ts->chip.parent = dev; ts->chip.parent = dev;
ts->chip.owner = THIS_MODULE; ts->chip.owner = THIS_MODULE;
ret = gpiochip_add_data(&ts->chip, ts);
if (ret)
goto exit_destroy;
/* /*
* initialize pullups according to platform data and cache the * initialize pullups according to platform data and cache the
* register values for later use. * register values for later use.
...@@ -213,10 +217,6 @@ int __max730x_probe(struct max7301 *ts) ...@@ -213,10 +217,6 @@ int __max730x_probe(struct max7301 *ts)
} }
} }
ret = gpiochip_add_data(&ts->chip, ts);
if (ret)
goto exit_destroy;
return ret; return ret;
exit_destroy: exit_destroy:
......
/* /*
* gpio-hammer - example swiss army knife to shake GPIO lines on a system * gpio-event-mon - monitor GPIO line events from userspace
* *
* Copyright (C) 2016 Linus Walleij * Copyright (C) 2016 Linus Walleij
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment