[GIT PULL] i2c for v7.2

From: Andi Shyti

Date: Mon Jun 15 2026 - 06:54:43 EST


Hi Linus,

this is my first pull request sent to you, and I hope I have
learned enough from Wolfram over the years not to make a mess of
things.

The branch is still called "i2c-host"; for the next cycle I will
rename it to simply "i2c".

This pull request is mostly made of cleanups and small
infrastructure improvements across the I2C core, drivers and
bindings. It also adds support for three drivers and a few new
compatibles.

This is only part 1 of the pull request. I am planning a second
one for the middle of the merge window with a few fixes, some
patches with dependencies that have been tested anyway and a
handful of small outstanding changes.

Thank you,
Andi

The following changes since commit 254f49634ee16a731174d2ae34bc50bd5f45e731:

Linux 7.1-rc1 (2026-04-26 14:19:00 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git tags/i2c-7.2-part1

for you to fetch changes up to 90220ddfa8e2c93e26af2cd51d6158ca2243c622:

i2c: mxs: add missing kernel-doc for struct mxs_i2c_dev members (2026-06-10 23:10:34 +0200)

----------------------------------------------------------------
i2c for v7.2

Two major cleanup across drivers and core code:
- use named initializers in device ID tables
- replace dev_err() with dev_err_probe()

Drivers:
- at24: use named initializers for arrays of i2c_device_data
- at91: add MCHP_LAN966X_PCI dependency
- cadence: add shutdown callback
- k1: enable by default on SpacemiT
- mxs: improve documentation
- qcom-geni: use pm_runtime_force_suspend/resume for system sleep
- tegra:
- disable fair arbitration on non-MCTP buses
- allocate DMA buffers from the correct DMA device
- designware:
- handle active target shutdown cleanly
- add shutdown callbacks for platform and PCI drivers
- adopt the new PM_RUNTIME_ACQUIRE() helpers

DT bindings:
- convert davinci bindings to DT schema

Core and muxes:
- acpi: report missing I2C resources as -ENOENT
- gpiolib: add gpiod_is_single_ended() helper for I2C GPIO users
- i2c-mux-reg: add generic firmware node support
- a set of 10 patches from Johan Hovold fixing adapter
registration races, cleanup paths and resource management
issues

New support:
- DesignWare LECA0003 (ACPI ID)
- Loongson LS2K0300 I2C controller (new driver)
- Qualcomm CCI Glymur and Shikra compatibles

----------------------------------------------------------------
Abdurrahman Hussain (1):
i2c: mux: reg: use device property accessors

Ajay Neeli (1):
i2c: cadence: Add shutdown handler

Akhil R (2):
i2c: tegra: use dmaengine_get_dma_device() for DMA buffer allocation
i2c: tegra: Disable fair arbitration for non-MCTP buses

Andi Shyti (3):
Merge tag 'ib-gpio-add-gpiod-is-single-ended-for-v7.2' into i2c/i2c-host
Merge tag 'at24-updates-for-v7.2-rc1' into i2c/i2c-host
Merge remote-tracking branch 'wsa/i2c/fix-registration' into i2c/i2c-host

Andy Shevchenko (1):
i2c: acpi: Return -ENOENT when no resources found in i2c_acpi_client_count()

Binbin Zhou (2):
dt-bindings: i2c: loongson,ls2x: Add ls2k0300-i2c compatible
i2c: ls2x-v2: Add driver for Loongson-2K0300 I2C controller

Chaitanya Sabnis (1):
dt-bindings: i2c: convert davinci i2c to dt-schema

Enrico Zanda (10):
i2c: tiny-usb: Replace dev_err() with dev_err_probe() in probe function
i2c: tegra: Replace dev_err() with dev_err_probe() in probe function
i2c: sun6i-p2wi: Replace dev_err() with dev_err_probe() in probe function
i2c: stm32f7: Replace dev_err() with dev_err_probe() in probe function
i2c: stm32f4: Replace dev_err() with dev_err_probe() in probe function
i2c: stm32: Replace dev_err() with dev_err_probe() in probe function
i2c: st: Replace dev_err() with dev_err_probe() in probe function
i2c: sprd: Replace dev_err() with dev_err_probe() in probe function
i2c: sis96x: Replace dev_err() with dev_err_probe() in probe function
i2c: sis630: Replace dev_err() with dev_err_probe() in probe function

Herve Codina (1):
i2c: at91: Add MCHP_LAN966X_PCI dependency

Iker Pedrosa (1):
i2c: busses: make K1 driver default for SpacemiT platforms

Jie Li (1):
gpiolib: add gpiod_is_single_ended() helper

Johan Hovold (10):
i2c: core: fix irq domain leak on adapter registration failure
i2c: core: fix hang on adapter registration failure
i2c: core: fix NULL-deref on adapter registration failure
i2c: core: fix adapter probe deferral loop
i2c: core: fix adapter debugfs creation
i2c: core: disable runtime PM on adapter registration failure
i2c: core: fix adapter registration race
i2c: core: fix adapter deregistration race
i2c: core: clean up bus id allocation
i2c: core: clean up adapter registration error label

Nihal Kumar Gupta (2):
dt-bindings: i2c: qcom-cci: Document Shikra compatible
dt-bindings: i2c: qcom-cci: Document Glymur compatible

Praveen Talari (1):
i2c: qcom-geni: Use pm_runtime_force_{suspend,resume} helpers

Rosen Penev (1):
i2c: mxs: add missing kernel-doc for struct mxs_i2c_dev members

Stepan Ionichev (1):
i2c: bcm-kona: fix spelling mistake in timeout-check comment

Thomas Lin (1):
i2c: designware: Add ACPI ID LECA0003 for LECARC SoCs

Uwe Kleine-König (The Capable Hub) (5):
eeprom: at24: Use named initializers for arrays of i2c_device_data
i2c: icy: Use named initializer for zorro_device_id arrays
i2c: Use named initializers for arrays of i2c_device_data
i2c: designware-pcidrv: Consistently define pci_device_ids using named initializers
i2c: eg20t: Consistently define pci_device_ids using named initializers

William A. Kennington III (4):
i2c: designware: Introduce shutdown exported function
i2c: designware: Convert PCI driver to use shutdown hook
i2c: designware: Convert platform driver to use shutdown hook
i2c: designware: Handle active target cleanly

Xueqin Luo (1):
i2c: designware: Use PM_RUNTIME_ACQUIRE()/PM_RUNTIME_ACQUIRE_ERR()

Documentation/devicetree/bindings/i2c/i2c-davinci.txt | 43 ------
Documentation/devicetree/bindings/i2c/loongson,ls2x-i2c.yaml | 4 +
Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml | 4 +
Documentation/devicetree/bindings/i2c/ti,davinci-i2c.yaml | 70 ++++++++++
MAINTAINERS | 3 +-
drivers/acpi/acpi_apd.c | 7 +
drivers/gpio/gpiolib.c | 22 +++
drivers/i2c/busses/Kconfig | 14 +-
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-bcm-kona.c | 2 +-
drivers/i2c/busses/i2c-cadence.c | 20 +++
drivers/i2c/busses/i2c-designware-common.c | 36 ++++-
drivers/i2c/busses/i2c-designware-core.h | 1 +
drivers/i2c/busses/i2c-designware-master.c | 31 ++--
drivers/i2c/busses/i2c-designware-pcidrv.c | 92 ++++++------
drivers/i2c/busses/i2c-designware-platdrv.c | 15 ++
drivers/i2c/busses/i2c-eg20t.c | 10 +-
drivers/i2c/busses/i2c-icy.c | 4 +-
drivers/i2c/busses/i2c-ls2x-v2.c | 544 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/i2c/busses/i2c-mxs.c | 8 ++
drivers/i2c/busses/i2c-qcom-geni.c | 24 ++--
drivers/i2c/busses/i2c-sis630.c | 31 ++--
drivers/i2c/busses/i2c-sis96x.c | 30 ++--
drivers/i2c/busses/i2c-sprd.c | 13 +-
drivers/i2c/busses/i2c-st.c | 34 ++---
drivers/i2c/busses/i2c-stm32.c | 4 +-
drivers/i2c/busses/i2c-stm32f4.c | 53 +++----
drivers/i2c/busses/i2c-stm32f7.c | 78 ++++-------
drivers/i2c/busses/i2c-sun6i-p2wi.c | 55 +++-----
drivers/i2c/busses/i2c-tegra.c | 37 ++++-
drivers/i2c/busses/i2c-tiny-usb.c | 5 +-
drivers/i2c/i2c-core-acpi.c | 7 +-
drivers/i2c/i2c-core-base.c | 177 +++++++++++++----------
drivers/i2c/i2c-slave-eeprom.c | 16 +--
drivers/i2c/i2c-slave-testunit.c | 2 +-
drivers/i2c/i2c-smbus.c | 2 +-
drivers/i2c/muxes/i2c-mux-ltc4306.c | 4 +-
drivers/i2c/muxes/i2c-mux-pca9541.c | 4 +-
drivers/i2c/muxes/i2c-mux-pca954x.c | 36 ++---
drivers/i2c/muxes/i2c-mux-reg.c | 90 +++++-------
drivers/misc/eeprom/at24.c | 62 ++++----
include/linux/gpio/consumer.h | 5 +
42 files changed, 1200 insertions(+), 500 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-davinci.txt
create mode 100644 Documentation/devicetree/bindings/i2c/ti,davinci-i2c.yaml
create mode 100644 drivers/i2c/busses/i2c-ls2x-v2.c