[PATCH 0/5] I2C GPIO to use gpiolibs open drain

Linus Walleij linus.walleij at linaro.org
Sun Sep 10 14:44:19 PDT 2017


I recently looked at this driver when testing the I2C GPIO
on the Gemini platform.

It's one of the archectypical places in the kernel where we
have open coded open drain emulation, also without much
explanation. So I went in and fixed it.

The fix is pretty brutal changing all boards and one MFD
device using this, but I like the end result, making the
code much more readable and skipping the intermediate step
of looping through the old GPIO API.

It would be nice to get some testing and ACKs on this if
people agree.

I imagine Wolfram would use the whole thing into the I2C
tree but I could also carry a branch in GPIO to be merged
through the GPIO tree if it is preferred (like e.g. Wolfram
want me to get the heat for any regressions, hehe).

Linus Walleij (5):
  i2c: gpio: Convert to use descriptors
  gpio: Make it possible for consumers to enforce open drain
  i2c: gpio: Enforce open drain through gpiolib
  i2c: gpio: Augment all boardfiles to use open drain
  i2c: gpio: Local vars in probe

 arch/arm/mach-ep93xx/core.c                  |  41 +++---
 arch/arm/mach-ep93xx/edb93xx.c               |  15 +--
 arch/arm/mach-ep93xx/include/mach/platform.h |   4 +-
 arch/arm/mach-ep93xx/simone.c                |  12 +-
 arch/arm/mach-ep93xx/snappercl15.c           |  12 +-
 arch/arm/mach-ep93xx/vision_ep9307.c         |   7 +-
 arch/arm/mach-ixp4xx/avila-setup.c           |  17 ++-
 arch/arm/mach-ixp4xx/dsmg600-setup.c         |  16 ++-
 arch/arm/mach-ixp4xx/fsg-setup.c             |  16 ++-
 arch/arm/mach-ixp4xx/goramo_mlr.c            |  24 +---
 arch/arm/mach-ixp4xx/ixdp425-setup.c         |  16 ++-
 arch/arm/mach-ixp4xx/nas100d-setup.c         |  16 ++-
 arch/arm/mach-ixp4xx/nslu2-setup.c           |  16 ++-
 arch/arm/mach-ks8695/board-acs5k.c           |  15 ++-
 arch/arm/mach-pxa/palmz72.c                  |  14 +-
 arch/arm/mach-pxa/viper.c                    |  27 +++-
 arch/arm/mach-sa1100/simpad.c                |  14 +-
 arch/blackfin/mach-bf533/boards/blackstamp.c |  19 ++-
 arch/blackfin/mach-bf533/boards/ezkit.c      |  18 ++-
 arch/blackfin/mach-bf533/boards/stamp.c      |  18 ++-
 arch/blackfin/mach-bf561/boards/ezkit.c      |  18 ++-
 arch/mips/alchemy/board-gpr.c                |  23 +++-
 arch/mips/ath79/mach-pb44.c                  |  16 ++-
 drivers/gpio/gpiolib.c                       |  13 ++
 drivers/i2c/busses/i2c-gpio.c                | 184 +++++++++++----------------
 drivers/mfd/sm501.c                          |  49 +++----
 include/linux/gpio/consumer.h                |   6 +
 include/linux/i2c-gpio.h                     |   4 -
 28 files changed, 372 insertions(+), 278 deletions(-)

-- 
2.13.5




More information about the linux-arm-kernel mailing list