Linus, I2C has for you: * API for late atomic transfers (e.g. to shut down via PMIC). We have a seperate callback now which is called under clearly defined conditions. In-kernel users are converted, too. * new driver for the AMD PCIe MP2 I2C controller * large refactoring for at91 and bcm-iproc (both gain slave support due to this) * and a good share of various driver improvements anf fixes Please pull. Thanks, Wolfram The following changes since commit 79a3aaa7b82e3106be97842dedfd8429248896e6: Linux 5.1-rc3 (2019-03-31 14:39:29 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-5.2 for you to fetch changes up to e6ae3ca27477226eae77cc00d5fad89d7ce64aea: dt-bindings: i2c: riic: document r7s9210 support (2019-05-03 16:53:31 +0200) ---------------------------------------------------------------- Adamski, Krzysztof (Nokia - PL/Wroclaw) (1): i2c: axxia: use auto cmd for last message Andy Shevchenko (1): i2c: at91: Convert to use struct i2c_timings Anson Huang (1): i2c: imx-lpi2c: Use __maybe_unused instead of #if CONFIG_PM_SLEEP Bartosz Golaszewski (1): MAINTAINERS: change my e-mail address for at24 Bich HEMON (2): dt-bindings: i2c: stm32: remove extra spaces dt-bindings: i2c: stm32: update optional properties for stm32h7/stm32mp1 Bjorn Helgaas (1): i2c: isch: Remove unnecessary acpi.h include Chris Brandt (1): dt-bindings: i2c: riic: document r7s9210 support Dan Carpenter (1): i2c: nomadik: remove an unnecessary NULL check in nmk_i2c_remove() Elie Morisse (1): i2c: Add drivers for the AMD PCIe MP2 I2C controller Fabien Parent (1): dt-bindings: i2c: i2c-mtk: add support for MT8516 Geert Uytterhoeven (2): dt-bindings: at24: add Renesas R1EX24016 i2c: riic: Add Runtime PM support Gustavo A. R. Silva (1): i2c: mux: demux-pinctrl: use struct_size() in devm_kzalloc() Juergen Fitschen (3): i2c: at91: segregate master mode specific code from probe and init func i2c: at91: split driver into core and master file i2c: at91: added slave mode support Michael Cheng (1): i2c: iproc: Add support for more master error status Nicolas Le Bayon (1): i2c: i2c-stm32f7: improve loopback in timing algorithm Phil Edworthy (2): dt: snps,designware-i2c: Add clock bindings documentation i2c: designware: Add support for an interface clock Pu Wen (1): i2c-piix4: Add Hygon Dhyana SMBus support Qii Wang (5): i2c: mediatek: Add offsets array for new i2c registers dt-bindings: i2c: Add Mediatek MT8183 i2c binding i2c: mediatek: Add arb clock in i2c driver i2c: mediatek: Add i2c and apdma sync in i2c driver i2c: mediatek: Add i2c support for MediaTek MT8183 Ray Jui (2): dt-bindings: i2c: iproc: make 'interrupts' optional i2c: iproc: Change driver to use 'BIT' macro Rayagonda Kokatanur (4): i2c: iproc: add polling support i2c: iproc: use wrapper for read/write access dt-bindings: i2c: iproc: add "brcm, iproc-nic-i2c" compatible string i2c: iproc: add NIC I2C support Robert Shearman (3): i2c: mux: pca954x: remove support for unused platform data i2c: mux: pca9541: remove support for unused platform data i2c: mux: pca954x: allow management of device idle state via sysfs Shreesha Rajashekar (2): i2c: iproc: Extend I2C read up to 255 bytes i2c: iproc: Add slave mode support Wolfram Sang (21): i2c: rcar: sanity check for minimal DMA length i2c: rcar: let DMA enable routine return success status i2c: rcar: wait for data empty before starting DMA i2c: apply coding style for struct i2c_adapter i2c: brcmstb: remove unused struct member i2c: core: remove use of in_atomic() i2c: core: use I2C locking behaviour also for SMBUS i2c: core: introduce callbacks for atomic transfers i2c: mux: populate the new *_atomic callbacks i2c: demux: handle the new atomic callbacks i2c: omap: Add the master_xfer_atomic hook i2c: tegra-bpmp: convert to use new atomic callbacks i2c: ocores: refactor setup for polling i2c: ocores: enable atomic xfers i2c: stu300: use xfer_atomic callback to bail out early i2c: algo: bit: add flag to whitelist atomic transfers i2c: gpio: flag atomic capability if possible Merge tag 'at24-v5.2-updates-for-wolfram' of git://git.kernel.org/.../brgl/linux into i2c/for-5.2 Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-5.2 i2c: core: ratelimit 'transfer when suspended' errors i2c: core: apply 'is_suspended' check for SMBus, too with much appreciated quality assurance from ---------------------------------------------------------------- Alexander Sverdlin (1): (Rev.) i2c: axxia: use auto cmd for last message Andrew Lunn (2): (Rev.) i2c: ocores: enable atomic xfers (Rev.) i2c: ocores: refactor setup for polling Andy Shevchenko (1): (Rev.) i2c: apply coding style for struct i2c_adapter Chris Brandt (1): (Test) i2c: riic: Add Runtime PM support Geert Uytterhoeven (3): (Rev.) dt-bindings: i2c: riic: document r7s9210 support (Rev.) i2c: rcar: let DMA enable routine return success status (Rev.) i2c: rcar: sanity check for minimal DMA length Jarkko Nikula (2): (Test) i2c: designware: Add support for an interface clock (Rev.) dt: snps,designware-i2c: Add clock bindings documentation Jean Delvare (2): (Rev.) i2c-piix4: Add Hygon Dhyana SMBus support (Rev.) i2c: isch: Remove unnecessary acpi.h include Linus Walleij (2): (Rev.) i2c: gpio: flag atomic capability if possible (Rev.) i2c: stu300: use xfer_atomic callback to bail out early Matthias Brugger (5): (Rev.) i2c: mediatek: Add i2c support for MediaTek MT8183 (Rev.) i2c: mediatek: Add i2c and apdma sync in i2c driver (Rev.) i2c: mediatek: Add arb clock in i2c driver (Rev.) dt-bindings: i2c: Add Mediatek MT8183 i2c binding (Rev.) i2c: mediatek: Add offsets array for new i2c registers Mukesh Ojha (1): (Rev.) i2c: isch: Remove unnecessary acpi.h include Nicolas Boichat (3): (Rev.) i2c: mediatek: Add i2c support for MediaTek MT8183 (Rev.) i2c: mediatek: Add i2c and apdma sync in i2c driver (Rev.) i2c: mediatek: Add arb clock in i2c driver Niklas S??derlund (1): (Rev.) i2c: riic: Add Runtime PM support Peter Rosin (1): (Rev.) i2c: mux: populate the new *_atomic callbacks Pierre-Yves MORDRET (3): (Rev.) dt-bindings: i2c: stm32: update optional properties for stm32h7/stm32mp1 (Rev.) dt-bindings: i2c: stm32: remove extra spaces (Rev.) i2c: i2c-stm32f7: improve loopback in timing algorithm Rob Herring (5): (Rev.) dt-bindings: i2c: riic: document r7s9210 support (Rev.) dt-bindings: i2c: Add Mediatek MT8183 i2c binding (Rev.) dt-bindings: i2c: iproc: add "brcm, iproc-nic-i2c" compatible string (Rev.) dt-bindings: i2c: iproc: make 'interrupts' optional (Rev.) dt: snps,designware-i2c: Add clock bindings documentation Simon Horman (8): (Rev.) i2c: core: apply 'is_suspended' check for SMBus, too (Rev.) i2c: core: ratelimit 'transfer when suspended' errors (Rev.) i2c: tegra-bpmp: convert to use new atomic callbacks (Rev.) i2c: omap: Add the master_xfer_atomic hook (Rev.) i2c: apply coding style for struct i2c_adapter (Rev.) i2c: rcar: wait for data empty before starting DMA (Rev.) i2c: rcar: let DMA enable routine return success status (Rev.) i2c: rcar: sanity check for minimal DMA length Stefan Lengfeld (2): (Test) i2c: core: introduce callbacks for atomic transfers (Test) i2c: core: remove use of in_atomic() Timo Alho (1): (Rev.) i2c: tegra-bpmp: convert to use new atomic callbacks .../ABI/testing/sysfs-bus-i2c-devices-pca954x | 20 + Documentation/devicetree/bindings/eeprom/at24.txt | 1 + .../devicetree/bindings/i2c/brcm,iproc-i2c.txt | 17 +- .../devicetree/bindings/i2c/i2c-designware.txt | 9 + .../devicetree/bindings/i2c/i2c-mt65xx.txt | 5 +- Documentation/devicetree/bindings/i2c/i2c-riic.txt | 5 +- .../devicetree/bindings/i2c/i2c-stm32.txt | 37 +- Documentation/i2c/busses/i2c-amd-mp2 | 23 + Documentation/i2c/busses/i2c-piix4 | 2 + MAINTAINERS | 13 +- drivers/i2c/algos/i2c-algo-bit.c | 22 +- drivers/i2c/busses/Kconfig | 25 + drivers/i2c/busses/Makefile | 5 + drivers/i2c/busses/i2c-amd-mp2-pci.c | 483 +++++++++++++ drivers/i2c/busses/i2c-amd-mp2-plat.c | 367 ++++++++++ drivers/i2c/busses/i2c-amd-mp2.h | 219 ++++++ drivers/i2c/busses/i2c-at91-core.c | 376 ++++++++++ .../i2c/busses/{i2c-at91.c => i2c-at91-master.c} | 480 +------------ drivers/i2c/busses/i2c-at91-slave.c | 143 ++++ drivers/i2c/busses/i2c-at91.h | 174 +++++ drivers/i2c/busses/i2c-axxia.c | 57 +- drivers/i2c/busses/i2c-bcm-iproc.c | 764 +++++++++++++++++---- drivers/i2c/busses/i2c-brcmstb.c | 1 - drivers/i2c/busses/i2c-designware-common.c | 18 +- drivers/i2c/busses/i2c-designware-core.h | 2 + drivers/i2c/busses/i2c-designware-platdrv.c | 5 + drivers/i2c/busses/i2c-gpio.c | 2 + drivers/i2c/busses/i2c-imx-lpi2c.c | 11 +- drivers/i2c/busses/i2c-isch.c | 1 - drivers/i2c/busses/i2c-mt65xx.c | 255 +++++-- drivers/i2c/busses/i2c-nomadik.c | 3 +- drivers/i2c/busses/i2c-ocores.c | 16 +- drivers/i2c/busses/i2c-omap.c | 76 +- drivers/i2c/busses/i2c-piix4.c | 15 +- drivers/i2c/busses/i2c-rcar.c | 30 +- drivers/i2c/busses/i2c-riic.c | 43 +- drivers/i2c/busses/i2c-stm32f7.c | 4 + drivers/i2c/busses/i2c-stu300.c | 25 +- drivers/i2c/busses/i2c-tegra-bpmp.c | 25 +- drivers/i2c/i2c-core-base.c | 23 +- drivers/i2c/i2c-core-smbus.c | 29 +- drivers/i2c/i2c-core.h | 36 + drivers/i2c/i2c-mux.c | 6 + drivers/i2c/muxes/i2c-demux-pinctrl.c | 6 +- drivers/i2c/muxes/i2c-mux-pca9541.c | 8 +- drivers/i2c/muxes/i2c-mux-pca954x.c | 106 ++- include/linux/i2c-algo-bit.h | 1 + include/linux/i2c.h | 41 +- include/linux/platform_data/pca954x.h | 48 -- 49 files changed, 3151 insertions(+), 932 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-i2c-devices-pca954x create mode 100644 Documentation/i2c/busses/i2c-amd-mp2 create mode 100644 drivers/i2c/busses/i2c-amd-mp2-pci.c create mode 100644 drivers/i2c/busses/i2c-amd-mp2-plat.c create mode 100644 drivers/i2c/busses/i2c-amd-mp2.h create mode 100644 drivers/i2c/busses/i2c-at91-core.c rename drivers/i2c/busses/{i2c-at91.c => i2c-at91-master.c} (65%) create mode 100644 drivers/i2c/busses/i2c-at91-slave.c create mode 100644 drivers/i2c/busses/i2c-at91.h delete mode 100644 include/linux/platform_data/pca954x.h