stm32: move dma trait impls from macrotables to build.rs

This commit is contained in:
Dario Nieuwenhuis
2022-02-23 18:55:16 +01:00
parent bc053404ca
commit b4abb1f5c2
6 changed files with 60 additions and 47 deletions

View File

@ -482,15 +482,6 @@ crate::pac::interrupts! {
dma_trait!(FrameDma, Instance);
crate::pac::peripheral_dma_channels! {
($peri:ident, dcmi, $kind:ident, PSSI, $channel:tt, $request:expr) => {
dma_trait_impl!(FrameDma, $peri, $channel, $request);
};
($peri:ident, dcmi, $kind:ident, DCMI, $channel:tt, $request:expr) => {
dma_trait_impl!(FrameDma, $peri, $channel, $request);
};
}
crate::pac::peripheral_pins!(
($inst:ident, dcmi, DCMI, $pin:ident, D0, $af:expr) => {
pin_trait_impl!(D0Pin, $inst, $pin, $af);

View File

@ -91,12 +91,3 @@ crate::pac::peripheral_pins!(
pin_trait_impl!(SdaPin, $inst, $pin, 0);
};
);
crate::pac::peripheral_dma_channels! {
($peri:ident, i2c, $kind:ident, RX, $channel:tt, $request:expr) => {
dma_trait_impl!(RxDma, $peri, $channel, $request);
};
($peri:ident, i2c, $kind:ident, TX, $channel:tt, $request:expr) => {
dma_trait_impl!(TxDma, $peri, $channel, $request);
};
}

View File

@ -911,12 +911,3 @@ crate::pac::peripheral_pins!(
pin_trait_impl!(MisoPin, $inst, $pin, 0);
};
);
crate::pac::peripheral_dma_channels! {
($peri:ident, spi, $kind:ident, RX, $channel:tt, $request:expr) => {
dma_trait_impl!(RxDma, $peri, $channel, $request);
};
($peri:ident, spi, $kind:ident, TX, $channel:tt, $request:expr) => {
dma_trait_impl!(TxDma, $peri, $channel, $request);
};
}

View File

@ -31,8 +31,8 @@ macro_rules! dma_trait {
#[allow(unused)]
macro_rules! dma_trait_impl {
// DMAMUX
($signal:ident, $instance:ident, {dmamux: $dmamux:ident}, $request:expr) => {
impl<T> $signal<crate::peripherals::$instance> for T
(crate::$mod:ident::$trait:ident, $instance:ident, {dmamux: $dmamux:ident}, $request:expr) => {
impl<T> crate::$mod::$trait<crate::peripherals::$instance> for T
where
T: crate::dma::MuxChannel<Mux = crate::dma::$dmamux>,
{
@ -43,8 +43,8 @@ macro_rules! dma_trait_impl {
};
// No DMAMUX
($signal:ident, $instance:ident, {channel: $channel:ident}, $request:expr) => {
impl $signal<crate::peripherals::$instance> for crate::peripherals::$channel {
(crate::$mod:ident::$trait:ident, $instance:ident, {channel: $channel:ident}, $request:expr) => {
impl crate::$mod::$trait<crate::peripherals::$instance> for crate::peripherals::$channel {
fn request(&self) -> crate::dma::Request {
$request
}

View File

@ -712,18 +712,3 @@ crate::pac::peripheral_pins!(
pin_trait_impl!(CkPin, $inst, $pin, 0);
};
);
crate::pac::peripheral_dma_channels! {
($peri:ident, usart, $kind:ident, RX, $channel:tt, $request:expr) => {
dma_trait_impl!(RxDma, $peri, $channel, $request);
};
($peri:ident, usart, $kind:ident, TX, $channel:tt, $request:expr) => {
dma_trait_impl!(TxDma, $peri, $channel, $request);
};
($peri:ident, uart, $kind:ident, RX, $channel:tt, $request:expr) => {
dma_trait_impl!(RxDma, $peri, $channel, $request);
};
($peri:ident, uart, $kind:ident, TX, $channel:tt, $request:expr) => {
dma_trait_impl!(TxDma, $peri, $channel, $request);
};
}