Aaron Griffith 
							
						 
					 
					
						
						
						
						
							
						
						
							03f73ce339 
							
						 
					 
					
						
						
							
							stm32/i2c: disable peripheral when changing timings  
						
						
						
						
					 
					
						2025-02-27 06:50:01 -05:00 
						 
				 
			
				
					
						
							
							
								Guy Marino 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							27709df94a 
							
						 
					 
					
						
						
							
							Implement core::error::Error for STM32 Serial Devices  
						
						
						
						
					 
					
						2025-02-26 14:14:16 -08:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1780f8479e 
							
						 
					 
					
						
						
							
							Merge pull request  #3878  from showier-drastic/i2c-v2-add-nack  
						
						... 
						
						
						
						stm32: i2c-v2: Add error handling 
						
						
					 
					
						2025-02-17 19:52:41 +01:00 
						 
				 
			
				
					
						
							
							
								Fredrik Reinholdsen 
							
						 
					 
					
						
						
						
						
							
						
						
							7f4cce536a 
							
						 
					 
					
						
						
							
							fix: Fix for async I2C v2 driver sequential read/write reads.  Fixes   #3887  
						
						... 
						
						
						
						For I2C devices that support variable length reads, sending chunks of data as long as the master keeps ACK:ing after each received byte, sequential reads will sometimes get out of sync, causing additional reads to return invalid data.
This was caused by a delay between awaiting the DMA read and sending the software STOP signal, which may result in the slave to have time to send a byte of data in between, causing potential miss-alignment. This would then cause subsequent reads to return invalid data.
Async write-reads now no longer send STOP after the initial write, matching the behaviour of the blocking version. 
						
						
					 
					
						2025-02-15 12:06:49 +01:00 
						 
				 
			
				
					
						
							
							
								Shaw Drastin 
							
						 
					 
					
						
						
						
						
							
						
						
							1c1aea62d0 
							
						 
					 
					
						
						
							
							stm32: i2c-v2: Add error handling  
						
						... 
						
						
						
						Currently when error occurres, we have to wait for timeout, which is
less than ideal. Enable related interrupts, and return Err when error
occurres. 
						
						
					 
					
						2025-02-12 21:16:18 +08:00 
						 
				 
			
				
					
						
							
							
								elagil 
							
						 
					 
					
						
						
						
						
							
						
						
							eba8089601 
							
						 
					 
					
						
						
							
							chore: fix build  
						
						
						
						
					 
					
						2025-01-03 18:18:00 +01:00 
						 
				 
			
				
					
						
							
							
								Fabian Viöl 
							
						 
					 
					
						
						
						
						
							
						
						
							3870411a4a 
							
						 
					 
					
						
						
							
							stm32/i2c: disable pullup instead of pulldown  
						
						
						
						
					 
					
						2024-10-10 16:12:51 +02:00 
						 
				 
			
				
					
						
							
							
								Jamie Bird 
							
						 
					 
					
						
						
						
						
							
						
						
							18ba56534b 
							
						 
					 
					
						
						
							
							Fix Formatting Issues  
						
						
						
						
					 
					
						2024-06-21 15:29:02 +01:00 
						 
				 
			
				
					
						
							
							
								Jamie Bird 
							
						 
					 
					
						
						
						
						
							
						
						
							060d1f6e6f 
							
						 
					 
					
						
						
							
							Fix: Ensure I2C bus is free before master-write operation  
						
						... 
						
						
						
						The I2C master-write function was failing when executed immediately after an I2C read operation, requiring manual delays to function correctly. This fix introduces a check to ensure the I2C bus is free before initiating the write operation.
According to the RM0399 manual for STM32H7 chips, the BUSY bit (Bit 15 in the I2C ISR register) indicates whether a communication is in progress on the bus. The BUSY bit is set by hardware when a START condition is detected and cleared when a STOP condition is detected or when PE = 0.
This fix prevents the write operation from starting until the BUSY bit is cleared. 
						
						
					 
					
						2024-06-21 15:09:57 +01:00 
						 
				 
			
				
					
						
							
							
								Jan Špaček 
							
						 
					 
					
						
						
						
						
							
						
						
							94007ce6e0 
							
						 
					 
					
						
						
							
							stm32/gpio: refactor AfType  
						
						
						
						
					 
					
						2024-06-16 21:11:55 +02:00 
						 
				 
			
				
					
						
							
							
								dvdsk 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							871fe3a549 
							
						 
					 
					
						
						
							
							Add Clone and Copy to Error types  
						
						... 
						
						
						
						None of them are `non-exaustative`, they are all small enough to be copy
(I estimate none are larger than 4 bytes). 
						
						
					 
					
						2024-06-06 23:19:07 +02:00 
						 
				 
			
				
					
						
							
							
								Jan Špaček 
							
						 
					 
					
						
						
						
						
							
						
						
							41711195e3 
							
						 
					 
					
						
						
							
							stm32/i2c: use new_pin! macro  
						
						
						
						
					 
					
						2024-06-01 19:46:39 +02:00 
						 
				 
			
				
					
						
							
							
								Jan Špaček 
							
						 
					 
					
						
						
						
						
							
						
						
							081afca3f0 
							
						 
					 
					
						
						
							
							stm32/rcc: replace generated enable/disable code with runtime info  
						
						
						
						
					 
					
						2024-05-25 18:44:55 +02:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							45a12fd41f 
							
						 
					 
					
						
						
							
							stm32/i2c: remove peripheral generic param.  
						
						
						
						
					 
					
						2024-05-21 01:25:49 +02:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							b3ca42f8f9 
							
						 
					 
					
						
						
							
							stm32/i2c: add h7rs support.  
						
						
						
						
					 
					
						2024-05-01 16:33:34 +02:00 
						 
				 
			
				
					
						
							
							
								James Munns 
							
						 
					 
					
						
						
						
						
							
						
						
							5ce3a6b61e 
							
						 
					 
					
						
						
							
							Add workaround for STM32 i2cv1 errata  
						
						
						
						
					 
					
						2024-04-29 12:32:33 +02:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							5732ee7ca9 
							
						 
					 
					
						
						
							
							Reduce use of the full futures crate.  
						
						
						
						
					 
					
						2024-04-26 23:22:25 +02:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							913bb19a34 
							
						 
					 
					
						
						
							
							stm32/i2c: remove DMA generic params.  
						
						
						
						
					 
					
						2024-04-15 23:40:12 +02:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							bb5fcce0a0 
							
						 
					 
					
						
						
							
							Use named imports within function to make code easier to read  
						
						
						
						
					 
					
						2024-03-27 10:42:38 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							b52e9a60eb 
							
						 
					 
					
						
						
							
							Add missing check for empty buffer in asynchronous read_write()  
						
						
						
						
					 
					
						2024-03-27 10:39:33 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							13636556d9 
							
						 
					 
					
						
						
							
							Mark shared data structure as dead_code for I2C v2 branch  
						
						
						
						
					 
					
						2024-03-27 01:41:13 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							0cfb65abc2 
							
						 
					 
					
						
						
							
							Add transaction stub to I2C v2  
						
						
						
						
					 
					
						2024-03-27 01:36:06 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							54d7d49513 
							
						 
					 
					
						
						
							
							Refactor DMA implementation of I2C v1, clarify flow of code  
						
						
						
						
					 
					
						2024-03-27 01:07:42 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							7e44db099c 
							
						 
					 
					
						
						
							
							Move FrameOptions and related function to module itself  
						
						
						
						
					 
					
						2024-03-27 00:35:30 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							b299266cd2 
							
						 
					 
					
						
						
							
							It is not necessary to enable interrupts before registering waker  
						
						
						
						
					 
					
						2024-03-27 00:32:06 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							2e2986c67b 
							
						 
					 
					
						
						
							
							It is not necessary to wait for SB and MSL sequentially  
						
						
						
						
					 
					
						2024-03-27 00:32:06 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							c1175bf7d8 
							
						 
					 
					
						
						
							
							It is not necessary to wait for STOP to be fully generated  
						
						
						
						
					 
					
						2024-03-27 00:32:06 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							accec7a840 
							
						 
					 
					
						
						
							
							Implement asynchronous transaction for I2C v1  
						
						
						
						
					 
					
						2024-03-27 00:32:06 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							9c00a40e73 
							
						 
					 
					
						
						
							
							Extract frame options generation into iterator to reuse in async  
						
						
						
						
					 
					
						2024-03-26 22:53:14 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							0885c102d3 
							
						 
					 
					
						
						
							
							Refactor async I2C transfers to use frame options  
						
						
						
						
					 
					
						2024-03-26 22:53:14 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							746ded94b1 
							
						 
					 
					
						
						
							
							Fix minor typos  
						
						
						
						
					 
					
						2024-03-26 22:53:14 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							2bca875b5f 
							
						 
					 
					
						
						
							
							stm32: use private_bounds for sealed traits.  
						
						
						
						
					 
					
						2024-03-23 01:38:51 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							eca9aac194 
							
						 
					 
					
						
						
							
							Fix warnings in recent nightly.  
						
						
						
						
					 
					
						2024-03-20 16:39:09 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							cff665f2ec 
							
						 
					 
					
						
						
							
							Avoid unnecessary double-reference  
						
						
						
						
					 
					
						2024-03-20 13:08:42 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							4eb4108952 
							
						 
					 
					
						
						
							
							Fix build for I2C v2 targets  
						
						
						
						
					 
					
						2024-03-20 03:33:15 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							8f19a2b537 
							
						 
					 
					
						
						
							
							Avoid missing stop condition when write/read with empty read buffer  
						
						
						
						
					 
					
						2024-03-20 02:59:30 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							c96062fbcd 
							
						 
					 
					
						
						
							
							Implement blocking transaction handling for I2C v1  
						
						
						
						
					 
					
						2024-03-20 02:59:30 +01:00 
						 
				 
			
				
					
						
							
							
								Sebastian Goll 
							
						 
					 
					
						
						
						
						
							
						
						
							7c08616c02 
							
						 
					 
					
						
						
							
							Introduce frame options to control start/stop conditions  
						
						
						
						
					 
					
						2024-03-20 02:55:49 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							90e96d281f 
							
						 
					 
					
						
						
							
							Merge pull request  #2373  from embassy-rs/jamesmunns-patch-2  
						
						... 
						
						
						
						stm32: Add breadcrumb to i2cv1 investigation 
						
						
					 
					
						2023-12-28 23:58:19 +01:00 
						 
				 
			
				
					
						
							
							
								James Munns 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							a780339103 
							
						 
					 
					
						
						
							
							stm32: Add breadcrumb to i2cv1 investigation  
						
						... 
						
						
						
						Adds an in-code breadcrumb for https://github.com/embassy-rs/embassy/issues/2372  
						
						
					 
					
						2023-12-28 23:57:10 +01:00 
						 
				 
			
				
					
						
							
							
								James Munns 
							
						 
					 
					
						
						
						
						
							
						
						
							a142be8bb8 
							
						 
					 
					
						
						
							
							Seems to help  
						
						
						
						
					 
					
						2023-12-27 19:12:44 +01:00 
						 
				 
			
				
					
						
							
							
								Priit Laes 
							
						 
					 
					
						
						
						
						
							
						
						
							fc724dd707 
							
						 
					 
					
						
						
							
							stm32: i2c: Clean up conditional code a bit  
						
						... 
						
						
						
						By moving conditional code inside the functions, we can
reduce duplication and in one case we can even eliminate one... 
						
						
					 
					
						2023-12-19 11:48:58 +02:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							49534cd405 
							
						 
					 
					
						
						
							
							stm32: more docs.  
						
						
						
						
					 
					
						2023-12-19 00:10:36 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							124478c5e9 
							
						 
					 
					
						
						
							
							stm32: more docs.  
						
						
						
						
					 
					
						2023-12-18 19:11:23 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							7044e53af4 
							
						 
					 
					
						
						
							
							stm32/i2c: remove _timeout public API, share more code between v1/v2.  
						
						
						
						
					 
					
						2023-12-18 18:24:55 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							80c9d04bbd 
							
						 
					 
					
						
						
							
							stm32: add some docs.  
						
						
						
						
					 
					
						2023-12-18 00:53:18 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							c6989dfbca 
							
						 
					 
					
						
						
							
							Remove nightly and unstable-traits features in preparation for 1.75.  
						
						
						
						
					 
					
						2023-11-29 17:26:33 +01:00 
						 
				 
			
				
					
						
							
							
								Barnaby Walters 
							
						 
					 
					
						
						
						
						
							
						
						
							3efc3eee57 
							
						 
					 
					
						
						
							
							stm32/i2c: implement async i2c v1.  
						
						
						
						
					 
					
						2023-11-24 23:55:46 +01:00 
						 
				 
			
				
					
						
							
							
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
						
						
							
						
						
							bc65b8f7ec 
							
						 
					 
					
						
						
							
							stm32/i2c: add async, dual interrupt scaffolding.  
						
						
						
						
					 
					
						2023-11-24 23:55:45 +01:00 
						 
				 
			
				
					
						
							
							
								Andres Vahter 
							
						 
					 
					
						
						
						
						
							
						
						
							4f8c79c911 
							
						 
					 
					
						
						
							
							stm32 i2c: allow EHA traits without time feature  
						
						
						
						
					 
					
						2023-11-24 15:56:19 +02:00