This series implements Repeated Start functionality for the DM_I2C xfer API (omap_i2c_xfer())
First, split out the actual implementation for each individual i2c msg transfer into a new function __omap24_i2c_xfer_msg() and use this to implement omap_i2c_xfer(). Then, add support for the Repeated Start condition in omap_i2c_xfer() through the CONFIG_I2C_REPEATED_START option. Also add this config to Kconfig and enable it for ARCH_K3 platforms by default. Test logs (On AM68-SK with additional debug prints): https://gist.github.com/aniket-l/8c64c5bc81246751a02836a96510df14 Requesting reviews/testing on specifically the CONFIG_I2C_REPEATED_START addition: - Is the Kconfig needed or should we simply always default to not sending Stop bit? Drivers can use i2c_msg.flags to request Stop bit for each msg, same as in the Linux Kernel i2c-omap driver[0]. - If yes, Should we re-use CONFIG_I2C_REPEATED_START from the legacy implementation of the driver or define a new config - Default enable it for K3 devices? [0]: https://github.com/torvalds/linux/blob/v6.14-rc5/drivers/i2c/busses/i2c-omap.c#L699 Aniket Limaye (3): i2c: omap24xx_i2c: Use new function __omap24_i2c_xfer_msg() i2c: omap24xx_i2c: support CONFIG_I2C_REPEATED_START in DM_I2C xfer drivers: i2c: Kconfig: Add config for I2C_REPEATED_START drivers/i2c/Kconfig | 9 +++ drivers/i2c/omap24xx_i2c.c | 149 ++++++++++++++++++++++++++++++++----- 2 files changed, 140 insertions(+), 18 deletions(-) -- 2.48.1