diff --git a/embassy-stm32/src/adc/f1.rs b/embassy-stm32/src/adc/f1.rs index cc7ffdea8..3822d5032 100644 --- a/embassy-stm32/src/adc/f1.rs +++ b/embassy-stm32/src/adc/f1.rs @@ -4,7 +4,7 @@ use core::task::Poll; use embassy_hal_internal::into_ref; -use super::{blocking_delay_us, InternalChannel}; +use super::blocking_delay_us; use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; use crate::time::Hertz; use crate::{interrupt, Peripheral}; @@ -32,8 +32,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl } pub struct Vref; -impl<T: Instance> InternalChannel<T> for Vref {} -impl<T: Instance> super::SealedInternalChannel<T> for Vref {} impl<T: Instance> AdcChannel<T> for Vref {} impl<T: Instance> super::SealedAdcChannel<T> for Vref { fn channel(&self) -> u8 { @@ -42,8 +40,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Vref { } pub struct Temperature; -impl<T: Instance> InternalChannel<T> for Temperature {} -impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} impl<T: Instance> AdcChannel<T> for Temperature {} impl<T: Instance> super::SealedAdcChannel<T> for Temperature { fn channel(&self) -> u8 { diff --git a/embassy-stm32/src/adc/f3.rs b/embassy-stm32/src/adc/f3.rs index 363ddbe3a..3f076d64b 100644 --- a/embassy-stm32/src/adc/f3.rs +++ b/embassy-stm32/src/adc/f3.rs @@ -4,7 +4,7 @@ use core::task::Poll; use embassy_hal_internal::into_ref; -use super::{blocking_delay_us, InternalChannel}; +use super::blocking_delay_us; use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; use crate::interrupt::typelevel::Interrupt; use crate::time::Hertz; @@ -32,8 +32,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl } pub struct Vref; -impl<T: Instance> InternalChannel<T> for Vref {} -impl<T: Instance> super::SealedInternalChannel<T> for Vref {} impl<T: Instance> AdcChannel<T> for Vref {} impl<T: Instance> super::SealedAdcChannel<T> for Vref { fn channel(&self) -> u8 { @@ -49,8 +47,6 @@ impl Vref { } pub struct Temperature; -impl<T: Instance> InternalChannel<T> for Temperature {} -impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} impl<T: Instance> AdcChannel<T> for Temperature {} impl<T: Instance> super::SealedAdcChannel<T> for Temperature { fn channel(&self) -> u8 { diff --git a/embassy-stm32/src/adc/f3_v1_1.rs b/embassy-stm32/src/adc/f3_v1_1.rs index 73bfe4876..106956989 100644 --- a/embassy-stm32/src/adc/f3_v1_1.rs +++ b/embassy-stm32/src/adc/f3_v1_1.rs @@ -6,7 +6,7 @@ use embassy_futures::yield_now; use embassy_hal_internal::into_ref; use embassy_time::Instant; -use super::{InternalChannel, Resolution}; +use super::Resolution; use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; use crate::interrupt::typelevel::Interrupt; use crate::time::Hertz; @@ -64,8 +64,6 @@ fn update_vref<T: Instance>(op: i8) { } pub struct Vref<T: Instance>(core::marker::PhantomData<T>); -impl<T: Instance> InternalChannel<T> for Vref<T> {} -impl<T: Instance> super::SealedInternalChannel<T> for Vref<T> {} impl<T: Instance> AdcChannel<T> for Vref<T> {} impl<T: Instance> super::SealedAdcChannel<T> for Vref<T> { fn channel(&self) -> u8 { @@ -125,8 +123,6 @@ impl<T: Instance> Drop for Vref<T> { } pub struct Temperature<T: Instance>(core::marker::PhantomData<T>); -impl<T: Instance> InternalChannel<T> for Temperature<T> {} -impl<T: Instance> super::SealedInternalChannel<T> for Temperature<T> {} impl<T: Instance> AdcChannel<T> for Temperature<T> {} impl<T: Instance> super::SealedAdcChannel<T> for Temperature<T> { fn channel(&self) -> u8 { diff --git a/embassy-stm32/src/adc/g4.rs b/embassy-stm32/src/adc/g4.rs index f9751bd92..ce7f5db70 100644 --- a/embassy-stm32/src/adc/g4.rs +++ b/embassy-stm32/src/adc/g4.rs @@ -2,7 +2,7 @@ use pac::adc::vals::{Adcaldif, Difsel, Exten}; use pac::adccommon::vals::Presc; -use super::{blocking_delay_us, Adc, AdcChannel, Instance, InternalChannel, Resolution, SampleTime}; +use super::{blocking_delay_us, Adc, AdcChannel, Instance, Resolution, SampleTime}; use crate::time::Hertz; use crate::{pac, Peripheral}; @@ -33,8 +33,6 @@ const VBAT_CHANNEL: u8 = 17; // NOTE: Vrefint/Temperature/Vbat are not available on all ADCs, this currently cannot be modeled with stm32-data, so these are available from the software on all ADCs /// Internal voltage reference channel. pub struct VrefInt; -impl<T: Instance> InternalChannel<T> for VrefInt {} -impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {} impl<T: Instance> AdcChannel<T> for VrefInt {} impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { fn channel(&self) -> u8 { @@ -44,8 +42,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { /// Internal temperature channel. pub struct Temperature; -impl<T: Instance> InternalChannel<T> for Temperature {} -impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} impl<T: Instance> AdcChannel<T> for Temperature {} impl<T: Instance> super::SealedAdcChannel<T> for Temperature { fn channel(&self) -> u8 { @@ -55,8 +51,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature { /// Internal battery voltage channel. pub struct Vbat; -impl<T: Instance> InternalChannel<T> for Vbat {} -impl<T: Instance> super::SealedInternalChannel<T> for Vbat {} impl<T: Instance> AdcChannel<T> for Vbat {} impl<T: Instance> super::SealedAdcChannel<T> for Vbat { fn channel(&self) -> u8 { diff --git a/embassy-stm32/src/adc/mod.rs b/embassy-stm32/src/adc/mod.rs index 9a15b4434..040ee9c53 100644 --- a/embassy-stm32/src/adc/mod.rs +++ b/embassy-stm32/src/adc/mod.rs @@ -60,8 +60,6 @@ trait SealedInstance { fn state() -> &'static State; } -pub(crate) trait SealedAdcPin<T: Instance> {} -pub(crate) trait SealedInternalChannel<T> {} pub(crate) trait SealedAdcChannel<T> { #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] fn setup(&mut self) {} @@ -123,12 +121,6 @@ pub trait Instance: SealedInstance + crate::Peripheral<P = Self> + crate::rcc::R type Interrupt: crate::interrupt::typelevel::Interrupt; } -/// ADC pin. -#[allow(private_bounds)] -pub trait AdcPin<T: Instance>: AdcChannel<T> + SealedAdcPin<T> {} -/// ADC internal channel. -#[allow(private_bounds)] -pub trait InternalChannel<T>: AdcChannel<T> + SealedInternalChannel<T> {} /// ADC channel. #[allow(private_bounds)] pub trait AdcChannel<T>: SealedAdcChannel<T> + Sized { @@ -187,9 +179,6 @@ foreach_adc!( macro_rules! impl_adc_pin { ($inst:ident, $pin:ident, $ch:expr) => { - impl crate::adc::AdcPin<peripherals::$inst> for crate::peripherals::$pin {} - impl crate::adc::SealedAdcPin<peripherals::$inst> for crate::peripherals::$pin {} - impl crate::adc::AdcChannel<peripherals::$inst> for crate::peripherals::$pin {} impl crate::adc::SealedAdcChannel<peripherals::$inst> for crate::peripherals::$pin { #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] diff --git a/embassy-stm32/src/adc/v1.rs b/embassy-stm32/src/adc/v1.rs index abd58952d..090790c39 100644 --- a/embassy-stm32/src/adc/v1.rs +++ b/embassy-stm32/src/adc/v1.rs @@ -6,7 +6,7 @@ use embassy_hal_internal::into_ref; #[cfg(adc_l0)] use stm32_metapac::adc::vals::Ckmode; -use super::{blocking_delay_us, InternalChannel}; +use super::blocking_delay_us; use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; use crate::interrupt::typelevel::Interrupt; use crate::peripherals::ADC1; @@ -35,12 +35,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl #[cfg(not(adc_l0))] pub struct Vbat; -#[cfg(not(adc_l0))] -impl InternalChannel<ADC1> for Vbat {} - -#[cfg(not(adc_l0))] -impl super::SealedInternalChannel<ADC1> for Vbat {} - #[cfg(not(adc_l0))] impl AdcChannel<ADC1> for Vbat {} @@ -52,8 +46,6 @@ impl super::SealedAdcChannel<ADC1> for Vbat { } pub struct Vref; -impl InternalChannel<ADC1> for Vref {} -impl super::SealedInternalChannel<ADC1> for Vref {} impl AdcChannel<ADC1> for Vref {} impl super::SealedAdcChannel<ADC1> for Vref { fn channel(&self) -> u8 { @@ -62,8 +54,6 @@ impl super::SealedAdcChannel<ADC1> for Vref { } pub struct Temperature; -impl InternalChannel<ADC1> for Temperature {} -impl super::SealedInternalChannel<ADC1> for Temperature {} impl AdcChannel<ADC1> for Temperature {} impl super::SealedAdcChannel<ADC1> for Temperature { fn channel(&self) -> u8 { diff --git a/embassy-stm32/src/adc/v2.rs b/embassy-stm32/src/adc/v2.rs index f7b791903..033108195 100644 --- a/embassy-stm32/src/adc/v2.rs +++ b/embassy-stm32/src/adc/v2.rs @@ -1,6 +1,6 @@ use embassy_hal_internal::into_ref; -use super::{blocking_delay_us, InternalChannel}; +use super::blocking_delay_us; use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; use crate::peripherals::ADC1; use crate::time::Hertz; @@ -12,8 +12,6 @@ pub const VREF_DEFAULT_MV: u32 = 3300; pub const VREF_CALIB_MV: u32 = 3300; pub struct VrefInt; -impl InternalChannel<ADC1> for VrefInt {} -impl super::SealedInternalChannel<ADC1> for VrefInt {} impl AdcChannel<ADC1> for VrefInt {} impl super::SealedAdcChannel<ADC1> for VrefInt { fn channel(&self) -> u8 { @@ -29,8 +27,6 @@ impl VrefInt { } pub struct Temperature; -impl InternalChannel<ADC1> for Temperature {} -impl super::SealedInternalChannel<ADC1> for Temperature {} impl AdcChannel<ADC1> for Temperature {} impl super::SealedAdcChannel<ADC1> for Temperature { fn channel(&self) -> u8 { @@ -52,8 +48,6 @@ impl Temperature { } pub struct Vbat; -impl InternalChannel<ADC1> for Vbat {} -impl super::SealedInternalChannel<ADC1> for Vbat {} impl AdcChannel<ADC1> for Vbat {} impl super::SealedAdcChannel<ADC1> for Vbat { fn channel(&self) -> u8 { diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs index 36e0e3df3..be857f4dd 100644 --- a/embassy-stm32/src/adc/v3.rs +++ b/embassy-stm32/src/adc/v3.rs @@ -1,7 +1,7 @@ use cfg_if::cfg_if; use embassy_hal_internal::into_ref; -use super::{blocking_delay_us, InternalChannel}; +use super::blocking_delay_us; use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; use crate::Peripheral; @@ -11,8 +11,6 @@ pub const VREF_DEFAULT_MV: u32 = 3300; pub const VREF_CALIB_MV: u32 = 3000; pub struct VrefInt; -impl<T: Instance> InternalChannel<T> for VrefInt {} -impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {} impl<T: Instance> AdcChannel<T> for VrefInt {} impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { fn channel(&self) -> u8 { @@ -32,8 +30,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { } pub struct Temperature; -impl<T: Instance> InternalChannel<T> for Temperature {} -impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} impl<T: Instance> AdcChannel<T> for Temperature {} impl<T: Instance> super::SealedAdcChannel<T> for Temperature { fn channel(&self) -> u8 { @@ -53,8 +49,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature { } pub struct Vbat; -impl<T: Instance> InternalChannel<T> for Vbat {} -impl<T: Instance> super::SealedInternalChannel<T> for Vbat {} impl<T: Instance> AdcChannel<T> for Vbat {} impl<T: Instance> super::SealedAdcChannel<T> for Vbat { fn channel(&self) -> u8 { @@ -76,8 +70,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Vbat { cfg_if! { if #[cfg(adc_h5)] { pub struct VddCore; - impl<T: Instance> InternalChannel<T> for VddCore {} - impl<T: Instance> super::SealedInternalChannel<T> for VddCore {} impl<T: Instance> AdcChannel<T> for VddCore {} impl<T: Instance> super::SealedAdcChannel<T> for VddCore { fn channel(&self) -> u8 { @@ -90,8 +82,6 @@ cfg_if! { cfg_if! { if #[cfg(adc_u0)] { pub struct DacOut; - impl<T: Instance> InternalChannel<T> for DacOut {} - impl<T: Instance> super::SealedInternalChannel<T> for DacOut {} impl<T: Instance> AdcChannel<T> for DacOut {} impl<T: Instance> super::SealedAdcChannel<T> for DacOut { fn channel(&self) -> u8 { diff --git a/embassy-stm32/src/adc/v4.rs b/embassy-stm32/src/adc/v4.rs index bf3a55797..f564114c2 100644 --- a/embassy-stm32/src/adc/v4.rs +++ b/embassy-stm32/src/adc/v4.rs @@ -2,7 +2,7 @@ use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; use pac::adccommon::vals::Presc; -use super::{blocking_delay_us, Adc, AdcChannel, Instance, InternalChannel, Resolution, SampleTime}; +use super::{blocking_delay_us, Adc, AdcChannel, Instance, Resolution, SampleTime}; use crate::time::Hertz; use crate::{pac, Peripheral}; @@ -33,8 +33,6 @@ const VBAT_CHANNEL: u8 = 17; // NOTE: Vrefint/Temperature/Vbat are not available on all ADCs, this currently cannot be modeled with stm32-data, so these are available from the software on all ADCs /// Internal voltage reference channel. pub struct VrefInt; -impl<T: Instance> InternalChannel<T> for VrefInt {} -impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {} impl<T: Instance> AdcChannel<T> for VrefInt {} impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { fn channel(&self) -> u8 { @@ -44,8 +42,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { /// Internal temperature channel. pub struct Temperature; -impl<T: Instance> InternalChannel<T> for Temperature {} -impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} impl<T: Instance> AdcChannel<T> for Temperature {} impl<T: Instance> super::SealedAdcChannel<T> for Temperature { fn channel(&self) -> u8 { @@ -55,8 +51,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature { /// Internal battery voltage channel. pub struct Vbat; -impl<T: Instance> InternalChannel<T> for Vbat {} -impl<T: Instance> super::SealedInternalChannel<T> for Vbat {} impl<T: Instance> AdcChannel<T> for Vbat {} impl<T: Instance> super::SealedAdcChannel<T> for Vbat { fn channel(&self) -> u8 {