[GIT PULL] i2c-host for v6.20

Andi Shyti
2026-01-31T03:22:34Z

Hi Wolfram,

here is the pull request for the merge window. Most of the
patches that did not make it were not ready to be merged due to
missing or pending reviews. Some were ready only very late and I
did not feel comfortable including them. For a smaller set I
simply ran out of time to follow up properly.

This pull request includes general cleanups across several
drivers, a DesignWare core refactoring to enable mode switching,
runtime PM improvements for imx-lpi2c, a new lan9691 I2C driver
and targeted fixes in rtl9300, spacemit and tegra.

I will try to collect a few more minor patches for next week, so
if it is OK with you, please expect a second part.

Thank you and I wish you a great weekend,
Andi

The following changes since commit 8f0b4cce4481fb22653697cced8d0d04027cb1e8:

Linux 6.19-rc1 (2025-12-14 16:05:07 +1200)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git tags/i2c-host-6.20

for you to fetch changes up to 51e8ce3630878fa6083e1eec84f58f49ec85089b:

i2c: designware: Remove an unnecessary condition (2026-01-22 14:43:57 +0100)

----------------------------------------------------------------
i2c-host for v6.20

- amd-mp2, designware, mlxbf, rtl9300, spacemit, tegra: cleanups
- designware: use a dedicated algorithm for AMD Navi
- designware: replace magic numbers with named constants
- designware: replace min_t() with min() to avoid u8 truncation
- designware: refactor core to enable mode switching
- imx-lpi2c: add runtime PM support for IRQ and clock handling
- lan9691-i2c: add new driver
- rtl9300: use OF helpers directly and avoid fwnode handling
- spacemit: add bus reset support
- units: add HZ_PER_GHZ and use it in several i2c drivers

----------------------------------------------------------------
Andy Shevchenko (11):
units: Add HZ_PER_GHZ
i2c: mlxbf: Use HZ_PER_GHZ constant instead of custom one
i2c: mt65xx: Use HZ_PER_GHZ constant instead of plain number
i2c: nomadik: Use HZ_PER_GHZ constant instead of plain number
i2c: rk3x: Use HZ_PER_GHZ constant instead of plain number
i2c: st: Use HZ_PER_GHZ constant instead of plain number
i2c: synquacer: Use HZ_PER_GHZ constant instead of plain number
i2c: mlxbf: Remove unused bus speed definitions
i2c: mlxbf: Use HZ_PER_KHZ in the driver
i2c: designware: Remove not-going-to-be-supported code for Baikal SoC
i2c: designware: Use device_is_compatible() instead of custom approach

Artem Shimko (1):
i2c: designware: Replace magic numbers with named constants

Benoît Monin (3):
i2c: designware: Optimize flag reading in i2c_dw_read()
i2c: designware: Sort compatible strings in alphabetical order
i2c: designware: Add dedicated algorithm for AMD NAVI

Carlos Song (1):
i2c: imx-lpi2c: Add runtime PM support for IRQ and clock management on i.MX8QXP/8QM

David Laight (1):
drivers/i2c/busses: use min() instead of min_t()

Encrow Thorne (2):
dt-bindings: i2c: spacemit: add optional resets
i2c: k1: add reset support

Guixin Liu (1):
i2c: tegra: remove unused rst

Heikki Krogerus (6):
i2c: designware: Remove useless driver specific option for I2C target
i2c: designware: Remove unnecessary function exports
i2c: designware: Combine some of the common functions
i2c: designware: Combine the init functions
i2c: designware: Enable mode swapping
i2c: designware: Remove an unnecessary condition

Johan Hovold (1):
i2c: amd-mp2: clean up amd_mp2_find_device()

Robert Marko (1):
dt-bindings: i2c: atmel,at91sam: add microchip,lan9691-i2c

Rosen Penev (2):
i2c: rtl9300: remove const cast
i2c: rtl9300: use of instead of fwnode

Troy Mitchell (1):
i2c: spacemit: drop useless spaces

Documentation/devicetree/bindings/i2c/atmel,at91sam-i2c.yaml | 1 +
Documentation/devicetree/bindings/i2c/spacemit,k1-i2c.yaml | 3 ++
drivers/i2c/busses/Kconfig | 11 ++-----
drivers/i2c/busses/Makefile | 2 +-
drivers/i2c/busses/i2c-amd-mp2-pci.c | 8 +++--
drivers/i2c/busses/i2c-designware-amdisp.c | 4 +--
drivers/i2c/busses/i2c-designware-common.c | 246 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
drivers/i2c/busses/i2c-designware-core.h | 40 ++++++++++++++---------
drivers/i2c/busses/i2c-designware-master.c | 187 ++++++++++++++++--------------------------------------------------------------------------------------------
drivers/i2c/busses/i2c-designware-platdrv.c | 72 ++----------------------------------------
drivers/i2c/busses/i2c-designware-slave.c | 127 +++++++++++--------------------------------------------------------------
drivers/i2c/busses/i2c-imx-lpi2c.c | 84 +++++++++++++++++++++++++++++++++++++++++--------
drivers/i2c/busses/i2c-k1.c | 19 +++++++----
drivers/i2c/busses/i2c-mlxbf.c | 13 ++------
drivers/i2c/busses/i2c-mt65xx.c | 11 ++++---
drivers/i2c/busses/i2c-nomadik.c | 7 +++--
drivers/i2c/busses/i2c-rk3x.c | 12 +++----
drivers/i2c/busses/i2c-rtl9300.c | 17 +++++-----
drivers/i2c/busses/i2c-st.c | 3 +-
drivers/i2c/busses/i2c-synquacer.c | 3 +-
drivers/i2c/busses/i2c-tegra.c | 2 --
include/linux/units.h | 3 ++
22 files changed, 423 insertions(+), 452 deletions(-)