This is a new iteration of the Congatec Board Controller series. For the MFD driver, the main change is the use of platform_device_register_simple() which makes the code smaller. For the GPIO driver the main change is the use of guard() and scope_gard(). For the I2C bus driver, the I2C_FUNC_SMBUS_QUICK flag was unset as the controller doesn't support smbus quick accesses. For the Watchdog driver, min_timeout and max_timeout are configured now, and watchdog_init_timeout() is used to initialize the timeout. More details in the changelog. Best Regards, Thomas Signed-off-by: Thomas Richard <thomas.richard@xxxxxxxxxxx> --- Changes in v2: - mfd: use platform_device_register_simple(), so struct cgbc_platform_data and cgbc_create_platform_device() were removed. - mfd: rename cgbc_detect_device() to cgbc_wait_device(). - mfd: remove the useless abstracted function cgbc_command(). - mfd: set the release session message as warning instead of error. - mfd: minor fixes (sort includes, add comments, fix some alignments and nit ...). - gpio: use scoped_guard() and guard(). - gpio: use devm_mutex_init(). - i2c: unset the I2C_FUNC_SMBUS_QUICK flag as smbus quick accesses are not supported by the controller. - i2c: rephrase comment for read_maxtime_us. - i2c: set the invalid frequency message as an info (previously a warning). - i2c: other minor fixes (sort includes, fix name of i2c_state enum). - watchdog: add missing includes. - watchdog: remove warning for the pretimeout. - watchdog: remove timeout_action and pretimeout_action (ACTION_RESET and ACTION_SMI are directly used in cgbc_wdt_start()). - watchdog: set max_timeout and min_timeout. - watchdog: use watchdog_init_timeout() to set the timeout. - Link to v1: https://lore.kernel.org/r/20240503-congatec-board-controller-v1-0-fec5236270e7@xxxxxxxxxxx --- Thomas Richard (5): mfd: add Congatec Board Controller mfd driver gpio: Congatec Board Controller gpio driver i2c: Congatec Board Controller i2c bus driver watchdog: Congatec Board Controller watchdog timer driver MAINTAINERS: Add entry for Congatec Board Controller MAINTAINERS | 9 + drivers/gpio/Kconfig | 10 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-cgbc.c | 196 ++++++++++++++++++++ drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-cgbc.c | 406 +++++++++++++++++++++++++++++++++++++++++ drivers/mfd/Kconfig | 12 ++ drivers/mfd/Makefile | 1 + drivers/mfd/cgbc-core.c | 411 ++++++++++++++++++++++++++++++++++++++++++ drivers/watchdog/Kconfig | 10 + drivers/watchdog/Makefile | 1 + drivers/watchdog/cgbc_wdt.c | 211 ++++++++++++++++++++++ include/linux/mfd/cgbc.h | 44 +++++ 14 files changed, 1323 insertions(+) --- base-commit: 83d650136610d87d8ed0626c178ed18879b69564 change-id: 20240503-congatec-board-controller-82c6b84cd4ea Best regards, -- Thomas Richard <thomas.richard@xxxxxxxxxxx>