From d76bc45e3029718e954ce7e2ffd950211ce962c3 Mon Sep 17 00:00:00 2001 From: Grant Miller Date: Mon, 6 Dec 2021 16:51:10 -0600 Subject: [PATCH] Move Spi drop impl to mod --- embassy-stm32/src/spi/mod.rs | 10 ++++++++++ embassy-stm32/src/spi/v1.rs | 11 ----------- embassy-stm32/src/spi/v2.rs | 11 ----------- embassy-stm32/src/spi/v3.rs | 11 ----------- 4 files changed, 10 insertions(+), 33 deletions(-) diff --git a/embassy-stm32/src/spi/mod.rs b/embassy-stm32/src/spi/mod.rs index db8ce15f..410e16ee 100644 --- a/embassy-stm32/src/spi/mod.rs +++ b/embassy-stm32/src/spi/mod.rs @@ -339,6 +339,16 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> { } } +impl<'d, T: Instance, Tx, Rx> Drop for Spi<'d, T, Tx, Rx> { + fn drop(&mut self) { + unsafe { + self.sck.as_ref().map(|x| x.set_as_analog()); + self.mosi.as_ref().map(|x| x.set_as_analog()); + self.miso.as_ref().map(|x| x.set_as_analog()); + } + } +} + trait RegsExt { fn tx_ptr(&self) -> *mut W; fn rx_ptr(&self) -> *mut W; diff --git a/embassy-stm32/src/spi/v1.rs b/embassy-stm32/src/spi/v1.rs index cd9383d1..255bd950 100644 --- a/embassy-stm32/src/spi/v1.rs +++ b/embassy-stm32/src/spi/v1.rs @@ -1,7 +1,6 @@ #![macro_use] use crate::dma::NoDma; -use crate::gpio::sealed::Pin; use crate::spi::{Error, Instance, RegsExt, RxDmaChannel, TxDmaChannel, WordSize}; use core::future::Future; use core::ptr; @@ -156,16 +155,6 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> { } } -impl<'d, T: Instance, Tx, Rx> Drop for Spi<'d, T, Tx, Rx> { - fn drop(&mut self) { - unsafe { - self.sck.as_ref().map(|x| x.set_as_analog()); - self.mosi.as_ref().map(|x| x.set_as_analog()); - self.miso.as_ref().map(|x| x.set_as_analog()); - } - } -} - impl<'d, T: Instance> embedded_hal::blocking::spi::Write for Spi<'d, T, NoDma, NoDma> { type Error = Error; diff --git a/embassy-stm32/src/spi/v2.rs b/embassy-stm32/src/spi/v2.rs index 9817311f..b1fae4bd 100644 --- a/embassy-stm32/src/spi/v2.rs +++ b/embassy-stm32/src/spi/v2.rs @@ -1,7 +1,6 @@ #![macro_use] use crate::dma::NoDma; -use crate::gpio::sealed::Pin; use crate::spi::{Error, Instance, RegsExt, RxDmaChannel, TxDmaChannel, WordSize}; use core::future::Future; use core::ptr; @@ -175,16 +174,6 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> { } } -impl<'d, T: Instance, Tx, Rx> Drop for Spi<'d, T, Tx, Rx> { - fn drop(&mut self) { - unsafe { - self.sck.as_ref().map(|x| x.set_as_analog()); - self.mosi.as_ref().map(|x| x.set_as_analog()); - self.miso.as_ref().map(|x| x.set_as_analog()); - } - } -} - trait Word {} impl Word for u8 {} diff --git a/embassy-stm32/src/spi/v3.rs b/embassy-stm32/src/spi/v3.rs index af39d3a0..052924db 100644 --- a/embassy-stm32/src/spi/v3.rs +++ b/embassy-stm32/src/spi/v3.rs @@ -1,7 +1,6 @@ #![macro_use] use crate::dma::NoDma; -use crate::gpio::sealed::Pin; use crate::spi::{Error, Instance, RegsExt, RxDmaChannel, TxDmaChannel, WordSize}; use core::future::Future; use core::ptr; @@ -178,16 +177,6 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> { } } -impl<'d, T: Instance, Tx, Rx> Drop for Spi<'d, T, Tx, Rx> { - fn drop(&mut self) { - unsafe { - self.sck.as_ref().map(|x| x.set_as_analog()); - self.mosi.as_ref().map(|x| x.set_as_analog()); - self.miso.as_ref().map(|x| x.set_as_analog()); - } - } -} - impl<'d, T: Instance> embedded_hal::blocking::spi::Write for Spi<'d, T, NoDma, NoDma> { type Error = Error;