Hi Wolfram, I'm a bit late with this pull request as I've been extremely busy over the last couple of weeks. I've checked the tag description multiple times to ensure it won't upset our big boss :-) I hope I've struck the right balance — descriptive but not overly so. Please feel free to suggest or recommend any changes. As I mentioned earlier, I'm slightly behind on reviews and merges. Thank you for allowing a pull request in the middle of the merge window (likely next Saturday or Sunday). In the meantime, if anyone needs me to take a closer look at anything I've missed, don't hesitate to ping me on those or reach out privately. Thank you, Andi The following changes since commit 2d5404caa8c7bb5c4e0435f94b28834ae5456623: Linux 6.12-rc7 (2024-11-10 14:19:35 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git tags/i2c-host-6.13-p1 for you to fetch changes up to 1922bc245541bd08e3282d8199c8ac703e366111: docs: i2c: piix4: Add ACPI section (2024-11-17 11:58:57 +0100) ---------------------------------------------------------------- i2c-host updates for v6.13, part 1 Improvements and Refactoring: - All controllers using the 'remove_new' callback have been reverted to use the 'remove' callback. - Makefile improvements (switched from '*-objs' to '*-y') - Intel SCH controller underwent significant refactoring: - Improved usage of private data references. - Transitioned to memory-mapped I/O functions. - Adopted 'devm' functions for resource management. - Added kernel-doc compatible comments. - Used 'const' where applicable. - Numerous smaller refinements. This brings love and a modern look to the driver. - Additional cleanups in the DesignWare driver. - PIIX4 driver updates: - Exposed functions and definitions in the header file to enable usage by other drivers (e.g., AMD ASF). - Nuvoton NPCM I2C controller: - Enhanced read/write operations and bus error (BER) flag management to address corner cases that could lead to timeouts. - Qualcomm CCI driver received several cleanups. - iMX/MXC: - Improved message handling to reduce I2C protocol overhead. - Refactored DMA/non-DMA read/write and bus polling mechanisms to achieve this. New Features: - i2c-cadence: - Added support for atomic transfers. - Refactored to group generic code into separate functions. - Qualcomm CCI: - Added support for a 32MHz serial engine clock. - Added support for: - HJMC01 DesignWare ACPI HID. - ACPI documentation for PIIX4. Deprecated Features: - Dropped support for AMD756 S4882 and NFORCE2 S4985. New Hardware Support: - Added support for: - Intel Panther Lake. - AMD ASF. - S32G2/S32G3 SoCs. - Realtek RTL I2C Controller. - New drivers: - 'i2c-amd-asf-plat.c' for AMD ASF. - 'i2c-rtl9300.c' for Realtek RTL. Fixes: - AMD ASF driver: - Fixed an uninitialised 'len' variable. Devicetree Updates: - Documented Qualcomm SDM670. - Added 'PIC64GX' compatibility to Microchip Core I2C binding. - Added support for S32G. ---------------------------------------------------------------- Andy Shevchenko (17): i2c: isch: Pass pointer to struct i2c_adapter down i2c: isch: Use string_choices API instead of ternary operator i2c: isch: Switch to memory mapped IO accessors i2c: isch: Use custom private data structure i2c: isch: switch i2c registration to devm functions i2c: isch: Utilize temporary variable to hold device pointer i2c: isch: Use read_poll_timeout() i2c: isch: Unify the name of the variable to hold an error code i2c: isch: Don't use "proxy" headers i2c: isch: Prefer to use octal permission i2c: isch: Convert to kernel-doc i2c: designware: Use temporary variable for struct device i2c: designware: Get rid of redundant 'else' i2c: designware: Remove 'cond' from i2c_dw_scl_hcnt() i2c: designware: Use sda_hold_time variable name everywhere i2c: designware: Fix spelling and other issues in the comments i2c: busses: Use *-y instead of *-objs in Makefile Bryan O'Donoghue (1): i2c: qcom-cci: Stop complaining about DT set clock rate Chris Packham (2): dt-bindings: i2c: Add Realtek RTL I2C Controller i2c: Add driver for the RTL9300 I2C controller Ciprian Marian Costea (2): dt-bindings: i2c: imx: add SoC specific compatible strings for S32G i2c: imx: add support for S32G2/S32G3 SoCs Hunter Yu (1): i2c: designware: Add a new ACPI HID for HJMC01 I2C controller Jarkko Nikula (1): i2c: i801: Add support for Intel Panther Lake Jean Delvare (1): i2c: Drop legacy muxing pseudo-drivers Jiapeng Chong (1): i2c: qcom-cci: Remove the unused variable cci_clk_rate Konstantin Aladyshev (1): docs: i2c: piix4: Add ACPI section Manikanta Guntupalli (3): i2c: cadence: Relocate cdns_i2c_runtime_suspend and cdns_i2c_runtime_resume to facilitate atomic mode i2c: cadence: Split cdns_i2c_master_xfer for Atomic Mode i2c: cadence: Add atomic transfer support for controller version 1.4 Manikanta Mylavarapu (1): i2c: qcom-geni: Support systems with 32MHz serial engine clock Pierre-Henry Moussay (1): dt-bindings: i2c: microchip: corei2c: Add PIC64GX as compatible with driver Qianqiang Liu (1): i2c: amd-asf: Fix uninitialized variables issue in amd_asf_process_target Raag Jadav (1): i2c: designware: constify abort_sources Richard Acayan (1): dt-bindings: i2c: qcom-cci: Document SDM670 compatible Shyam Sundar S K (8): i2c: piix4: Change the parameter list of piix4_transaction function i2c: piix4: Move i2c_piix4 macros and structures to common header i2c: piix4: Export i2c_piix4 driver functions as library i2c: amd-asf: Add ACPI support for AMD ASF Controller i2c: amd-asf: Add i2c_algorithm operations to support AMD ASF with SMBus i2c: amd-asf: Add routine to handle the ASF slave process i2c: amd-asf: Clear remote IRR bit to get successive interrupt MAINTAINERS: Add AMD ASF driver entry Stefan Eichenberger (3): i2c: imx: do not poll for bus busy in single master mode i2c: imx: separate atomic, dma and non-dma use case i2c: imx: prevent rescheduling in non dma mode Tyrone Ting (2): i2c: npcm: correct the read/write operation procedure i2c: npcm: use a software flag to indicate a BER condition Uwe Kleine-König (1): i2c: Switch back to struct platform_driver::remove() Vladimir Zapolskiy (1): i2c: qcom-cci: Remove unused struct member cci_clk_rate Wolfram Sang (1): i2c: qcom-geni: Keep comment why interrupts start disabled Documentation/devicetree/bindings/i2c/i2c-imx.yaml | 4 + .../devicetree/bindings/i2c/microchip,corei2c.yaml | 4 +- .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 19 + .../bindings/i2c/realtek,rtl9301-i2c.yaml | 69 ++++ Documentation/i2c/busses/i2c-i801.rst | 1 + Documentation/i2c/busses/i2c-piix4.rst | 63 +++ MAINTAINERS | 17 +- drivers/i2c/busses/Kconfig | 65 ++-- drivers/i2c/busses/Makefile | 16 +- drivers/i2c/busses/i2c-altera.c | 2 +- drivers/i2c/busses/i2c-amd-asf-plat.c | 369 ++++++++++++++++++ drivers/i2c/busses/i2c-amd-mp2-plat.c | 2 +- drivers/i2c/busses/i2c-amd756-s4882.c | 245 ------------ drivers/i2c/busses/i2c-amd756.c | 4 +- drivers/i2c/busses/i2c-aspeed.c | 2 +- drivers/i2c/busses/i2c-at91-core.c | 2 +- drivers/i2c/busses/i2c-au1550.c | 2 +- drivers/i2c/busses/i2c-axxia.c | 2 +- drivers/i2c/busses/i2c-bcm-iproc.c | 2 +- drivers/i2c/busses/i2c-bcm-kona.c | 2 +- drivers/i2c/busses/i2c-bcm2835.c | 2 +- drivers/i2c/busses/i2c-brcmstb.c | 2 +- drivers/i2c/busses/i2c-cadence.c | 425 +++++++++++++++------ drivers/i2c/busses/i2c-cbus-gpio.c | 2 +- drivers/i2c/busses/i2c-cht-wc.c | 2 +- drivers/i2c/busses/i2c-cpm.c | 2 +- drivers/i2c/busses/i2c-cros-ec-tunnel.c | 2 +- drivers/i2c/busses/i2c-davinci.c | 2 +- drivers/i2c/busses/i2c-designware-amdpsp.c | 10 +- drivers/i2c/busses/i2c-designware-common.c | 68 ++-- drivers/i2c/busses/i2c-designware-core.h | 12 +- drivers/i2c/busses/i2c-designware-master.c | 17 +- drivers/i2c/busses/i2c-designware-pcidrv.c | 39 +- drivers/i2c/busses/i2c-designware-platdrv.c | 55 ++- drivers/i2c/busses/i2c-designware-slave.c | 6 +- drivers/i2c/busses/i2c-digicolor.c | 2 +- drivers/i2c/busses/i2c-dln2.c | 2 +- drivers/i2c/busses/i2c-emev2.c | 2 +- drivers/i2c/busses/i2c-exynos5.c | 2 +- drivers/i2c/busses/i2c-gpio.c | 2 +- drivers/i2c/busses/i2c-gxp.c | 2 +- drivers/i2c/busses/i2c-highlander.c | 2 +- drivers/i2c/busses/i2c-hix5hd2.c | 2 +- drivers/i2c/busses/i2c-i801.c | 6 + drivers/i2c/busses/i2c-ibm_iic.c | 2 +- drivers/i2c/busses/i2c-img-scb.c | 2 +- drivers/i2c/busses/i2c-imx-lpi2c.c | 2 +- drivers/i2c/busses/i2c-imx.c | 409 +++++++++++++++++--- drivers/i2c/busses/i2c-iop3xx.c | 2 +- drivers/i2c/busses/i2c-isch.c | 317 +++++++-------- drivers/i2c/busses/i2c-jz4780.c | 2 +- drivers/i2c/busses/i2c-kempld.c | 2 +- drivers/i2c/busses/i2c-lpc2k.c | 2 +- drivers/i2c/busses/i2c-meson.c | 2 +- drivers/i2c/busses/i2c-microchip-corei2c.c | 2 +- drivers/i2c/busses/i2c-mlxbf.c | 2 +- drivers/i2c/busses/i2c-mlxcpld.c | 2 +- drivers/i2c/busses/i2c-mpc.c | 2 +- drivers/i2c/busses/i2c-mt65xx.c | 2 +- drivers/i2c/busses/i2c-mt7621.c | 2 +- drivers/i2c/busses/i2c-mv64xxx.c | 2 +- drivers/i2c/busses/i2c-mxs.c | 2 +- drivers/i2c/busses/i2c-nforce2-s4985.c | 240 ------------ drivers/i2c/busses/i2c-nforce2.c | 16 - drivers/i2c/busses/i2c-npcm7xx.c | 24 +- drivers/i2c/busses/i2c-ocores.c | 2 +- drivers/i2c/busses/i2c-octeon-platdrv.c | 2 +- drivers/i2c/busses/i2c-omap.c | 2 +- drivers/i2c/busses/i2c-opal.c | 2 +- drivers/i2c/busses/i2c-pasemi-platform.c | 2 +- drivers/i2c/busses/i2c-pca-platform.c | 2 +- drivers/i2c/busses/i2c-piix4.c | 51 +-- drivers/i2c/busses/i2c-piix4.h | 44 +++ drivers/i2c/busses/i2c-pnx.c | 2 +- drivers/i2c/busses/i2c-powermac.c | 2 +- drivers/i2c/busses/i2c-pxa.c | 2 +- drivers/i2c/busses/i2c-qcom-cci.c | 23 +- drivers/i2c/busses/i2c-qcom-geni.c | 27 +- drivers/i2c/busses/i2c-qup.c | 2 +- drivers/i2c/busses/i2c-rcar.c | 2 +- drivers/i2c/busses/i2c-riic.c | 2 +- drivers/i2c/busses/i2c-rk3x.c | 2 +- drivers/i2c/busses/i2c-rtl9300.c | 423 ++++++++++++++++++++ drivers/i2c/busses/i2c-rzv2m.c | 2 +- drivers/i2c/busses/i2c-s3c2410.c | 2 +- drivers/i2c/busses/i2c-scmi.c | 2 +- drivers/i2c/busses/i2c-sh7760.c | 2 +- drivers/i2c/busses/i2c-sh_mobile.c | 2 +- drivers/i2c/busses/i2c-simtec.c | 2 +- drivers/i2c/busses/i2c-sprd.c | 2 +- drivers/i2c/busses/i2c-st.c | 2 +- drivers/i2c/busses/i2c-stm32f4.c | 2 +- drivers/i2c/busses/i2c-stm32f7.c | 2 +- drivers/i2c/busses/i2c-sun6i-p2wi.c | 2 +- drivers/i2c/busses/i2c-synquacer.c | 2 +- drivers/i2c/busses/i2c-tegra-bpmp.c | 2 +- drivers/i2c/busses/i2c-tegra.c | 2 +- drivers/i2c/busses/i2c-uniphier-f.c | 2 +- drivers/i2c/busses/i2c-uniphier.c | 2 +- drivers/i2c/busses/i2c-versatile.c | 2 +- drivers/i2c/busses/i2c-viai2c-wmt.c | 2 +- drivers/i2c/busses/i2c-viperboard.c | 2 +- drivers/i2c/busses/i2c-xgene-slimpro.c | 2 +- drivers/i2c/busses/i2c-xiic.c | 2 +- drivers/i2c/busses/i2c-xlp9xx.c | 2 +- drivers/i2c/busses/scx200_acb.c | 2 +- drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 2 +- drivers/i2c/muxes/i2c-demux-pinctrl.c | 2 +- drivers/i2c/muxes/i2c-mux-gpio.c | 2 +- drivers/i2c/muxes/i2c-mux-gpmux.c | 2 +- drivers/i2c/muxes/i2c-mux-mlxcpld.c | 2 +- drivers/i2c/muxes/i2c-mux-pinctrl.c | 2 +- drivers/i2c/muxes/i2c-mux-reg.c | 2 +- 113 files changed, 2116 insertions(+), 1136 deletions(-) create mode 100644 Documentation/devicetree/bindings/i2c/realtek,rtl9301-i2c.yaml create mode 100644 drivers/i2c/busses/i2c-amd-asf-plat.c delete mode 100644 drivers/i2c/busses/i2c-amd756-s4882.c delete mode 100644 drivers/i2c/busses/i2c-nforce2-s4985.c create mode 100644 drivers/i2c/busses/i2c-piix4.h create mode 100644 drivers/i2c/busses/i2c-rtl9300.c