mbox series

[GIT,PULL] Bulk GPIO changes for v4.17

Message ID CACRpkdaKWTAz=VLz9W8wWwQEvOLLw4jPWcAKrjJ+KW5FK5ZvMw@mail.gmail.com
State New
Headers show
Series [GIT,PULL] Bulk GPIO changes for v4.17 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git

Message

Linus Walleij April 4, 2018, 11:19 a.m. UTC
Hi Linus,

here is the major slew of GPIO changes for v4.17.

Some things to notice:

- I merged in v4.16-rc5 to get rid of a really nasty merge
  conflict that was making it hard to rebuild linux-next, and
  this happened due to a big fix in the Renesas R-Car driver
  collding with ongoing development.

- There is a series of ISA_BUS_API changes that ended up
  getting queued in my tree. Most of them have proper ACKs
  and they have been tested throughly in linux-next.
  These patches finally split ISA_BUS and ISA_BUS_API
  apart as I understand it, as there are devices using
  port-mapped I/O but not strictly speaking using any ISA
  bus. So the ISA_BUS and the ISA_BUS_API are two
  things. The most notable effect of ISA_BUS_API is that
  it compiles drivers/base/isa.c so that we get device driver
  core infrastructure for these devices. The ISA bus was merged
  in 2006 (a5117ba7da37) and was used for sound cards and
  watchdog, but only recently William started
  to use it for his industrial data acquisition cards and he's found
  a bit of problems that are now (hopefully) finally fixed up.
  Any questions: William Breathitt Gray is on the CC for this
  pull request to answer them.

Any other details are in the signed tag.

Please pull it in!

Yours,
Linus Walleij


The following changes since commit 0c8efd610b58cb23cefdfa12015799079aef94ae:

  Linux 4.16-rc5 (2018-03-11 17:25:09 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
tags/gpio-v4.17-1

for you to fetch changes up to 348f3cde84ab5b1f53cd3c0eaac1ca99a4dcb148:

  gpio: Add Spreadtrum PMIC EIC driver support (2018-03-27 15:51:22 +0200)

----------------------------------------------------------------
This is the bulk of GPIO changes for the v4.17 kernel cycle:

New drivers:

- Nintendo Wii GameCube GPIO, known as "Hollywood"

- Raspberry Pi mailbox service GPIO expander

- Spreadtrum main SC9860 SoC and IEC GPIO controllers.

Improvements:

- Implemented .get_multiple() callback for most of the
  high-performance industrial GPIO cards for the ISA bus.

- ISA GPIO drivers now select the ISA_BUS_API instead of
  depending on it. This is merged with the same pattern
  for all the ISA drivers and some other Kconfig cleanups
  related to this.

Cleanup:

- Delete the TZ1090 GPIO drivers following the deletion of
  this SoC from the ARM tree.

- Move the documentation over to driver-api to conform with
  the rest of the kernel documentation build.

- Continue to make the GPIO drivers include only
  <linux/gpio/driver.h> and not the too broad <linux/gpio.h>
  that we want to get rid of.

- Managed to remove VLA allocation from two drivers pending
  more fixes in this area for the next merge window.

- Misc janitorial fixes.

----------------------------------------------------------------
Anders Roxell (1):
      tools/gpio/gpio-event-mon: fix warning

Arnd Bergmann (1):
      gpio: raspberrypi-ext: fix firmware dependency

Axel Lin (1):
      gpio: tegra: Convert to use DEFINE_SHOW_ATTRIBUTE macro

Baolin Wang (5):
      dt-bindings: gpio: Add Spreadtrum GPIO controller documentation
      gpio: Add GPIO driver for Spreadtrum SC9860 platform
      dt-bindings: gpio: Add Spreadtrum EIC controller documentation
      gpio: Add Spreadtrum EIC driver support
      gpio: Add Spreadtrum PMIC EIC driver support

Bartosz Golaszewski (1):
      gpio: mockup: fix a potential crash when creating debugfs entries

Baruch Siach (3):
      soc: bcm2835: sync firmware properties with downstream
      dt-bindings: gpio: add raspberry pi GPIO expander binding
      gpio: raspberrypi-exp: explain Kconfig dependency

Dave Stevenson (1):
      gpio: raspberrypi-exp: Driver for RPi3 GPIO expander via mailbox service

David Lechner (1):
      gpio: davinci: add support for pinmux gpio ranges

H. Nikolaus Schaller (1):
      gpio: pca953x: add compatibility for pcal6524 and pcal9555a

Hien Dang (1):
      gpio: gpio-rcar: Support S2RAM

James Hogan (1):
      gpio: Drop TZ1090 drivers

Jonathan Neuschäfer (10):
      dt-bindings: gpio: Add binding for Wii GPIO controller
      gpio: Add GPIO driver for Nintendo Wii
      MAINTAINERS: GPIO: Add Documentation/driver-api/gpio/
      Documentation: driver-api: Move gpio.rst to gpio/index.rst
      Documentation: gpio: Move introduction to driver-api
      Documentation: gpio: Move driver documentation to driver-api
      Documentation: gpio: Move legacy documentation to driver-api
      Documentation: gpio: Move gpiod_* consumer documentation to driver-api
      Documentation: gpio: Move GPIO mapping documentation to driver-api
      Documentation: gpio: Move drivers-on-gpio.txt to driver-api

Laura Abbott (2):
      gpio: Remove VLA from MAX3191X driver
      gpio: Remove VLA from xra1403 driver

Linus Walleij (20):
      gpio: ftgpio010: Fix some more registers
      gpio: include consumer header in gpiolib.h
      gpio: dwapb: Use "stride" rather than "size" for register distance
      gpio: dwapb: Call directly into the gpiochip to read value
      gpio: mockup: Update Bamvors mail address
      Merge tag 'v4.16-rc5' into devel
      gpio: dln2: Include proper header
      gpio: ge: Drop of_gpio.h include
      gpio: em: Use the right include
      gpio: ftgpio010: Drop of_gpio.h include
      gpio: grgpio: Include the right header
      gpio: htc-gpio: Include the right header
      gpio: ich: Include the right header
      gpio: ich: Use BIT() macro
      gpio: it87: Include the right header
      gpio: janz-ttl: Include the right header
      gpio: janz-ttl: Use BIT() macro
      gpio: kempld: Include the right header
      gpio: ks8695: Include the right header
      Merge branch 'gpio-reserved-ranges' into devel

Maciej S. Szmigiero (1):
      Revert "gpio: winbond: fix ISA_BUS_API dependency"

Markus Elfring (8):
      gpio-wm831x: Use seq_putc() in wm831x_gpio_dbg_show()
      gpio: timberdale: Delete an error message
      gpio: timberdale: Improve a size determination
      gpio: omap: Delete an error message
      gpio: omap: Improve a size determination
      gpio-ml-ioh: Delete an error message
      gpio: merrifield: Delete an error message
      gpio-intel-mid: Delete an error message

Phil Edworthy (1):
      gpio: dwapb: Add support for a bus clock

Rajmohan Mani (1):
      gpio: tps68470: Update to SPDX license identifier

Stephen Boyd (5):
      dt-bindings: gpio: Add a gpio-reserved-ranges property
      gpiolib: Extract mask allocation into subroutine
      gpiolib: Change bitmap allocation to kmalloc_array
      gpiolib: Support 'gpio-reserved-ranges' property
      pinctrl: qcom: Don't allow protected pins to be requested

Wang Dongsheng (1):
      gpiolib: friendly debug information for consumer

Wei Yongjun (1):
      gpio: ath79: Fix potential NULL dereference in ath79_gpio_probe()

William Breathitt Gray (12):
      iio: Change ISA_BUS_API dependency to selection
      watchdog: Change ISA_BUS_API dependency to selection
      gpio: Change ISA_BUS_API dependency to selection
      isa: Remove ISA_BUS_API selection for ISA_BUS
      pc104: Add EXPERT dependency for PC104 Kconfig option
      gpio: 104-idio-16: Implement get_multiple callback
      gpio: pci-idio-16: Implement get_multiple callback
      gpio: pcie-idio-24: Implement get_multiple/set_multiple callbacks
      gpio: 104-dio-48e: Implement get_multiple callback
      gpio: 104-idi-48: Implement get_multiple callback
      gpio: gpio-mm: Implement get_multiple callback
      gpio: ws16c48: Implement get_multiple callback

 .../devicetree/bindings/gpio/gpio-eic-sprd.txt     |  97 ++++
 .../devicetree/bindings/gpio/gpio-pca953x.txt      |   2 +
 .../devicetree/bindings/gpio/gpio-sprd.txt         |  28 +
 .../devicetree/bindings/gpio/gpio-tz1090-pdc.txt   |  45 --
 .../devicetree/bindings/gpio/gpio-tz1090.txt       |  88 ---
 Documentation/devicetree/bindings/gpio/gpio.txt    |   7 +-
 .../bindings/gpio/nintendo,hollywood-gpio.txt      |  27 +
 .../bindings/gpio/raspberrypi,firmware-gpio.txt    |  30 +
 .../devicetree/bindings/powerpc/nintendo/wii.txt   |   9 +-
 .../{gpio/board.txt => driver-api/gpio/board.rst}  |  39 +-
 .../consumer.txt => driver-api/gpio/consumer.rst}  |  85 +--
 .../driver.txt => driver-api/gpio/driver.rst}      |  80 +--
 .../gpio/drivers-on-gpio.rst}                      |   1 +
 .../driver-api/{gpio.rst => gpio/index.rst}        |  21 +-
 .../{gpio/gpio.txt => driver-api/gpio/intro.rst}   |   9 +-
 .../gpio-legacy.txt => driver-api/gpio/legacy.rst} |  68 ++-
 Documentation/driver-api/index.rst                 |   2 +-
 Documentation/gpio/00-INDEX                        |  13 -
 Documentation/gpio/sysfs.txt                       |   5 +-
 MAINTAINERS                                        |   3 +-
 arch/x86/Kconfig                                   |  10 +-
 drivers/gpio/Kconfig                               |  75 ++-
 drivers/gpio/Makefile                              |   7 +-
 drivers/gpio/gpio-104-dio-48e.c                    |  47 ++
 drivers/gpio/gpio-104-idi-48.c                     |  47 ++
 drivers/gpio/gpio-104-idio-16.c                    |  15 +
 drivers/gpio/gpio-ath79.c                          |   2 +
 drivers/gpio/gpio-davinci.c                        |   6 +
 drivers/gpio/gpio-dln2.c                           |   7 +-
 drivers/gpio/gpio-dwapb.c                          |  81 ++-
 drivers/gpio/gpio-eic-sprd.c                       | 606 +++++++++++++++++++++
 drivers/gpio/gpio-em.c                             |   2 +-
 drivers/gpio/gpio-ftgpio010.c                      |   7 +-
 drivers/gpio/gpio-ge.c                             |   1 -
 drivers/gpio/gpio-gpio-mm.c                        |  47 ++
 drivers/gpio/gpio-grgpio.c                         |   3 +-
 drivers/gpio/gpio-hlwd.c                           | 115 ++++
 drivers/gpio/gpio-htc-egpio.c                      |   1 +
 drivers/gpio/gpio-ich.c                            |  21 +-
 drivers/gpio/gpio-intel-mid.c                      |   4 +-
 drivers/gpio/gpio-it87.c                           |   2 +-
 drivers/gpio/gpio-janz-ttl.c                       |  15 +-
 drivers/gpio/gpio-kempld.c                         |   2 +-
 drivers/gpio/gpio-ks8695.c                         |   2 +-
 drivers/gpio/gpio-max3191x.c                       |   7 +-
 drivers/gpio/gpio-merrifield.c                     |   4 +-
 drivers/gpio/gpio-ml-ioh.c                         |   1 -
 drivers/gpio/gpio-mockup.c                         |   6 +-
 drivers/gpio/gpio-omap.c                           |   6 +-
 drivers/gpio/gpio-pca953x.c                        |   4 +
 drivers/gpio/gpio-pci-idio-16.c                    |  50 ++
 drivers/gpio/gpio-pcie-idio-24.c                   | 117 ++++
 drivers/gpio/gpio-pmic-eic-sprd.c                  | 330 +++++++++++
 drivers/gpio/gpio-raspberrypi-exp.c                | 252 +++++++++
 drivers/gpio/gpio-rcar.c                           |  60 +-
 drivers/gpio/gpio-sprd.c                           | 290 ++++++++++
 drivers/gpio/gpio-tegra.c                          |  16 +-
 drivers/gpio/gpio-timberdale.c                     |   7 +-
 drivers/gpio/gpio-tps68470.c                       |  10 +-
 drivers/gpio/gpio-tz1090-pdc.c                     | 231 --------
 drivers/gpio/gpio-tz1090.c                         | 602 --------------------
 drivers/gpio/gpio-wm831x.c                         |   2 +-
 drivers/gpio/gpio-ws16c48.c                        |  47 ++
 drivers/gpio/gpio-xra1403.c                        |   8 +-
 drivers/gpio/gpiolib-of.c                          |  24 +
 drivers/gpio/gpiolib.c                             |  68 ++-
 drivers/gpio/gpiolib.h                             |   2 +-
 drivers/iio/adc/Kconfig                            |   3 +-
 drivers/iio/counter/Kconfig                        |   3 +-
 drivers/iio/dac/Kconfig                            |   3 +-
 drivers/pinctrl/qcom/pinctrl-msm.c                 |  65 ++-
 drivers/watchdog/Kconfig                           |   3 +-
 include/linux/gpio/driver.h                        |  16 +
 include/linux/platform_data/gpio-htc-egpio.h       |   2 -
 include/soc/bcm2835/raspberrypi-firmware.h         |  18 +
 init/Kconfig                                       |   2 +-
 tools/gpio/gpio-event-mon.c                        |   2 +-
 77 files changed, 2771 insertions(+), 1274 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio-eic-sprd.txt
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio-sprd.txt
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-tz1090-pdc.txt
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-tz1090.txt
 create mode 100644
Documentation/devicetree/bindings/gpio/nintendo,hollywood-gpio.txt
 create mode 100644
Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt
 rename Documentation/{gpio/board.txt => driver-api/gpio/board.rst} (88%)
 rename Documentation/{gpio/consumer.txt => driver-api/gpio/consumer.rst} (89%)
 rename Documentation/{gpio/driver.txt => driver-api/gpio/driver.rst} (93%)
 rename Documentation/{gpio/drivers-on-gpio.txt =>
driver-api/gpio/drivers-on-gpio.rst} (99%)
 rename Documentation/driver-api/{gpio.rst => gpio/index.rst} (74%)
 rename Documentation/{gpio/gpio.txt => driver-api/gpio/intro.rst} (96%)
 rename Documentation/{gpio/gpio-legacy.txt => driver-api/gpio/legacy.rst} (96%)
 create mode 100644 drivers/gpio/gpio-eic-sprd.c
 create mode 100644 drivers/gpio/gpio-hlwd.c
 create mode 100644 drivers/gpio/gpio-pmic-eic-sprd.c
 create mode 100644 drivers/gpio/gpio-raspberrypi-exp.c
 create mode 100644 drivers/gpio/gpio-sprd.c
 delete mode 100644 drivers/gpio/gpio-tz1090-pdc.c
 delete mode 100644 drivers/gpio/gpio-tz1090.c
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

William Breathitt Gray April 4, 2018, 1:21 p.m. UTC | #1
On Wed, Apr 04, 2018 at 01:19:29PM +0200, Linus Walleij wrote:
>- There is a series of ISA_BUS_API changes that ended up
>  getting queued in my tree. Most of them have proper ACKs
>  and they have been tested throughly in linux-next.
>  These patches finally split ISA_BUS and ISA_BUS_API
>  apart as I understand it, as there are devices using
>  port-mapped I/O but not strictly speaking using any ISA
>  bus. So the ISA_BUS and the ISA_BUS_API are two
>  things. The most notable effect of ISA_BUS_API is that
>  it compiles drivers/base/isa.c so that we get device driver
>  core infrastructure for these devices. The ISA bus was merged
>  in 2006 (a5117ba7da37) and was used for sound cards and
>  watchdog, but only recently William started
>  to use it for his industrial data acquisition cards and he's found
>  a bit of problems that are now (hopefully) finally fixed up.
>  Any questions: William Breathitt Gray is on the CC for this
>  pull request to answer them.

Some background on the impetus and rationale of the ISA_BUS_API Kconfig
changes:

During submission of the Winbond GPIO driver (a0d65009411c), an attempt
to select ISA_BUS_API revealed a recursive dependency bug:
https://lkml.org/lkml/2017/12/26/235

The recursive dependency could be avoided if ISA_BUS_API was selected by
drivers where needed rather than depended on. A select semantic makes
sense as well for these drivers because ISA_BUS_API is simply used to
compile the drivers/base/isa.c file, which is just a thin wrapper to
allow these ISA-style I/O port drivers to fit the device driver model.

ISA_BUS_API is decoupled from the ISA_BUS so that it can be selected
independent of the legacy ISA_BUS drivers, which do not necessary make
use of drivers/base/isa.c functionality. Thus there is a clean
separation between the modern drivers for ISA-style devices which select
ISA_BUS_API, and the legacy drivers for true ISA cards which utilize the
legacy ISA_BUS Kconfig option.

The reason these changes are coming in through the GPIO tree is to avoid
a similar recursive dependency error if the STX104 IIO driver attempts
to select ISA_BUS_API separate from the other patches (due to its
GPIOLIB selection): https://lkml.org/lkml/2017/12/29/384

These updates missed the last merge window, so the Winbond GPIO driver
was merged in at that time with a "depends on ISA_BUS_API" line patch to
pacify the recursive dependency error. Now that these updates were
picked up in the GPIO tree, the revert patch was merged to revert the
"depends on ISA_BUS_API" line to the originally intended
"select ISA_BUS_API" line.

Finally, an explicit EXPERT dependency is added to the PC104 Kconfig
option to keep the PC/104 drivers masked as they have been -- the
PC/104 interface is somewhat niche and unlikely to be a concern for
regular users, so let's keep it tucked away.

William Breathitt Gray
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html