Hi, The Renesas RZ/V2M SoC (r9a09g011) has a new i2c controller. This series add the driver. One annoying problem is that the SoC uses a single reset line for two i2c controllers, and unfortunately one of the controllers is managed by some firmware, not by Linux. Therefore, the driver just deasserts the reset. v4: - Multiline comment fix - Use GENMASK - Fix too many parentheses - Better use of sizeof() - Move MODULE_DEVICE_TABLE close to use - Use pm_runtime_resume_and_get() and check return val - Replace NOIRQ_SYSTEM_SLEEP_PM_OPS with SYSTEM_SLEEP_PM_OPS so we can use runtime PM in suspend and resume. v3: - dt-binding: Fix example indentation driver: - Lots of small fixes based on Andy Shevchenko's review - Use devm_reset_control_get_shared() instead of devm_reset_control_get() v2: dt-binding: - Use an enum and set the default for clock-frequency - Add resets property driver: - Use the new NOIRQ_SYSTEM_SLEEP_PM_OPS() as suggested by Arnd - Lots of small fixes based on Geert's review Phil Edworthy (2): dt-bindings: i2c: Document RZ/V2M I2C controller i2c: Add Renesas RZ/V2M controller .../bindings/i2c/renesas,rzv2m.yaml | 80 +++ drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-rzv2m.c | 533 ++++++++++++++++++ 4 files changed, 624 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/renesas,rzv2m.yaml create mode 100644 drivers/i2c/busses/i2c-rzv2m.c -- 2.34.1