Skip to content

Commit

Permalink
f7dma
Browse files Browse the repository at this point in the history
  • Loading branch information
burrbull committed May 4, 2023
1 parent b5f8ac2 commit cb80779
Show file tree
Hide file tree
Showing 6 changed files with 450 additions and 300 deletions.
7 changes: 4 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,8 @@ dma = []
uart_v1 = []
uart_v2 = []
usb_hs_phy = []
dfsdm = []
sai = []

adc2 = []
adc3 = []
Expand All @@ -636,7 +638,6 @@ crs = []
dac = []
dcmi = []
debug = []
dfsdm = []
dfsdm1 = ["dfsdm"]
dfsdm2 = ["dfsdm"]
dsihost = []
Expand Down Expand Up @@ -694,8 +695,8 @@ pwr = []
rf = []
rng = []
rtc = []
sai1 = []
sai2 = []
sai1 = ["sai"]
sai2 = ["sai"]
sai3 = []
sai4 = []
sdio = []
Expand Down
34 changes: 30 additions & 4 deletions src/dma/traits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -257,12 +257,11 @@ pub trait Channel {}
pub unsafe trait DMASet<STREAM, const CHANNEL: u8, DIRECTION> {}

macro_rules! dma_map {
($(($Stream:ty:$C:literal, $Peripheral:ty, $Dir:ty $(|$Dir2:ty)?)),+ $(,)*) => {
($(($Stream:ty:$C:literal, $Peripheral:ty, [$($Dir:ty)|+])),+ $(,)*) => {
$(
unsafe impl DMASet<$Stream, $C, $Dir> for $Peripheral {}
$(
unsafe impl DMASet<$Stream, $C, $Dir2> for $Peripheral {}
)?
unsafe impl DMASet<$Stream, $C, $Dir> for $Peripheral {}
)+
)+
};
}
Expand Down Expand Up @@ -354,3 +353,30 @@ mod wb;
#[cfg(feature = "wb")]
pub use wb::*;
*/

#[cfg(feature = "dfsdm")]
pub struct FLT<T, const F: u8> {
_per: PhantomData<T>,
}

#[cfg(feature = "dfsdm")]
impl<T, const F: u8> crate::Sealed for FLT<T, F> {}

#[cfg(feature = "sai")]
pub struct SAICH<T, const C: u8> {
_per: PhantomData<T>,
}

#[cfg(feature = "sai")]
impl<T, const C: u8> crate::Sealed for SAICH<T, C> {}

dma_map!(
(Stream0<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
(Stream1<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
(Stream2<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
(Stream3<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
(Stream4<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
(Stream5<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
(Stream6<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
(Stream7<DMA2>:0, MemoryToMemory<u8>, [MemoryToMemory<u8> | MemoryToMemory<u16> | MemoryToMemory<u32>]),
);
Loading

0 comments on commit cb80779

Please sign in to comment.