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  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Vahter 
							
						 
					 
					
						
						
							
						
						0f2208c0af 
					 
					
						
						
							
							stm32 i2c: remove mod dummy_time  
						
						 
						
						
						
						
					 
					
						2023-11-11 14:29:24 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Vahter 
							
						 
					 
					
						
						
							
						
						6c42885d4a 
					 
					
						
						
							
							stm32 i2c: remove pub _timeout api  
						
						 
						
						
						
						
					 
					
						2023-11-11 14:05:58 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Vahter 
							
						 
					 
					
						
						
							
						
						3b33cc4691 
					 
					
						
						
							
							i2c: expose async api without needing time  
						
						 
						
						... 
						
						
						
						This exposes I2C async API without needing "time" feature. With "time" feature additional async API with timeouts is exposed. 
						
						
					 
					
						2023-11-10 16:04:25 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						66e399b5c6 
					 
					
						
						
							
							Merge pull request  #2035  from pbert519/stm_reset_and_enable  
						
						 
						
						... 
						
						
						
						STM32: combine RccPeripherals reset() and enable() to enable_and_reset() 
						
						
					 
					
						2023-10-12 14:09:13 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								pbert 
							
						 
					 
					
						
						
							
						
						ecdd7c0e2f 
					 
					
						
						
							
							enable clock first  
						
						 
						
						
						
						
					 
					
						2023-10-12 11:04:44 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								pbert 
							
						 
					 
					
						
						
							
						
						f65a96c541 
					 
					
						
						
							
							STM32: combine RccPeripherals reset() and enable() to reset_and_enable()  
						
						 
						
						
						
						
					 
					
						2023-10-12 11:04:19 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						063e6f96da 
					 
					
						
						
							
							Remove outdated comment  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:56:21 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						e6c47c3718 
					 
					
						
						
							
							cargo fmt  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:47:24 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						2f7c2750d1 
					 
					
						
						
							
							Feature guarded more unused stuff  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:45:47 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						032b1f2d59 
					 
					
						
						
							
							Fix some issues with unused stuff  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:42:40 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						f76d50e837 
					 
					
						
						
							
							cfg! macro didn't work, had to duplicate functions with different guards  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:39:24 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						ee5ea7aa06 
					 
					
						
						
							
							cargo fmt  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:34:02 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						251d004708 
					 
					
						
						
							
							Try using cfg! macro  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:32:40 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						cd68f85501 
					 
					
						
						
							
							Added guards to individual APIs  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:25:13 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						b6c0ddb7df 
					 
					
						
						
							
							Move the feature gates to the i2c module instead of the pub use statement  
						
						 
						
						
						
						
					 
					
						2023-10-11 23:05:12 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						ee93bbf1d4 
					 
					
						
						
							
							Gate pub use _version::*  
						
						 
						
						
						
						
					 
					
						2023-10-11 22:45:54 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						1cd3ae9bd5 
					 
					
						
						
							
							Add comment about feature gate on I2C mod  
						
						 
						
						
						
						
					 
					
						2023-10-11 22:20:17 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						bfcca79c1e 
					 
					
						
						
							
							Add time feature back and gate i2c on time  
						
						 
						
						
						
						
					 
					
						2023-10-11 22:12:03 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andres Oliva 
							
						 
					 
					
						
						
							
						
						cd12c9cbce 
					 
					
						
						
							
							stm32: add timeout to I2C driver  
						
						 
						
						
						
						
					 
					
						2023-10-10 18:20:46 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								James Munns 
							
						 
					 
					
						
						
							
						
						930b8f3495 
					 
					
						
						
							
							Add some uncontroversial derives to Error types  
						
						 
						
						
						
						
					 
					
						2023-10-06 17:45:35 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								xoviat 
							
						 
					 
					
						
						
							
						
						05218a52e6 
					 
					
						
						
							
							stm32: update set_config  
						
						 
						
						
						
						
					 
					
						2023-10-01 09:39:10 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								xoviat 
							
						 
					 
					
						
						
							
						
						274f63a879 
					 
					
						
						
							
							stm32: fix refcounts for usart, spi, and i2c  
						
						 
						
						
						
						
					 
					
						2023-09-04 15:47:33 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Grant Miller 
							
						 
					 
					
						
						
							
						
						d49f40dd5c 
					 
					
						
						
							
							embassy-stm32: Misc clippy fixes  
						
						 
						
						
						
						
					 
					
						2023-08-06 15:00:39 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Matt Ickstadt 
							
						 
					 
					
						
						
							
						
						036bc669cd 
					 
					
						
						
							
							stm32: only enable async TimeoutI2c on V2 I2C peripheral  
						
						 
						
						
						
						
					 
					
						2023-07-31 14:17:50 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Matt Ickstadt 
							
						 
					 
					
						
						
							
						
						26cc0e634d 
					 
					
						
						
							
							stm32: add async timeout functions to I2c and TimeoutI2c  
						
						 
						
						
						
						
					 
					
						2023-07-31 13:47:03 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Matt Ickstadt 
							
						 
					 
					
						
						
							
						
						1b0f4ee653 
					 
					
						
						
							
							stm32: add outlives bounds to TimeoutI2c impl blocks  
						
						 
						
						... 
						
						
						
						This should make usage and error messages more clear. 
						
						
					 
					
						2023-07-31 13:35:06 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Matt Ickstadt 
							
						 
					 
					
						
						
							
						
						5a8704b4d8 
					 
					
						
						
							
							TimeoutI2c: allow ref to live shorter than peripheral  
						
						 
						
						
						
						
					 
					
						2023-07-28 11:16:43 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						036e6ae30c 
					 
					
						
						
							
							Rename embassy-hal-common to embassy-hal-internal, document it's for internal use only. ( #1700 )  
						
						 
						
						
						
						
					 
					
						2023-07-28 13:23:22 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								shakencodes 
							
						 
					 
					
						
						
							
						
						29f3d5b68d 
					 
					
						
						
							
							Ensure I2C master_stop() called after error  
						
						 
						
						
						
						
					 
					
						2023-07-10 16:40:33 -07:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						558918651e 
					 
					
						
						
							
							stm32: update stm32-metapac.  
						
						 
						
						
						
						
					 
					
						2023-06-19 03:22:12 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						921780e6bf 
					 
					
						
						
							
							Make interrupt module more standard.  
						
						 
						
						... 
						
						
						
						- Move typelevel interrupts to a special-purpose mod: `embassy_xx::interrupt::typelevel`.
- Reexport the PAC interrupt enum in `embassy_xx::interrupt`.
This has a few advantages:
- The `embassy_xx::interrupt` module is now more "standard".
  - It works with `cortex-m` functions for manipulating interrupts, for example.
  - It works with RTIC.
- the interrupt enum allows holding value that can be "any interrupt at runtime", this can't be done with typelevel irqs.
- When "const-generics on enums" is stable, we can remove the typelevel interrupts without disruptive changes to `embassy_xx::interrupt`. 
						
						
					 
					
						2023-06-08 18:00:48 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						404aa29289 
					 
					
						
						
							
							cortex-m: remove owned interrupts.  
						
						 
						
						
						
						
					 
					
						2023-06-01 03:25:19 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								xoviat 
							
						 
					 
					
						
						
							
						
						316be179af 
					 
					
						
						
							
							stm32: move to bind_interrupts  
						
						 
						
						... 
						
						
						
						disable lora functionality for now 
						
						
					 
					
						2023-05-24 17:29:56 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								bors[bot] 
							
						 
					 
					
						
						
							
						
						41e90e22e2 
					 
					
						
						
							
							Merge  #1370  
						
						 
						
						... 
						
						
						
						1370: stm32/i2c: fix races when using dma. r=Dirbaio a=xoviat
This change addresses two races:
1. It removes the `chunks_transferred` state variable that is modified inside the interrupt. Analysis of the code reveals that the only time the waker can be woken is when `chunks_transferred` is incremented. Therefore, waking is enough to signal the `poll_fn` that the `chunks_transferred` has incremented. Moving to `remaining_len` clarifies the code, since there is no need to track how many chunks are remaining.
2. It moves the start of the transfer until after the waker is registered, which could theoretically occur if the clock speed is very low, but probably never would even if this wasn't fixed.
There is another race that I noticed: between writes the waker may not yet be registered. In that case, the code would simply be stuck and the `poll_fn` would never be woken. There is no way to resolve this without broadening the scope of the analysis, and this will likely never occur. 
Co-authored-by: xoviat <xoviat@users.noreply.github.com > 
						
						
					 
					
						2023-04-19 21:36:04 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								xoviat 
							
						 
					 
					
						
						
							
						
						64b80c2e4d 
					 
					
						
						
							
							stm32/i2c: ignore wakes without interrupt  
						
						 
						
						
						
						
					 
					
						2023-04-19 16:16:44 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						173c65b543 
					 
					
						
						
							
							stm32/dma: refactor.  
						
						 
						
						
						
						
					 
					
						2023-04-18 16:37:35 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								xoviat 
							
						 
					 
					
						
						
							
						
						f5216624bb 
					 
					
						
						
							
							stm32/i2c: fix races when using dma.  
						
						 
						
						... 
						
						
						
						fixes  #1341 . 
						
						
					 
					
						2023-04-17 15:24:24 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Glenn Dirkx 
							
						 
					 
					
						
						
							
						
						6760258ec3 
					 
					
						
						
							
							fix I2C controller problems after NACK  
						
						 
						
						
						
						
					 
					
						2023-04-10 16:20:47 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						be37eee13d 
					 
					
						
						
							
							Update embedded-hal crates.  
						
						 
						
						
						
						
					 
					
						2023-04-06 22:41:50 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								huntc 
							
						 
					 
					
						
						
							
						
						6ab4ecaf83 
					 
					
						
						
							
							Stop sampling when exiting the Saadc methods  
						
						 
						
						... 
						
						
						
						Prior to this commit, the onDrop function was being dropped immediately and not on exiting the Saadc sampling methods. 
						
						
					 
					
						2023-01-18 14:51:46 +11:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						10c9cc31b1 
					 
					
						
						
							
							Remove unnecessary use of atomic-polyfill.  
						
						 
						
						... 
						
						
						
						Only use it when CAS is actually needed. 
						
						
					 
					
						2022-12-23 20:46:49 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Dario Nieuwenhuis 
							
						 
					 
					
						
						
							
						
						1e2fb0459d 
					 
					
						
						
							
							Switch to async-fn-in-trait  
						
						 
						
						
						
						
					 
					
						2022-11-25 21:02:06 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chemicstry 
							
						 
					 
					
						
						
							
						
						52c03cf0a4 
					 
					
						
						
							
							Add more docs  
						
						 
						
						
						
						
					 
					
						2022-10-24 22:48:40 +03:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chemicstry 
							
						 
					 
					
						
						
							
						
						ac61e0ee9f 
					 
					
						
						
							
							fmt  
						
						 
						
						
						
						
					 
					
						2022-10-24 22:39:13 +03:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chemicstry 
							
						 
					 
					
						
						
							
						
						33f75419e5 
					 
					
						
						
							
							Unify i2cv1 definition with i2cv2  
						
						 
						
						
						
						
					 
					
						2022-10-24 22:34:10 +03:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								chemicstry 
							
						 
					 
					
						
						
							
						
						6062978d58 
					 
					
						
						
							
							Remove weird async timeouts  
						
						 
						
						
						
						
					 
					
						2022-10-24 22:22:20 +03:00