zephyr/drivers
Etienne Carriere 5740dfe77b drivers: i2c: stm32: fix write burst in RTIO drivers
Correct management of I2C write transfers that are driven from 2
I2C messages, one for the transfer of the address to write
to and a following message for the transfer of the data to be written.
In this case, no START and STOP bit should be triggered between the 2
I2C transfers.

In STM32 I2C v1 driver, this simply means not emitting a START
condition when the input sequence does not set the RESTART flag.

In STM32 I2C v2 driver, this can only be achieved using the SoC I2C
controller Reload Mode feature, hence update Reload Mode implementation
to use reload mode for both transfers over 255 bytes (splitted in
chunks) and for cases where no STOP and START bits are emitted between
2 transfer in the same transaction.

Regarding STM32 I2C v2 driver, the reload mode must be enable before the
first transaction, known that it's needed due to the following
transaction. Therefore we need to parse the messages grouped in the same
transaction to detect such sequences (a message without STOP flag
followed by a message without RESTART flag) and when so, pass the
information to the I2C driver through RTIO framework. To achieve that,
let's use a free bit from I2C message flags (bit 7) in the message
for which we need to enable SoC ReloadMode from the first transfer.
We check that this bit flag is not used by the I2C framework prior
using it.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2025-06-23 12:47:00 -07:00
..
adc drivers: adc: add dma support for ambiq adc driver 2025-06-23 15:45:44 +01:00
audio drivers: audio: max98091: fix max98091_set_property error handling 2025-06-23 15:48:25 +01:00
auxdisplay
bbram
bluetooth Bluetooth: drivers: Use bt_hci_cmd_alloc() 2025-06-23 12:44:53 -07:00
cache drivers: cache: nrf: Resolve NRF_CACHE_HAS_LINEADDR issue 2025-06-12 09:33:48 -07:00
can drivers: can: Add CAN support for max32662 2025-06-16 14:13:59 -04:00
charger
clock_control drivers: clock_control: npcm: add missing const qualifiers 2025-06-21 13:14:39 +02:00
comparator drivers: Extend analog pins mapping for nRF54L. 2025-06-17 16:11:33 +02:00
console
coredump
counter drivers: nrfx: help select clock control when needed 2025-06-23 15:47:01 +01:00
crypto drivers: crypto: cc23x0: Add support for DMA mode 2025-06-11 16:06:55 -07:00
dac drivers: dac: adopt SHELL_HELP 2025-06-16 14:03:57 -04:00
dai drivers: dai: fix bad GENMASK in NXP driver 2025-06-20 13:26:03 -04:00
debug drivers: debug: silabs_pti: Add driver for Packet Trace Interface 2025-06-13 11:12:20 +02:00
disk drivers: disk: nvme: fix include guard typo 2025-06-06 09:08:33 -07:00
display drivers: display: hx8394: add missing static qualifiers to local arrays 2025-06-23 13:42:48 +02:00
dma drivers: dma: dma_iproc_pax_v1: fix variable name in logging macro 2025-06-18 09:30:55 -04:00
dp
edac edac: shell: Make more generic 2025-06-18 09:09:40 -04:00
eeprom
entropy drivers: entropy: virtio: Unify the notation to VIRTIO 2025-06-07 15:39:06 +01:00
espi drivers: espi: npcx: fix compilation errors 2025-06-18 09:31:08 -04:00
ethernet drivers: ethernet: phy: dm8806: fix error handling 2025-06-23 09:46:10 +02:00
firmware drivers: firmware: TISCI driver support 2025-06-23 15:54:34 +01:00
flash drivers: flash: stm32 ospi driver size and address of the external NOR 2025-06-20 14:41:41 -05:00
fpga
fuel_gauge
gnss drivers: gnss: tidy satellite count kconfig symbols 2025-06-20 16:23:43 +02:00
gpio drivers: npm13xx: add support for nPM1304 2025-06-23 16:19:43 +01:00
haptics drivers: haptics: drv2605: drop redundant include 2025-06-16 14:04:22 -04:00
hdlc_rcp_if drivers: hdlc_rcp_if: Add HDLC SPI adapter driver 2025-06-18 17:50:31 -04:00
hwinfo drivers: hwinfo: add TI MSPM0 support 2025-06-18 09:10:11 -04:00
hwspinlock
i2c drivers: i2c: stm32: fix write burst in RTIO drivers 2025-06-23 12:47:00 -07:00
i2s drivers: i2s: stm32 sai add mclk-divider property 2025-06-20 13:26:14 -04:00
i3c drivers: i3c: cdns: fix bitwise operation in CONF_STATUS0_DEV_ROLE macro 2025-06-18 07:38:58 +02:00
ieee802154 drivers: ieee802154: update mcxw ieee802154 driver 2025-06-12 09:34:16 -07:00
input drivers: input: esp32: fix threshold calculation 2025-06-09 14:54:30 -07:00
interrupt_controller drivers: intc: nxp_pint: fix off-by-one error in pin_enable 2025-06-21 10:40:28 +02:00
ipm
led drivers: npm13xx: add support for nPM1304 2025-06-23 16:19:43 +01:00
led_strip
lora lora: adopt SHELL_HELP 2025-06-18 07:37:10 +02:00
mbox drivers: mbox: secureproxy: Pass userdata in isr 2025-06-23 15:54:34 +01:00
mdio drivers: mdio: remove unused bus_enable/disable 2025-06-17 17:46:56 +02:00
memc drivers: memc: stm32 psram: Fix XSPI configuration for performance 2025-06-19 22:33:37 -07:00
mfd drivers: npm13xx: add support for nPM1304 2025-06-23 16:19:43 +01:00
mipi_dbi
mipi_dsi
misc drivers: misc: fix condition in gpio_ra_interrupt_unset function 2025-06-17 07:23:04 +02:00
mm
modem net: mgmt: Convert the mgmt API to use 64-bit masks 2025-06-18 10:54:44 +02:00
mspi drivers: mspi_dw: Add support for RX dummy cycles in single line mode 2025-06-23 13:42:07 +02:00
net
pcie drivers: pcie: shell: add missing const qualifiers 2025-06-17 07:24:52 +02:00
peci
pinctrl drivers: pinctrl: wch: remove useless operations 2025-06-21 18:34:02 +02:00
pm_cpu_ops
power_domain
ps2
ptp_clock drivers: ptp_clock: Add NXP NETC PTP Clock Driver 2025-06-06 14:47:53 +01:00
pwm drivers: pwm: Fix priority handling for Renesas RA 2025-06-19 14:00:21 +02:00
regulator drivers: npm13xx: add support for nPM1304 2025-06-23 16:19:43 +01:00
reset
retained_mem
rtc drivers: rtc: adopt SHELL_HELP 2025-06-17 16:25:32 -05:00
sdhc driver: sdhc: fix typo in SAM4E hsmci driver 2025-06-17 16:12:17 +02:00
sensor drivers: npm13xx: add support for nPM1304 2025-06-23 16:19:43 +01:00
serial drivers: nrfx: help select clock control when needed 2025-06-23 15:47:01 +01:00
sip_svc
smbus
spi drivers: spi: esp32_spim: use size_t for DMA buffer lengths 2025-06-21 08:19:37 +02:00
stepper drivers: stepper: tmc5xxx: introduce stop function 2025-06-23 13:44:51 +02:00
syscon
tee
timer drivers: timer: Fix interrupt management in stm32 lptim timer 2025-06-23 13:44:15 +02:00
usb drivers: usb_dc_mcux: disable irq in detach 2025-06-23 15:45:55 +01:00
usb_c drivers: usb_c: fusb307: Check return value gpio_add_callback() 2025-06-13 14:29:23 +02:00
video drivers: video: fix uninitialized struct 2025-06-23 15:46:42 +01:00
virtio drivers: vertio: Move VIRTIO-MMIO register definitions to header 2025-06-18 07:40:02 +02:00
virtualization
w1 drivers: w1: shell: fix off-by-one error 2025-06-17 17:46:17 +02:00
watchdog drivers: npm13xx: add support for nPM1304 2025-06-23 16:19:43 +01:00
wifi drivers: wifi: siwx91x: Fix buffer overflow in client disconnect 2025-06-23 12:46:10 -07:00
xen
CMakeLists.txt drivers: debug: Add debug driver class 2025-06-13 11:12:20 +02:00
Kconfig drivers: debug: Add debug driver class 2025-06-13 11:12:20 +02:00