zephyr/drivers/i2c
Frank Terbeck 1f0b1403f5 stm32,i2c: Fix large I2C transactions
The stm32's I2C peripheral has a maximum transmission size. Larger trans-
action, that I2C itself allows, can be achieved be using the peripheral's
reload-mode.

In order to do that, st's low-lever drivers need to be informed according-
ly. The previous iteration of the code mishandled the next_msg_flags para-
meter, causing the issue to manifest itself.

This refactors the inner loop of i2c_stm32_transfer() into its own func-
tion. This passes the message parameter by value in order to be able to
mutate its state while keeping the original datum from the user intact
during the entire procedure.

Fixes #43235

Signed-off-by: Frank Terbeck <ft@bewatermyfriend.org>
2022-03-15 10:05:48 +01:00
..
slave drivers: i2c: slave: eeprom: use i2c_dt_spec 2022-02-21 22:16:10 -05:00
CMakeLists.txt drivers: i2c: introduce GD32 I2C driver 2022-01-14 10:42:24 -06:00
i2c-priv.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_b91.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_bitbang.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_bitbang.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
i2c_cc13xx_cc26xx.c drivers: i2c: drop get_dev_data/get_dev_config usage 2022-01-19 18:16:02 +01:00
i2c_cc32xx.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_common.c drivers: i2c: Add a dump routine 2020-08-04 17:50:39 +02:00
i2c_dw.c drivers: i2c: added slave support for DW 2022-02-21 19:42:07 -05:00
i2c_dw.h drivers: i2c: added slave support for DW 2022-02-21 19:42:07 -05:00
i2c_dw_registers.h drivers: i2c: added slave support for DW 2022-02-21 19:42:07 -05:00
i2c_emul.c i2c_emul: init i2c config 2022-02-21 22:18:16 -05:00
i2c_esp32.c drivers: i2c: esp32: split stop command into a new transmission 2022-01-01 07:39:41 -05:00
i2c_gd32.c drivers: i2c: introduce GD32 I2C driver 2022-01-14 10:42:24 -06:00
i2c_gecko.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_gpio.c drivers: i2c: gpio: use gpio_dt_spec 2022-02-21 22:16:10 -05:00
i2c_handlers.c i2c: Add get_config to I2C API 2021-11-02 16:46:33 +01:00
i2c_imx.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_ite_it8xxx2.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_litex.c stats: i2c: I2C stats 2021-12-04 07:22:56 -05:00
i2c_ll_stm32.c stm32,i2c: Fix large I2C transactions 2022-03-15 10:05:48 +01:00
i2c_ll_stm32.h drivers: i2c: drop DEV_DATA/DEV_CFG usage 2022-01-19 18:16:02 +01:00
i2c_ll_stm32_v1.c drivers: i2c: drop DEV_DATA/DEV_CFG usage 2022-01-19 18:16:02 +01:00
i2c_ll_stm32_v2.c drivers: i2c: drop DEV_DATA/DEV_CFG usage 2022-01-19 18:16:02 +01:00
i2c_lpc11u6x.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_lpc11u6x.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
i2c_mchp_xec.c driver: i2c: mec15xx: i2c clk and data same group 2022-03-10 16:08:37 -05:00
i2c_mchp_xec_v2.c i2c: update MEC172x i2c module for pinctrl 2022-03-07 11:03:06 +01:00
i2c_mcux.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_mcux_flexcomm.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_mcux_lpi2c.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_nios2.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_npcx_controller.c everywhere: fix typos 2022-03-14 20:22:24 -04:00
i2c_npcx_controller.h i2c: npcx: Add get_config function 2021-11-02 16:46:33 +01:00
i2c_npcx_port.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_nrfx_twi.c drivers: i2c: nrfx: Add support for pinctrl 2022-03-09 12:05:22 +01:00
i2c_nrfx_twim.c drivers: i2c: nrfx: Add support for pinctrl 2022-03-09 12:05:22 +01:00
i2c_rcar.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
i2c_rv32m1_lpi2c.c stats: i2c: I2C stats 2021-12-04 07:22:56 -05:00
i2c_sam0.c drivers: i2c: sam0: Implement bus locking 2022-03-14 11:31:32 +01:00
i2c_sam4l_twim.c drivers: i2c: replace DEV_NAME macros 2022-02-21 19:35:55 -05:00
i2c_sam_twi.c drivers: i2c: replace DEV_NAME macros 2022-02-21 19:35:55 -05:00
i2c_sam_twihs.c drivers: i2c: replace DEV_NAME macros 2022-02-21 19:35:55 -05:00
i2c_sbcon.c stats: i2c: I2C stats 2021-12-04 07:22:56 -05:00
i2c_shell.c i2c: allow shell commands to operate on up to 32-bit registers 2022-02-28 11:09:05 +01:00
i2c_sifive.c stats: i2c: I2C stats 2021-12-04 07:22:56 -05:00
i2c_tca954x.c driver: i2c: TCA954X: Add support for TCA9548A 2021-12-13 18:07:08 +01:00
i2c_test.c drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
Kconfig drivers: i2c: Refactor drivers to use shared init priority 2022-03-11 15:45:28 -08:00
Kconfig.b91 drivers: i2c: introduce new Telink B91 I2C driver 2021-09-01 06:36:56 -04:00
Kconfig.cc13xx_cc26xx kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.dw drivers: i2c_dw: Remove CMake-based templating 2021-04-21 20:40:52 -04:00
Kconfig.esp32 driver: esp32: I2C code refactoring 2021-11-05 14:07:09 -04:00
Kconfig.gd32 drivers: i2c: introduce GD32 I2C driver 2022-01-14 10:42:24 -06:00
Kconfig.gpio drivers: i2c: gpio: convert to using devicetree for instances 2020-05-05 10:17:23 -05:00
Kconfig.i2c_emul emul: i2c: Add support for I2C emulators 2020-09-01 14:30:46 -04:00
Kconfig.it8xxx2 drivers: i2c: Add some Kconfig depends 2021-02-14 18:31:55 -05:00
Kconfig.litex drivers: i2c: cleanup select HAS_DTS_I2C 2020-04-03 22:48:31 -04:00
Kconfig.lpc11u6x drivers: i2c: Add support for LPC11U6X I2C controllers 2020-07-29 20:12:24 +02:00
Kconfig.npcx driver: i2c: add i2c support in npcx series. 2020-12-27 18:15:14 +01:00
Kconfig.nrfx drivers: nrf: Remove no longer suitable dependencies on Kconfig options 2020-04-03 14:47:32 +02:00
Kconfig.rcar everywhere: fix typos 2022-03-14 20:22:24 -04:00
Kconfig.sam0 kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
Kconfig.sbcon kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.sifive kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.stm32 drivers: i2c: add support of STM32WL 2021-02-19 22:39:24 -05:00
Kconfig.tca954x driver: i2c: TCA9546A: Rename to TCA954x 2021-12-13 18:07:08 +01:00
Kconfig.test drivers: i2c: add dummy driver for vnd,i2c 2021-02-23 10:34:19 -05:00
Kconfig.xec Microchip: MEC172x: I2C driver 2021-08-25 13:07:45 -04:00