Skip to content

Commit cb80779

Browse files
committed
f7dma
1 parent b5f8ac2 commit cb80779

File tree

6 files changed

+450
-300
lines changed

6 files changed

+450
-300
lines changed

Cargo.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,8 @@ dma = []
616616
uart_v1 = []
617617
uart_v2 = []
618618
usb_hs_phy = []
619+
dfsdm = []
620+
sai = []
619621

620622
adc2 = []
621623
adc3 = []
@@ -636,7 +638,6 @@ crs = []
636638
dac = []
637639
dcmi = []
638640
debug = []
639-
dfsdm = []
640641
dfsdm1 = ["dfsdm"]
641642
dfsdm2 = ["dfsdm"]
642643
dsihost = []
@@ -694,8 +695,8 @@ pwr = []
694695
rf = []
695696
rng = []
696697
rtc = []
697-
sai1 = []
698-
sai2 = []
698+
sai1 = ["sai"]
699+
sai2 = ["sai"]
699700
sai3 = []
700701
sai4 = []
701702
sdio = []

src/dma/traits.rs

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,11 @@ pub trait Channel {}
257257
pub unsafe trait DMASet<STREAM, const CHANNEL: u8, DIRECTION> {}
258258

259259
macro_rules! dma_map {
260-
($(($Stream:ty:$C:literal, $Peripheral:ty, $Dir:ty $(|$Dir2:ty)?)),+ $(,)*) => {
260+
($(($Stream:ty:$C:literal, $Peripheral:ty, [$($Dir:ty)|+])),+ $(,)*) => {
261261
$(
262-
unsafe impl DMASet<$Stream, $C, $Dir> for $Peripheral {}
263262
$(
264-
unsafe impl DMASet<$Stream, $C, $Dir2> for $Peripheral {}
265-
)?
263+
unsafe impl DMASet<$Stream, $C, $Dir> for $Peripheral {}
264+
)+
266265
)+
267266
};
268267
}
@@ -354,3 +353,30 @@ mod wb;
354353
#[cfg(feature = "wb")]
355354
pub use wb::*;
356355
*/
356+
357+
#[cfg(feature = "dfsdm")]
358+
pub struct FLT<T, const F: u8> {
359+
_per: PhantomData<T>,
360+
}
361+
362+
#[cfg(feature = "dfsdm")]
363+
impl<T, const F: u8> crate::Sealed for FLT<T, F> {}
364+
365+
#[cfg(feature = "sai")]
366+
pub struct SAICH<T, const C: u8> {
367+
_per: PhantomData<T>,
368+
}
369+
370+
#[cfg(feature = "sai")]
371+
impl<T, const C: u8> crate::Sealed for SAICH<T, C> {}
372+
373+
dma_map!(
374+
(Stream0<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
375+
(Stream1<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
376+
(Stream2<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
377+
(Stream3<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
378+
(Stream4<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
379+
(Stream5<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
380+
(Stream6<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
381+
(Stream7<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
382+
);

0 commit comments

Comments
 (0)