[PULL REQUEST] i2c for 5.8

From: Wolfram Sang
Date: Sat Jun 13 2020 - 07:33:40 EST


Linus,

I2C has quite some patches for you this time. I hope it is the move to
per-driver-maintainers which is now showing results. We will see.

Big news is two new drivers (Nuvoton NPCM and Qualcomm CCI), larger
refactoring of the Designware, Tegra, and PXA drivers, the Cadence
driver supports being a slave now, and there is support to
instanciate SPD eeproms for well-known cases (which will be user-visible
because the i801 driver supports it), and some
devm_platform_ioremap_resource() conversions which blow up the diffstat.

Note that I applied the Nuvoton driver quite late, so some minor fixup patches
arrived during the merge window. I chose to apply them right away
because they were trivial.

Please pull.

Thanks,

Wolfram


The following changes since commit 0e698dfa282211e414076f9dc7e83c1c288314fd:

Linux 5.7-rc4 (2020-05-03 14:56:04 -0700)

are available in the Git repository at:

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

for you to fetch changes up to d790eeb3db6aefac39ffa06e598eb31b7352ca4f:

i2c: Drop stray comma in MODULE_AUTHOR statements (2020-06-11 12:32:14 +0200)

----------------------------------------------------------------
Adam Honse (1):
i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets

Aishwarya R (1):
i2c: powermac: Simplify reading the "reg" and "i2c-address" property

Aishwarya Ramakrishnan (1):
i2c: nvidia-gpu: Use PTR_ERR_OR_ZERO() to simplify code

Alain Volmat (3):
dt-bindings: i2c: i2c-stm32f7: allow clock-frequency range
i2c: stm32f7: allows for any bus frequency
i2c: fix missing pm_runtime_put_sync in i2c_device_probe

Andy Shevchenko (17):
i2c: mux: pca954x: Refactor pca954x_irq_handler()
i2c: mux: pca954x: Make use of device properties
i2c: mux: pca954x: Move device_remove_file() out of pca954x_cleanup()
i2c: mux: pca954x: Convert license to SPDX identifier
i2c: designware: Use devm_platform_ioremap_resource() to simplify code
i2c: designware: Move configuration routines to respective modules
i2c: designware: Switch PCI driver to use i2c_dw_configure_master()
i2c: designware: Rename i2c_dw_probe() to i2c_dw_probe_master()
i2c: designware: Allow slave mode for PCI enumerated devices
i2c: designware: Get rid of PCI driver specifics in common code
i2c: designware: Include proper headers in i2c-desingware-core.h
i2c: designware: Move i2c_dw_validate_speed() helper to a common code
i2c: designware: Drop unneeded condition in i2c_dw_validate_speed()
i2c: designware: Move ACPI parts into common module
i2c: designware: Read counters from ACPI for PCI driver
i2c: designware: Drop hard coded FIFO depth assignment
i2c: acpi: Drop double check for ACPI companion device

Atsushi Nemoto (2):
i2c: altera: Fix race between xfer_msg and isr thread
i2c: altera: cleanup spinlock

Bibby Hsieh (2):
dt-binding: i2c: add bus-supply property
i2c: core: support bus regulator controlling in adapter

BjÃrn Ardà (1):
i2c: slave-eeprom: Make it possible to pre-load eeprom data

Christophe JAILLET (1):
i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()'

Codrin Ciubotariu (2):
i2c: at91: Send bus clear command if SDA is down
i2c: at91: Fix pinmux after devm_gpiod_get() for bus recovery

Dan Carpenter (2):
i2c: stm32f7: prevent array underflow in stm32f7_get_lower_rate()
i2c: npcm7xx: Fix a couple of error codes in probe

Dave Stevenson (1):
i2c: brcmstb: Fix handling of optional interrupt

Dejin Zheng (3):
i2c: busses: convert to devm_platform_ioremap_resource
i2c: busses: convert to devm_platform_get_and_ioremap_resource
i2c: busses: remove duplicate dev_err()

Dmitry Osipenko (2):
i2c: tegra: Better handle case where CPU0 is busy for a long time
i2c: tegra: Synchronize DMA before termination

Etienne Carriere (1):
i2c: stm32: don't print an error on probe deferral

Fabrice Gasnier (1):
i2c: i2c-stm32f7: improve nack debug message

Geert Uytterhoeven (1):
i2c: i801: Use GPIO_LOOKUP() helper macro

Gustavo A. R. Silva (2):
i2c: mux: Replace zero-length array with flexible-array
i2c: npcm7xx: Remove unnecessary parentheses

Jason Yan (2):
i2c: qup: remove unneeded conversion to bool
i2c: powermac: use true,false for bool variable

Jean Delvare (3):
i2c: smbus: Add a way to instantiate SPD EEPROMs automatically
i2c: i801: Instantiate SPD EEPROMs automatically
i2c: Drop stray comma in MODULE_AUTHOR statements

Loic Poulain (1):
i2c: Add Qualcomm CCI I2C driver

Lubomir Rintel (1):
i2c: pxa: don't error out if there's no pinctrl

Max Staudt (1):
i2c: icy: Fix build with CONFIG_AMIGA_PCMCIA=n

Maxime Ripard (1):
i2c: brcmstb: Allow to compile it on BCM2835

Qii Wang (2):
MAINTAINERS: add maintainer for mediatek i2c controller driver
i2c: mediatek: Add i2c ac-timing adjust support

Radu Pirea (1):
i2c: cadence: Added slave support

Rayagonda Kokatanur (1):
i2c: iproc: add support for SMBUS quick cmd

Russell King (19):
i2c: pxa: use official address byte helper
i2c: pxa: remove unneeded includes
i2c: pxa: re-arrange includes to be in alphabetical order
i2c: pxa: re-arrange functions to flow better
i2c: pxa: re-arrange register field definitions
i2c: pxa: add and use definitions for IBMR register
i2c: pxa: always set fm and hs members for each type
i2c: pxa: move private definitions to i2c-pxa.c
i2c: pxa: move DT IDs along side platform IDs
i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
i2c: pxa: clean up decode_bits()
i2c: pxa: fix i2c_pxa_wait_bus_not_busy() boundary condition
i2c: pxa: consolidate i2c_pxa_*xfer() implementations
i2c: pxa: avoid complaints with non-responsive slaves
i2c: pxa: ensure timeout messages are unique
i2c: pxa: remove some unnecessary debug
i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
i2c: pxa: use master-abort for device probes
i2c: pxa: implement generic i2c bus recovery

Serge Semin (11):
dt-bindings: i2c: Convert DW I2C binding to DT schema
dt-bindings: i2c: Convert DW I2C slave to the DW I2C master example
dt-bindings: i2c: dw: Add Baikal-T1 SoC I2C controller
i2c: designware: Use `-y` to build multi-object modules
i2c: designware: slave: Set DW I2C core module dependency
i2c: designware: Add Baytrail sem config DW I2C platform dependency
i2c: designware: Discard Cherry Trail model flag
i2c: designware: Convert driver to using regmap API
i2c: designware: Retrieve quirk flags as early as possible
i2c: designware: Move reg-space remapping into a dedicated function
i2c: designware: Add Baikal-T1 System I2C support

Tali Perry (4):
dt-bindings: i2c: npcm7xx: add NPCM I2C controller
i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver
i2c: npcm7xx: Add support for slave mode for Nuvoton
MAINTAINERS: npcm7xx: Add maintainer for Nuvoton NPCM BMC

Tang Bin (2):
i2c: efm32: Omit superfluous error message in efm32_i2c_probe()
i2c: efm32: Avoid unnecessary check in efm32_i2c_probe()

Thierry Reding (5):
Revert "i2c: tegra: Fix suspending in active runtime PM state"
i2c: tegra: Restore pinmux on system resume
i2c: tegra: Keep IRQs enabled during suspend/resume
i2c: tegra: Use FIELD_PREP/FIELD_GET macros
i2c: tegra: Add support for the VI I2C on Tegra210

Todor Tomov (1):
dt-bindings: i2c: Add binding for Qualcomm CCI I2C controller

Viresh Kumar (1):
i2c: sh_mobile: simplify code and remove false compilation warning

Wan Ahmad Zainie (2):
i2c: designware: Calculate SCL timing parameter for Fast Mode Plus
i2c: designware: Calculate SCL timing parameter for High Speed Mode

Wolfram Sang (16):
i2c: refactor parsing of timings
i2c: regroup documentation of bindings
platform/mellanox: mlxreg-hotplug: convert to use i2c_new_client_device()
i2c: use my kernel.org address from now on
i2c: algo-pca: update contact email
i2c: slave-eeprom: add support for 24c512 EEPROMs
i2c: reword explanation about atomic transfers
Merge branch 'i2c/for-current-fixed' into i2c/for-5.8
Merge tag 'for-5.8-i2c' of git://git.kernel.org/.../tegra/linux into i2c/for-5.8
Revert "i2c: core: support bus regulator controlling in adapter"
Revert "dt-binding: i2c: add bus-supply property"
i2c: save a variable in i2c_detect()
i2c: slave-eeprom: skip useless initialization
i2c: slave-eeprom: update documentation to recent changes
i2c: avoid confusing naming in header
i2c: add 'single-master' property to generic bindings

kernel test robot (1):
i2c: npcm7xx: npcm_i2caddr[] can be static


with much appreciated quality assurance from
----------------------------------------------------------------
Ajay Gupta (1):
(Rev.) i2c: nvidia-gpu: Use PTR_ERR_OR_ZERO() to simplify code

Alain Volmat (1):
(Rev.) i2c: stm32f7: prevent array underflow in stm32f7_get_lower_rate()

Andrew Lunn (1):
(Rev.) i2c: pxa: implement generic i2c bus recovery

Andy Shevchenko (11):
(Rev.) i2c: npcm7xx: Add support for slave mode for Nuvoton
(Rev.) i2c: npcm7xx: Add Nuvoton NPCM I2C controller driver
(Rev.) i2c: designware: Add Baikal-T1 System I2C support
(Rev.) i2c: designware: Move reg-space remapping into a dedicated function
(Rev.) i2c: designware: Retrieve quirk flags as early as possible
(Rev.) i2c: designware: Convert driver to using regmap API
(Rev.) i2c: designware: Discard Cherry Trail model flag
(Rev.) i2c: designware: Add Baytrail sem config DW I2C platform dependency
(Rev.) i2c: busses: remove duplicate dev_err()
(Rev.) i2c: designware: Calculate SCL timing parameter for High Speed Mode
(Rev.) i2c: designware: Calculate SCL timing parameter for Fast Mode Plus

Barry Song (1):
(Rev.) i2c: busses: convert to devm_platform_ioremap_resource

Bjorn Andersson (3):
(Rev.) i2c: qup: remove unneeded conversion to bool
(Rev.) i2c: Add Qualcomm CCI I2C driver
(Rev.) i2c: busses: convert to devm_platform_ioremap_resource

Erhard Furtner (1):
(Test) i2c: powermac: Simplify reading the "reg" and "i2c-address" property

Jarkko Nikula (3):
(Rev.) i2c: Drop stray comma in MODULE_AUTHOR statements
(Test) i2c: designware: Convert driver to using regmap API
(Rev.) i2c: fix missing pm_runtime_put_sync in i2c_device_probe

Jean Delvare (2):
(Rev.) i2c: i801: Use GPIO_LOOKUP() helper macro
(Rev.) i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets

Patrick Williams (1):
(Rev.) i2c: slave-eeprom: add support for 24c512 EEPROMs

Peter Rosin (5):
(Rev.) i2c: mux: Replace zero-length array with flexible-array
(Rev.) i2c: mux: pca954x: Convert license to SPDX identifier
(Rev.) i2c: mux: pca954x: Move device_remove_file() out of pca954x_cleanup()
(Rev.) i2c: mux: pca954x: Make use of device properties
(Rev.) i2c: mux: pca954x: Refactor pca954x_irq_handler()

Pierre-Yves MORDRET (3):
(Rev.) i2c: stm32f7: allows for any bus frequency
(Rev.) i2c: stm32: don't print an error on probe deferral
(Rev.) i2c: i2c-stm32f7: improve nack debug message

Rob Herring (8):
(Rev.) dt-bindings: i2c: npcm7xx: add NPCM I2C controller
(Rev.) i2c: add 'single-master' property to generic bindings
(Rev.) dt-bindings: i2c: dw: Add Baikal-T1 SoC I2C controller
(Rev.) dt-bindings: i2c: Convert DW I2C slave to the DW I2C master example
(Rev.) dt-bindings: i2c: Convert DW I2C binding to DT schema
(Rev.) i2c: regroup documentation of bindings
(Rev.) dt-bindings: i2c: i2c-stm32f7: allow clock-frequency range
(Rev.) dt-bindings: i2c: Add binding for Qualcomm CCI I2C controller

Robert Foss (2):
(Test) i2c: Add Qualcomm CCI I2C driver
(Rev.) dt-bindings: i2c: Add binding for Qualcomm CCI I2C controller

Sebastian Reichel (2):
(Rev.) i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
(Test) i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets

Thor Thayer (1):
(Rev.) i2c: altera: cleanup spinlock

Tomasz Figa (1):
(Rev.) i2c: core: support bus regulator controlling in adapter

Wolfram Sang (1):
(Test) i2c: sh_mobile: simplify code and remove false compilation warning

.mailmap | 2 +
.../devicetree/bindings/i2c/i2c-designware.txt | 73 -
.../devicetree/bindings/i2c/i2c-qcom-cci.txt | 92 +
Documentation/devicetree/bindings/i2c/i2c.txt | 73 +-
.../bindings/i2c/nuvoton,npcm7xx-i2c.yaml | 62 +
.../bindings/i2c/snps,designware-i2c.yaml | 156 ++
.../devicetree/bindings/i2c/st,stm32-i2c.yaml | 8 +-
MAINTAINERS | 10 +-
drivers/i2c/algos/i2c-algo-pca.c | 2 +-
drivers/i2c/busses/Kconfig | 60 +-
drivers/i2c/busses/Makefile | 19 +-
drivers/i2c/busses/i2c-altera.c | 30 +-
drivers/i2c/busses/i2c-at91-core.c | 2 +
drivers/i2c/busses/i2c-at91-master.c | 69 +-
drivers/i2c/busses/i2c-at91.h | 7 +-
drivers/i2c/busses/i2c-axxia.c | 8 +-
drivers/i2c/busses/i2c-bcm-iproc.c | 10 +-
drivers/i2c/busses/i2c-bcm-kona.c | 7 +-
drivers/i2c/busses/i2c-brcmstb.c | 20 +-
drivers/i2c/busses/i2c-cadence.c | 323 ++-
drivers/i2c/busses/i2c-cht-wc.c | 6 +-
drivers/i2c/busses/i2c-davinci.c | 4 +-
drivers/i2c/busses/i2c-designware-common.c | 327 ++-
drivers/i2c/busses/i2c-designware-core.h | 75 +-
drivers/i2c/busses/i2c-designware-master.c | 192 +-
drivers/i2c/busses/i2c-designware-pcidrv.c | 86 +-
drivers/i2c/busses/i2c-designware-platdrv.c | 276 +--
drivers/i2c/busses/i2c-designware-slave.c | 88 +-
drivers/i2c/busses/i2c-digicolor.c | 4 +-
drivers/i2c/busses/i2c-efm32.c | 4 -
drivers/i2c/busses/i2c-emev2.c | 4 +-
drivers/i2c/busses/i2c-exynos5.c | 8 +-
drivers/i2c/busses/i2c-hix5hd2.c | 4 +-
drivers/i2c/busses/i2c-i801.c | 12 +-
drivers/i2c/busses/i2c-icy.c | 1 +
drivers/i2c/busses/i2c-img-scb.c | 8 +-
drivers/i2c/busses/i2c-imx-lpi2c.c | 4 +-
drivers/i2c/busses/i2c-jz4780.c | 4 +-
drivers/i2c/busses/i2c-lpc2k.c | 8 +-
drivers/i2c/busses/i2c-meson.c | 8 +-
drivers/i2c/busses/i2c-mt65xx.c | 329 ++-
drivers/i2c/busses/i2c-mv64xxx.c | 4 +-
drivers/i2c/busses/i2c-npcm7xx.c | 2342 ++++++++++++++++++++
drivers/i2c/busses/i2c-nvidia-gpu.c | 5 +-
drivers/i2c/busses/i2c-octeon-platdrv.c | 4 +-
drivers/i2c/busses/i2c-omap.c | 4 +-
drivers/i2c/busses/i2c-owl.c | 8 +-
drivers/i2c/busses/i2c-pca-platform.c | 3 +-
drivers/i2c/busses/i2c-piix4.c | 3 +-
drivers/i2c/busses/i2c-pnx.c | 1 -
drivers/i2c/busses/i2c-powermac.c | 18 +-
drivers/i2c/busses/i2c-pxa.c | 870 +++++---
drivers/i2c/busses/i2c-qcom-cci.c | 791 +++++++
drivers/i2c/busses/i2c-qup.c | 18 +-
drivers/i2c/busses/i2c-rcar.c | 4 +-
drivers/i2c/busses/i2c-rk3x.c | 8 +-
drivers/i2c/busses/i2c-s3c2410.c | 2 +-
drivers/i2c/busses/i2c-sh_mobile.c | 7 +-
drivers/i2c/busses/i2c-sirf.c | 4 +-
drivers/i2c/busses/i2c-sprd.c | 4 +-
drivers/i2c/busses/i2c-stm32.c | 10 +-
drivers/i2c/busses/i2c-stm32f4.c | 4 +-
drivers/i2c/busses/i2c-stm32f7.c | 138 +-
drivers/i2c/busses/i2c-stu300.c | 4 +-
drivers/i2c/busses/i2c-sun6i-p2wi.c | 8 +-
drivers/i2c/busses/i2c-synquacer.c | 8 +-
drivers/i2c/busses/i2c-tegra.c | 248 ++-
drivers/i2c/busses/i2c-uniphier-f.c | 4 +-
drivers/i2c/busses/i2c-uniphier.c | 4 +-
drivers/i2c/busses/i2c-xlp9xx.c | 8 +-
drivers/i2c/busses/i2c-xlr.c | 4 +-
drivers/i2c/busses/i2c-zx2967.c | 4 +-
drivers/i2c/i2c-core-acpi.c | 6 +-
drivers/i2c/i2c-core-base.c | 96 +-
drivers/i2c/i2c-core-of.c | 2 +-
drivers/i2c/i2c-core.h | 6 +-
drivers/i2c/i2c-slave-eeprom.c | 39 +-
drivers/i2c/i2c-smbus.c | 104 +-
drivers/i2c/muxes/i2c-demux-pinctrl.c | 1 +
drivers/i2c/muxes/i2c-mux-pca954x.c | 44 +-
drivers/platform/mellanox/mlxreg-hotplug.c | 11 +-
include/linux/i2c-mux.h | 2 +-
include/linux/i2c-smbus.h | 8 +-
include/linux/i2c.h | 10 +-
include/linux/platform_data/i2c-pxa.h | 48 -
85 files changed, 5962 insertions(+), 1444 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-designware.txt
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
create mode 100644 Documentation/devicetree/bindings/i2c/nuvoton,npcm7xx-i2c.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/snps,designware-i2c.yaml
create mode 100644 drivers/i2c/busses/i2c-npcm7xx.c
create mode 100644 drivers/i2c/busses/i2c-qcom-cci.c

Attachment: signature.asc
Description: PGP signature