[PULL REQUEST] i2c for 4.19

From: Wolfram Sang
Date: Tue Aug 21 2018 - 10:04:43 EST


Linus,

here are the I2C updates for this merge window:

* the core has now a lockless variant of i2c_smbus_xfer. Some open coded
versions of this got removed in drivers. This also enables proper SCCB
support in regmap.
* locking got a more precise naming. i2c_{un}lock_adapter() had to go,
and we know use i2c_lock_bus() consistently with flags like
I2C_LOCK_ROOT_ADAPTER and I2C_LOCK_SEGMENT to avoid ambiguity.
* the gpio fault injector got a new delicate testcase
* the bus recovery procedure got fixed to handle the new testcase
correctly
* a new quirk flag for controllers not able to handle zero length
messages together with driver updates to use it
* new drivers: FSI bus attached I2C masters, GENI I2C controller,
Owl family S900
* and a good set of driver improvements and bugfixes

I will send you the promised pull request with the removal of the
deprecated attach_adapter callback seperately during this merge window.

Please pull.

Thanks,

Wolfram


The following changes since commit d72e90f33aa4709ebecc5005562f52335e106a60:

Linux 4.18-rc6 (2018-07-22 14:12:20 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-4.19

for you to fetch changes up to 19358d4488db7e6a04e940730cc75909d7d1e0d8:

i2c: rcar: implement STOP and REP_START according to docs (2018-08-20 14:49:41 +0200)

----------------------------------------------------------------
Alan Chiang (2):
dt-bindings: at24: Add address-width property
eeprom: at24: Add support for address-width property

Andy Shevchenko (3):
i2c: core: Parse SDA hold time from firmware
i2c: designware: Convert to use struct i2c_timings
i2c: designware: Add SPDX license tag

Darren Stevens (1):
i2c: pasemi: remove hardcoded bus numbers on smbus

Eddie James (8):
dt-bindings: i2c: Add FSI-attached I2C master dt binding documentation
i2c: Add FSI-attached I2C master algorithm
i2c: fsi: Add port structures
i2c: fsi: Add abort and hardware reset procedures
i2c: fsi: Add transfer implementation
i2c: fsi: Add I2C master locking
i2c: fsi: Add bus recovery
MAINTAINERS: Add Eddie as the maintainer for the FSI-attached I2C driver

Esben Haabendal (2):
i2c: imx: Fix race condition in dma read
i2c: imx: Simplify stopped state tracking

Fabrizio Castro (2):
dt-bindings: i2c: sh_mobile: Add r8a774a1 support
dt-bindings: i2c: rcar: Add r8a774a1 support

Gustavo A. R. Silva (2):
i2c: amd8111: Mark expected switch fall-through
i2c: designware-pcidrv: Mark expected switch fall-through

Hans de Goede (2):
i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes
i2c: core: ACPI: Make acpi_gsb_i2c_read_bytes() check i2c_transfer return value

Hiromitsu Yamasaki (1):
i2c: rcar: Add compatible support for r8a77990 (R-Car E3)

Jae Hyun Yoo (4):
i2c: aspeed: Add newline characters into message printings.
i2c: aspeed: Fix initial values of master and slave state
i2c: aspeed: Adjust spinlock scope in the irq handler
i2c: aspeed: Add an explicit type casting for *get_clk_reg_val

Jarkko Nikula (9):
i2c: designware: Remove needless variable from i2c_dw_init_slave()
i2c: designware: Move register access detection to common code
i2c: designware: Don't use internal ___constant_swab32
i2c: designware: Call i2c_dw_clk_rate() only once in i2c_dw_init_master()
i2c: designware: Move SDA hold time configuration to common code
i2c: designware: Separate timing parameter setting from HW initalization
i2c: designware: Add debug print for SDA hold time value
i2c: designware: Add debug print for bus speed
i2c: i801: Consolidate chipset names in documentation and Kconfig

Karthikeyan Ramasubramanian (1):
i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller

Krzysztof Kozlowski (1):
i2c: exynos5: Describe the hardware variant for readability

Linus Walleij (1):
i2c: mux: pca954x: use helper variable in probe

Manivannan Sadhasivam (2):
dt-bindings: i2c: Add binding for Actions Semiconductor Owl I2C controller
i2c: Add Actions Semiconductor Owl family S900 I2C driver

Mika Westerberg (1):
i2c: i801: Add support for Intel Ice Lake

Peter Rosin (15):
i2c: smbus: add unlocked __i2c_smbus_xfer variant
i2c: mux: mlxcpld: make use of __i2c_smbus_xfer
i2c: mux: pca9541: make use of __i2c_smbus_xfer
i2c: mux: pca954x: make use of __i2c_smbus_xfer
i2c: mux: make use of __i2c_smbus_xfer
tpm/tpm_i2c_infineon: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
i2c: mux: pca9541: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
input: rohm_bu21023: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
media: af9013: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
media: drxk_hard: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
media: rtl2830: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
media: tda1004x: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
media: tda18271: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
mfd: 88pm860x-i2c: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
i2c: remove i2c_lock_adapter and use i2c_lock_bus directly

Thierry Reding (1):
i2c: tegra: Add support for Tegra194

Wolfram Sang (23):
i2c: gpio: fault-injector: refactor incomplete transfer
i2c: gpio: fault-injector: add incomplete_write_byte
Merge branch 'i2c/precise-locking-names_immutable' into i2c/for-4.19
Merge tag 'v4.18-rc5' into i2c/for-4.19
i2c: recovery: require either get_sda or set_sda
i2c: recovery: refactor recovery function
i2c: recovery: add get_bus_free callback
i2c: rcar: use the new get_bus_free callback
i2c: recovery: rename variable for easier understanding
i2c: recovery: make pin init look like STOP
i2c: rcar: handle RXDMA HW behaviour on Gen3
Merge tag 'at24-4.19-updates-for-wolfram' of git://git.kernel.org/.../brgl/linux into i2c/for-4.19
Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-4.19
i2c: quirks: add zero length checks
i2c: designware-master: use core to detect 'no zero length' quirk
i2c: mxs: use core to detect 'no zero length' quirk
i2c: pmcmsp: use core to detect 'no zero length' quirk
i2c: stu300: use core to detect 'no zero length' quirk
i2c: rcar: use core to detect 'no zero length' quirk
i2c: xlr: use core to detect 'no zero length' quirk
i2c: sh_mobile: use core to detect 'no zero length read' quirk
i2c: rcar: refactor private flags
i2c: rcar: implement STOP and REP_START according to docs


with much appreciated quality assurance from
----------------------------------------------------------------
Alexander Steffen (1):
(Test) tpm/tpm_i2c_infineon: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)

Alexandre Belloni (4):
(Rev.) i2c: designware: Convert to use struct i2c_timings
(Test) i2c: designware: Convert to use struct i2c_timings
(Test) i2c: core: Parse SDA hold time from firmware
(Rev.) i2c: core: Parse SDA hold time from firmware

Andrzej Hajda (1):
(Rev.) i2c: exynos5: Describe the hardware variant for readability

Andy Shevchenko (13):
(Rev.) i2c: designware-master: use core to detect 'no zero length' quirk
(Rev.) i2c: quirks: add zero length checks
(Rev.) i2c: fsi: Add I2C master locking
(Rev.) i2c: fsi: Add transfer implementation
(Rev.) i2c: Add FSI-attached I2C master algorithm
(Rev.) i2c: designware: Add debug print for bus speed
(Rev.) i2c: designware: Add debug print for SDA hold time value
(Rev.) i2c: designware: Separate timing parameter setting from HW initalization
(Rev.) i2c: designware: Move SDA hold time configuration to common code
(Rev.) i2c: designware: Call i2c_dw_clk_rate() only once in i2c_dw_init_master()
(Rev.) i2c: designware: Don't use internal ___constant_swab32
(Rev.) i2c: designware: Move register access detection to common code
(Rev.) i2c: designware: Remove needless variable from i2c_dw_init_slave()

Biju Das (2):
(Rev.) dt-bindings: i2c: rcar: Add r8a774a1 support
(Rev.) dt-bindings: i2c: sh_mobile: Add r8a774a1 support

Brendan Higgins (4):
(Rev.) i2c: aspeed: Add an explicit type casting for *get_clk_reg_val
(Rev.) i2c: aspeed: Adjust spinlock scope in the irq handler
(Rev.) i2c: aspeed: Fix initial values of master and slave state
(Rev.) i2c: aspeed: Add newline characters into message printings.

Douglas Anderson (1):
(Rev.) i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller

Geert Uytterhoeven (2):
(Rev.) i2c: rcar: handle RXDMA HW behaviour on Gen3
(Rev.) i2c: rcar: Add compatible support for r8a77990 (R-Car E3)

Jarkko Nikula (2):
(Test) i2c: designware-master: use core to detect 'no zero length' quirk
(Test) i2c: quirks: add zero length checks

Jarkko Sakkinen (1):
(Rev.) tpm/tpm_i2c_infineon: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)

Jean Delvare (2):
(Rev.) i2c: i801: Add support for Intel Ice Lake
(Rev.) i2c: i801: Consolidate chipset names in documentation and Kconfig

Joel Stanley (6):
(Test) i2c: fsi: Add bus recovery
(Test) i2c: fsi: Add I2C master locking
(Test) i2c: fsi: Add transfer implementation
(Test) i2c: fsi: Add abort and hardware reset procedures
(Test) i2c: fsi: Add port structures
(Test) i2c: Add FSI-attached I2C master algorithm

Linus Walleij (1):
(Rev.) i2c: stu300: use core to detect 'no zero length' quirk

Niklas S??derlund (3):
(Rev.) i2c: sh_mobile: use core to detect 'no zero length read' quirk
(Rev.) i2c: rcar: use core to detect 'no zero length' quirk
(Rev.) i2c: quirks: add zero length checks

Peter Rosin (2):
(Rev.) i2c: recovery: make pin init look like STOP
(Rev.) i2c: recovery: refactor recovery function

Rob Herring (4):
(Rev.) dt-bindings: i2c: rcar: Add r8a774a1 support
(Rev.) dt-bindings: i2c: sh_mobile: Add r8a774a1 support
(Rev.) dt-bindings: i2c: Add binding for Actions Semiconductor Owl I2C controller
(Rev.) dt-bindings: at24: Add address-width property

Sekhar Nori (1):
(Test) i2c: remove i2c_lock_adapter and use i2c_lock_bus directly

Simon Horman (2):
(Rev.) dt-bindings: i2c: rcar: Add r8a774a1 support
(Rev.) dt-bindings: i2c: sh_mobile: Add r8a774a1 support

Stephen Boyd (2):
(Rev.) i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller
(Test) i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller

Ulrich Hecht (3):
(Rev.) i2c: rcar: implement STOP and REP_START according to docs
(Rev.) i2c: rcar: refactor private flags
(Rev.) i2c: recovery: make pin init look like STOP

Documentation/devicetree/bindings/eeprom/at24.txt | 2 +
Documentation/devicetree/bindings/i2c/i2c-fsi.txt | 40 ++
Documentation/devicetree/bindings/i2c/i2c-owl.txt | 27 +
Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 5 +-
.../devicetree/bindings/i2c/i2c-sh_mobile.txt | 4 +-
Documentation/i2c/busses/i2c-i801 | 11 +-
Documentation/i2c/gpio-fault-injection | 49 +-
MAINTAINERS | 16 +
drivers/char/tpm/tpm_i2c_infineon.c | 8 +-
drivers/i2c/busses/Kconfig | 42 +-
drivers/i2c/busses/Makefile | 3 +
drivers/i2c/busses/i2c-amd8111.c | 1 +
drivers/i2c/busses/i2c-aspeed.c | 40 +-
drivers/i2c/busses/i2c-brcmstb.c | 8 +-
drivers/i2c/busses/i2c-davinci.c | 4 +-
drivers/i2c/busses/i2c-designware-baytrail.c | 10 +-
drivers/i2c/busses/i2c-designware-common.c | 91 ++-
drivers/i2c/busses/i2c-designware-core.h | 24 +-
drivers/i2c/busses/i2c-designware-master.c | 223 +++---
drivers/i2c/busses/i2c-designware-pcidrv.c | 17 +-
drivers/i2c/busses/i2c-designware-platdrv.c | 68 +-
drivers/i2c/busses/i2c-designware-slave.c | 62 +-
drivers/i2c/busses/i2c-exynos5.c | 22 +-
drivers/i2c/busses/i2c-fsi.c | 752 +++++++++++++++++++++
drivers/i2c/busses/i2c-gpio.c | 97 ++-
drivers/i2c/busses/i2c-i801.c | 4 +
drivers/i2c/busses/i2c-imx.c | 23 +-
drivers/i2c/busses/i2c-mxs.c | 8 +-
drivers/i2c/busses/i2c-owl.c | 495 ++++++++++++++
drivers/i2c/busses/i2c-pasemi.c | 3 +-
drivers/i2c/busses/i2c-pmcmsp.c | 17 +-
drivers/i2c/busses/i2c-qcom-geni.c | 673 ++++++++++++++++++
drivers/i2c/busses/i2c-rcar.c | 123 +++-
drivers/i2c/busses/i2c-s3c2410.c | 4 +-
drivers/i2c/busses/i2c-sh_mobile.c | 10 +-
drivers/i2c/busses/i2c-sprd.c | 8 +-
drivers/i2c/busses/i2c-stu300.c | 12 +-
drivers/i2c/busses/i2c-tegra.c | 90 ++-
drivers/i2c/busses/i2c-xlr.c | 11 +-
drivers/i2c/i2c-core-acpi.c | 19 +-
drivers/i2c/i2c-core-base.c | 85 ++-
drivers/i2c/i2c-core-slave.c | 8 +-
drivers/i2c/i2c-core-smbus.c | 28 +-
drivers/i2c/i2c-mux.c | 4 +-
drivers/i2c/muxes/i2c-mux-mlxcpld.c | 28 +-
drivers/i2c/muxes/i2c-mux-pca9541.c | 75 +-
drivers/i2c/muxes/i2c-mux-pca954x.c | 51 +-
drivers/iio/temperature/mlx90614.c | 4 +-
drivers/input/touchscreen/rohm_bu21023.c | 4 +-
drivers/media/dvb-frontends/af9013.c | 8 +-
drivers/media/dvb-frontends/drxk_hard.c | 4 +-
drivers/media/dvb-frontends/rtl2830.c | 12 +-
drivers/media/dvb-frontends/tda1004x.c | 6 +-
drivers/media/tuners/tda18271-common.c | 8 +-
drivers/mfd/88pm860x-i2c.c | 8 +-
drivers/misc/eeprom/at24.c | 17 +
include/linux/i2c.h | 44 +-
57 files changed, 2846 insertions(+), 674 deletions(-)
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-fsi.txt
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-owl.txt
create mode 100644 drivers/i2c/busses/i2c-fsi.c
create mode 100644 drivers/i2c/busses/i2c-owl.c
create mode 100644 drivers/i2c/busses/i2c-qcom-geni.c

Attachment: signature.asc
Description: PGP signature