zephyr/drivers/i2c
Tim Lin 648919f6df drivers/i2c: it51xxx: Refactor ISR to reduce clock stretch in PIO mode
Move handling of write-to-clear status and stop detect to the
beginning of the ISR for PIO mode to reduce unnecessary clock
stretching and improve responsiveness during transfers.

This patch also separates status clearing for shared FIFO mode,
ensuring it is done at the appropriate point after data handling
completes, maintaining correct transfer behavior.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-07-23 09:36:37 +02:00
..
target drivers: i2c: Add zephyr-keep-sorted defines 2025-01-08 01:30:34 +01:00
CMakeLists.txt drivers: i2c: Add support i2c driver for Renesas RX MCU 2025-06-23 16:26:51 -05:00
gpio_i2c_switch.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_ambiq.c drivers: i2c: ambiq: buffer overflow issue fixed 2025-06-19 22:31:06 -07:00
i2c_andes_atciic100.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_andes_atciic100.h
i2c_b91.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_bcm_iproc.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_bitbang.c drivers: i2c: Add support for clock stretching in the i2c-gpio module. 2025-05-31 06:55:10 -04:00
i2c_bitbang.h drivers: i2c: Add support for clock stretching in the i2c-gpio module. 2025-05-31 06:55:10 -04:00
i2c_cc13xx_cc26xx.c drivers: i2c: cc13xx_cc26xx: Add support for I2C_MSG_RESTART 2025-01-14 17:57:40 +01:00
i2c_cc32xx.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_cdns.c drivers: i2c: Add Cadence I2C support 2025-03-12 19:02:04 +01:00
i2c_common.c
i2c_dw_registers.h drivers: i2c: rts5912 i2c dirver 2025-05-29 20:17:05 +02:00
i2c_dw.c drivers: i2c: i2c_dw: only includ cmsis_core on ARM platforms 2025-06-11 08:20:40 +02:00
i2c_dw.h drivers: i2c_dw: fix request_bytes overflow when receiving > 256 bytes 2025-06-27 09:08:18 -10:00
i2c_emul.c drivers,test: use the new DT_FOREACH_PROP_ELEM_SEP 2025-02-04 09:18:55 +01:00
i2c_ene_kb1200.c driver: i2c: ene_kb1200 i2c slave address 2025-04-22 09:58:32 +02:00
i2c_esp32.c drivers: i2c: esp32: drop transfer log error 2025-07-04 13:08:23 -05:00
i2c_gd32.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_gecko.c drivers: i2c: gecko: Fix EFM32 I2C target 2025-07-04 13:07:45 -05:00
i2c_gpio.c drivers: i2c: Add support for clock stretching in the i2c-gpio module. 2025-05-31 06:55:10 -04:00
i2c_handlers.c
i2c_ifx_cat1.c drivers: ifx_cat1: Updates to support latest version of HAL/PDL 2025-01-14 20:49:14 +01:00
i2c_ifx_xmc4.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_imx.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_ite_enhance.c drivers/i2c: ite: Add handling for read operation with 0-byte length 2025-05-29 10:46:47 +02:00
i2c_ite_it8xxx2.c drivers/i2c: ite: Use i2c_bitbang API for bus recovery 2025-04-17 09:06:29 +02:00
i2c_ite_it51xxx.c drivers/i2c: it51xxx: Refactor ISR to reduce clock stretch in PIO mode 2025-07-23 09:36:37 +02:00
i2c_litex_litei2c.c drivers: i2c: litex: add mutex in litei2c 2025-03-27 14:01:11 +01:00
i2c_litex.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_ll_stm32_common.c drivers: i2c: move functions to a common file 2025-05-22 20:56:28 +02:00
i2c_ll_stm32_rtio.c drivers: i2c: stm32: add target mode in RTIO drivers 2025-06-23 12:47:00 -07:00
i2c_ll_stm32_v1_rtio.c drivers: i2c: stm32: add target mode in RTIO drivers 2025-06-23 12:47:00 -07:00
i2c_ll_stm32_v1.c drivers: i2c: move functions to a common file 2025-05-22 20:56:28 +02:00
i2c_ll_stm32_v2_rtio.c drivers: i2c: stm32: add target mode in RTIO drivers 2025-06-23 12:47:00 -07:00
i2c_ll_stm32_v2.c drivers: i2c: stm32: exclude stm32f7 family for PM 2025-07-09 17:16:16 -05:00
i2c_ll_stm32.c i2c: stm32: drop few redundant guards 2025-06-25 14:08:08 +02:00
i2c_ll_stm32.h drivers: i2c: stm32: add target mode in RTIO drivers 2025-06-23 12:47:00 -07:00
i2c_lpc11u6x.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_lpc11u6x.h
i2c_max32_rtio.c drivers: i2c_rtio: max32: Inform the rtio executor on errors 2025-04-22 12:10:12 +02:00
i2c_max32.c drivers: i2c: Update driver to enable I2C for MAX32650 SoC 2025-05-14 11:03:22 +01:00
i2c_mchp_mss.c drivers: i2c: mchp_mss: Add reset support 2025-06-27 09:59:08 -05:00
i2c_mchp_xec_v2.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_mchp_xec.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_mcux_flexcomm.c pm: policy: remove redundant ifdef exclusion of device_power_lock 2025-06-05 09:34:31 +02:00
i2c_mcux_lpi2c_rtio.c i2c: Use I2C log level for lpi2c rtio 2025-07-19 09:53:21 +02:00
i2c_mcux_lpi2c.c i2c_mcux_lpspi: LPflexcomm determine by inst 2025-01-21 19:28:01 +01:00
i2c_mcux.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_nios2.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_npcx_controller.c drivers: i2c: npcx: prevent unexpected target address match ISR 2025-06-17 08:20:39 +02:00
i2c_npcx_controller.h drivers: i2c: npcx: add support to wake up from sleep mode 2025-01-20 07:05:48 +01:00
i2c_npcx_port.c drivers: i2c: npcx: add support for multi-address in target mode 2025-03-25 08:43:52 +01:00
i2c_nrfx_twi_common.c
i2c_nrfx_twi_common.h
i2c_nrfx_twi_rtio.c drivers: i2c: nrfx_twi_rtio: support RTIO_OP_AWAIT 2025-04-29 16:47:26 +02:00
i2c_nrfx_twi.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_nrfx_twim_common.c drivers: i2c: nrfx_twim: impl device deinit 2025-06-26 22:15:52 -05:00
i2c_nrfx_twim_common.h drivers: i2c: nrfx_twim: impl device deinit 2025-06-26 22:15:52 -05:00
i2c_nrfx_twim_rtio.c drivers: i2c: nrfx_twim: impl device deinit 2025-06-26 22:15:52 -05:00
i2c_nrfx_twim.c drivers: i2c: nrfx_twim: impl device deinit 2025-06-26 22:15:52 -05:00
i2c_nrfx_twis.c drivers: i2c: nrfx_twis: impl device deinit 2025-06-26 22:15:52 -05:00
i2c_numaker.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_nxp_ii2c.c drivers: i2c: add NXP i2c driver used on imx8m platforms 2025-01-24 19:15:57 +01:00
i2c_omap.c drivers: i2c: omap: Make reg pointers volatile 2025-06-02 17:37:43 +02:00
i2c_rcar.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_realtek_rts5912.c drivers: i2c: rts5912 i2c dirver 2025-05-29 20:17:05 +02:00
i2c_realtek_rts5912.h drivers: i2c: rts5912 i2c dirver 2025-05-29 20:17:05 +02:00
i2c_renesas_ra_iic.c drivers: Correct value of event macro for all Renesas SoC 2025-02-28 18:29:17 +01:00
i2c_renesas_ra_sci_b.c drivers: Update dtc transfer info alignment 2025-05-30 10:26:34 +02:00
i2c_renesas_rx_riic.c drivers: i2c: Add support i2c driver for Renesas RX MCU 2025-06-23 16:26:51 -05:00
i2c_renesas_rz_riic.c drivers: i2c: renesas_rz_riic: fix apply state in init code 2025-06-26 09:39:39 +02:00
i2c_rtio_default.c
i2c_rtio.c drivers: i2c: rtio 2025-03-07 19:43:22 +01:00
i2c_rv32m1_lpi2c.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_sam0.c clocks: atmel: sam0: Fix gclk and mclk clock bindings 2025-01-14 20:49:03 +01:00
i2c_sam4l_twim.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_sam_twi.c drivers: i2c: sam: fix the exception when transferring without data 2025-06-26 22:19:09 -05:00
i2c_sam_twihs_rtio.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_sam_twihs.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_sbcon.c drivers: i2c: add pinctrl support to Arm sbcon driver 2025-04-07 15:18:10 +02:00
i2c_sc18im704.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_sc18im704.h
i2c_sedi.c drivers: i2c_sedi: Apply DTS clock_frequency to I2C during initialization 2025-07-22 19:32:08 -04:00
i2c_shell.c i2c_shell: Only include target commands if I2C_TARGET 2025-06-27 18:26:33 -05:00
i2c_sifive.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_smartbond.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_sy1xx.c drivers: i2c: sy1xx add support for i2c 2025-03-14 14:39:55 +01:00
i2c_tca954x.c drivers: i2c: tca954x: add support for idle disconnect 2025-04-04 18:17:07 +02:00
i2c_test.c drivers: i2c: Place API into iterable section 2024-12-16 18:25:36 +01:00
i2c_wch.c drivers: wch: fix the ch32vfun.h path after the recent HAL update 2025-05-28 05:54:28 +02:00
i2c_xilinx_axi.c drivers: i2c: xilinx_axi: Remove nested spinlock 2025-03-17 02:20:20 +01:00
i2c_xilinx_axi.h
i2c-priv.h
Kconfig drivers: i2c: Add support i2c driver for Renesas RX MCU 2025-06-23 16:26:51 -05:00
Kconfig.ambiq drivers: iom: define ambiq spi/i2c dma mode as a binding property 2025-05-13 16:23:26 +02:00
Kconfig.andes_atciic100
Kconfig.b91
Kconfig.bcm_iproc
Kconfig.cc13xx_cc26xx
Kconfig.cdns drivers: i2c: Add Cadence I2C support 2025-03-12 19:02:04 +01:00
Kconfig.dw drivers: i2c: rts5912 i2c dirver 2025-05-29 20:17:05 +02:00
Kconfig.ene
Kconfig.esp32
Kconfig.gd32
Kconfig.gpio drivers: i2c: Add support for clock stretching in the i2c-gpio module. 2025-05-31 06:55:10 -04:00
Kconfig.i2c_emul
Kconfig.ifx_cat1
Kconfig.ifx_xmc4
Kconfig.it8xxx2 drivers/i2c: ite: Use i2c_bitbang API for bus recovery 2025-04-17 09:06:29 +02:00
Kconfig.it51xxx drivers/i2c: Add I2C driver of it51xxx 2025-04-29 16:48:06 +02:00
Kconfig.litex drivers: i2c: litex: add driver for litei2c 2025-03-27 14:01:11 +01:00
Kconfig.lpc11u6x
Kconfig.max32
Kconfig.mchp_mss
Kconfig.mcux drivers: i2c_mcux_flexcomm: add support for bus recovery. 2025-01-08 09:33:16 +01:00
Kconfig.npcx
Kconfig.nrfx drivers: i2c: Support i2c23 and i2c24 instances 2025-06-26 14:07:55 +02:00
Kconfig.numaker
Kconfig.omap drivers: i2c: i2c_omap: Add pinctrl 2025-02-14 13:36:26 +01:00
Kconfig.rcar
Kconfig.renesas_ra drivers: i2c: initial support for i2c sci-b driver on Renesas RA family 2025-03-24 19:22:18 +01:00
Kconfig.renesas_rx drivers: i2c: Add support i2c driver for Renesas RX MCU 2025-06-23 16:26:51 -05:00
Kconfig.renesas_rz drivers: i2c: Initial support for RZ/G3S 2025-03-07 19:45:11 +01:00
Kconfig.rts5912 drivers: i2c: rts5912 i2c dirver 2025-05-29 20:17:05 +02:00
Kconfig.sam0 drivers: i2c: I2C_SAM0_TRANSFER_TIMEOUT depends on I2C_SAM0 2025-02-19 14:51:04 +00:00
Kconfig.sam_twihs
Kconfig.sbcon drivers: i2c: add pinctrl support to Arm sbcon driver 2025-04-07 15:18:10 +02:00
Kconfig.sc18im704
Kconfig.sedi
Kconfig.sifive
Kconfig.smartbond
Kconfig.stm32 i2c: stm32: Add config option to enable DMA support 2025-03-20 12:17:50 +01:00
Kconfig.sy1xx drivers: i2c: sy1xx add support for i2c 2025-03-14 14:39:55 +01:00
Kconfig.tca954x
Kconfig.test
Kconfig.wch drivers: i2c: added wch i2c driver 2025-04-17 21:17:06 +02:00
Kconfig.xec
Kconfig.xilinx_axi