aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUniva <[email protected]>2024-05-22 19:00:48 -0400
committerUniva <[email protected]>2024-05-22 19:00:48 -0400
commit4e9206efb8fa49ad2ea0b5420db1d0e4cc22b6cc (patch)
tree3ea074af64e12fb06b7aed509385bb55a9a1e58b
parent41e11d86b9d2014c2d2b66dd55522a7dc77ac3d8 (diff)
remove InternalChannel and AdcPin
-rw-r--r--embassy-stm32/src/adc/f1.rs6
-rw-r--r--embassy-stm32/src/adc/f3.rs6
-rw-r--r--embassy-stm32/src/adc/f3_v1_1.rs6
-rw-r--r--embassy-stm32/src/adc/g4.rs8
-rw-r--r--embassy-stm32/src/adc/mod.rs11
-rw-r--r--embassy-stm32/src/adc/v1.rs12
-rw-r--r--embassy-stm32/src/adc/v2.rs8
-rw-r--r--embassy-stm32/src/adc/v3.rs12
-rw-r--r--embassy-stm32/src/adc/v4.rs8
9 files changed, 8 insertions, 69 deletions
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;
4 4
5use embassy_hal_internal::into_ref; 5use embassy_hal_internal::into_ref;
6 6
7use super::{blocking_delay_us, InternalChannel}; 7use super::blocking_delay_us;
8use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; 8use crate::adc::{Adc, AdcChannel, Instance, SampleTime};
9use crate::time::Hertz; 9use crate::time::Hertz;
10use crate::{interrupt, Peripheral}; 10use crate::{interrupt, Peripheral};
@@ -32,8 +32,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl
32} 32}
33 33
34pub struct Vref; 34pub struct Vref;
35impl<T: Instance> InternalChannel<T> for Vref {}
36impl<T: Instance> super::SealedInternalChannel<T> for Vref {}
37impl<T: Instance> AdcChannel<T> for Vref {} 35impl<T: Instance> AdcChannel<T> for Vref {}
38impl<T: Instance> super::SealedAdcChannel<T> for Vref { 36impl<T: Instance> super::SealedAdcChannel<T> for Vref {
39 fn channel(&self) -> u8 { 37 fn channel(&self) -> u8 {
@@ -42,8 +40,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Vref {
42} 40}
43 41
44pub struct Temperature; 42pub struct Temperature;
45impl<T: Instance> InternalChannel<T> for Temperature {}
46impl<T: Instance> super::SealedInternalChannel<T> for Temperature {}
47impl<T: Instance> AdcChannel<T> for Temperature {} 43impl<T: Instance> AdcChannel<T> for Temperature {}
48impl<T: Instance> super::SealedAdcChannel<T> for Temperature { 44impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
49 fn channel(&self) -> u8 { 45 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;
4 4
5use embassy_hal_internal::into_ref; 5use embassy_hal_internal::into_ref;
6 6
7use super::{blocking_delay_us, InternalChannel}; 7use super::blocking_delay_us;
8use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; 8use crate::adc::{Adc, AdcChannel, Instance, SampleTime};
9use crate::interrupt::typelevel::Interrupt; 9use crate::interrupt::typelevel::Interrupt;
10use crate::time::Hertz; 10use crate::time::Hertz;
@@ -32,8 +32,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl
32} 32}
33 33
34pub struct Vref; 34pub struct Vref;
35impl<T: Instance> InternalChannel<T> for Vref {}
36impl<T: Instance> super::SealedInternalChannel<T> for Vref {}
37impl<T: Instance> AdcChannel<T> for Vref {} 35impl<T: Instance> AdcChannel<T> for Vref {}
38impl<T: Instance> super::SealedAdcChannel<T> for Vref { 36impl<T: Instance> super::SealedAdcChannel<T> for Vref {
39 fn channel(&self) -> u8 { 37 fn channel(&self) -> u8 {
@@ -49,8 +47,6 @@ impl Vref {
49} 47}
50 48
51pub struct Temperature; 49pub struct Temperature;
52impl<T: Instance> InternalChannel<T> for Temperature {}
53impl<T: Instance> super::SealedInternalChannel<T> for Temperature {}
54impl<T: Instance> AdcChannel<T> for Temperature {} 50impl<T: Instance> AdcChannel<T> for Temperature {}
55impl<T: Instance> super::SealedAdcChannel<T> for Temperature { 51impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
56 fn channel(&self) -> u8 { 52 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;
6use embassy_hal_internal::into_ref; 6use embassy_hal_internal::into_ref;
7use embassy_time::Instant; 7use embassy_time::Instant;
8 8
9use super::{InternalChannel, Resolution}; 9use super::Resolution;
10use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; 10use crate::adc::{Adc, AdcChannel, Instance, SampleTime};
11use crate::interrupt::typelevel::Interrupt; 11use crate::interrupt::typelevel::Interrupt;
12use crate::time::Hertz; 12use crate::time::Hertz;
@@ -64,8 +64,6 @@ fn update_vref<T: Instance>(op: i8) {
64} 64}
65 65
66pub struct Vref<T: Instance>(core::marker::PhantomData<T>); 66pub struct Vref<T: Instance>(core::marker::PhantomData<T>);
67impl<T: Instance> InternalChannel<T> for Vref<T> {}
68impl<T: Instance> super::SealedInternalChannel<T> for Vref<T> {}
69impl<T: Instance> AdcChannel<T> for Vref<T> {} 67impl<T: Instance> AdcChannel<T> for Vref<T> {}
70impl<T: Instance> super::SealedAdcChannel<T> for Vref<T> { 68impl<T: Instance> super::SealedAdcChannel<T> for Vref<T> {
71 fn channel(&self) -> u8 { 69 fn channel(&self) -> u8 {
@@ -125,8 +123,6 @@ impl<T: Instance> Drop for Vref<T> {
125} 123}
126 124
127pub struct Temperature<T: Instance>(core::marker::PhantomData<T>); 125pub struct Temperature<T: Instance>(core::marker::PhantomData<T>);
128impl<T: Instance> InternalChannel<T> for Temperature<T> {}
129impl<T: Instance> super::SealedInternalChannel<T> for Temperature<T> {}
130impl<T: Instance> AdcChannel<T> for Temperature<T> {} 126impl<T: Instance> AdcChannel<T> for Temperature<T> {}
131impl<T: Instance> super::SealedAdcChannel<T> for Temperature<T> { 127impl<T: Instance> super::SealedAdcChannel<T> for Temperature<T> {
132 fn channel(&self) -> u8 { 128 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 @@
2use pac::adc::vals::{Adcaldif, Difsel, Exten}; 2use pac::adc::vals::{Adcaldif, Difsel, Exten};
3use pac::adccommon::vals::Presc; 3use pac::adccommon::vals::Presc;
4 4
5use super::{blocking_delay_us, Adc, AdcChannel, Instance, InternalChannel, Resolution, SampleTime}; 5use super::{blocking_delay_us, Adc, AdcChannel, Instance, Resolution, SampleTime};
6use crate::time::Hertz; 6use crate::time::Hertz;
7use crate::{pac, Peripheral}; 7use crate::{pac, Peripheral};
8 8
@@ -33,8 +33,6 @@ const VBAT_CHANNEL: u8 = 17;
33// 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 33// 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
34/// Internal voltage reference channel. 34/// Internal voltage reference channel.
35pub struct VrefInt; 35pub struct VrefInt;
36impl<T: Instance> InternalChannel<T> for VrefInt {}
37impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {}
38impl<T: Instance> AdcChannel<T> for VrefInt {} 36impl<T: Instance> AdcChannel<T> for VrefInt {}
39impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { 37impl<T: Instance> super::SealedAdcChannel<T> for VrefInt {
40 fn channel(&self) -> u8 { 38 fn channel(&self) -> u8 {
@@ -44,8 +42,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt {
44 42
45/// Internal temperature channel. 43/// Internal temperature channel.
46pub struct Temperature; 44pub struct Temperature;
47impl<T: Instance> InternalChannel<T> for Temperature {}
48impl<T: Instance> super::SealedInternalChannel<T> for Temperature {}
49impl<T: Instance> AdcChannel<T> for Temperature {} 45impl<T: Instance> AdcChannel<T> for Temperature {}
50impl<T: Instance> super::SealedAdcChannel<T> for Temperature { 46impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
51 fn channel(&self) -> u8 { 47 fn channel(&self) -> u8 {
@@ -55,8 +51,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
55 51
56/// Internal battery voltage channel. 52/// Internal battery voltage channel.
57pub struct Vbat; 53pub struct Vbat;
58impl<T: Instance> InternalChannel<T> for Vbat {}
59impl<T: Instance> super::SealedInternalChannel<T> for Vbat {}
60impl<T: Instance> AdcChannel<T> for Vbat {} 54impl<T: Instance> AdcChannel<T> for Vbat {}
61impl<T: Instance> super::SealedAdcChannel<T> for Vbat { 55impl<T: Instance> super::SealedAdcChannel<T> for Vbat {
62 fn channel(&self) -> u8 { 56 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 {
60 fn state() -> &'static State; 60 fn state() -> &'static State;
61} 61}
62 62
63pub(crate) trait SealedAdcPin<T: Instance> {}
64pub(crate) trait SealedInternalChannel<T> {}
65pub(crate) trait SealedAdcChannel<T> { 63pub(crate) trait SealedAdcChannel<T> {
66 #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] 64 #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))]
67 fn setup(&mut self) {} 65 fn setup(&mut self) {}
@@ -123,12 +121,6 @@ pub trait Instance: SealedInstance + crate::Peripheral<P = Self> + crate::rcc::R
123 type Interrupt: crate::interrupt::typelevel::Interrupt; 121 type Interrupt: crate::interrupt::typelevel::Interrupt;
124} 122}
125 123
126/// ADC pin.
127#[allow(private_bounds)]
128pub trait AdcPin<T: Instance>: AdcChannel<T> + SealedAdcPin<T> {}
129/// ADC internal channel.
130#[allow(private_bounds)]
131pub trait InternalChannel<T>: AdcChannel<T> + SealedInternalChannel<T> {}
132/// ADC channel. 124/// ADC channel.
133#[allow(private_bounds)] 125#[allow(private_bounds)]
134pub trait AdcChannel<T>: SealedAdcChannel<T> + Sized { 126pub trait AdcChannel<T>: SealedAdcChannel<T> + Sized {
@@ -187,9 +179,6 @@ foreach_adc!(
187 179
188macro_rules! impl_adc_pin { 180macro_rules! impl_adc_pin {
189 ($inst:ident, $pin:ident, $ch:expr) => { 181 ($inst:ident, $pin:ident, $ch:expr) => {
190 impl crate::adc::AdcPin<peripherals::$inst> for crate::peripherals::$pin {}
191 impl crate::adc::SealedAdcPin<peripherals::$inst> for crate::peripherals::$pin {}
192
193 impl crate::adc::AdcChannel<peripherals::$inst> for crate::peripherals::$pin {} 182 impl crate::adc::AdcChannel<peripherals::$inst> for crate::peripherals::$pin {}
194 impl crate::adc::SealedAdcChannel<peripherals::$inst> for crate::peripherals::$pin { 183 impl crate::adc::SealedAdcChannel<peripherals::$inst> for crate::peripherals::$pin {
195 #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] 184 #[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;
6#[cfg(adc_l0)] 6#[cfg(adc_l0)]
7use stm32_metapac::adc::vals::Ckmode; 7use stm32_metapac::adc::vals::Ckmode;
8 8
9use super::{blocking_delay_us, InternalChannel}; 9use super::blocking_delay_us;
10use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; 10use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime};
11use crate::interrupt::typelevel::Interrupt; 11use crate::interrupt::typelevel::Interrupt;
12use crate::peripherals::ADC1; 12use crate::peripherals::ADC1;
@@ -36,12 +36,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl
36pub struct Vbat; 36pub struct Vbat;
37 37
38#[cfg(not(adc_l0))] 38#[cfg(not(adc_l0))]
39impl InternalChannel<ADC1> for Vbat {}
40
41#[cfg(not(adc_l0))]
42impl super::SealedInternalChannel<ADC1> for Vbat {}
43
44#[cfg(not(adc_l0))]
45impl AdcChannel<ADC1> for Vbat {} 39impl AdcChannel<ADC1> for Vbat {}
46 40
47#[cfg(not(adc_l0))] 41#[cfg(not(adc_l0))]
@@ -52,8 +46,6 @@ impl super::SealedAdcChannel<ADC1> for Vbat {
52} 46}
53 47
54pub struct Vref; 48pub struct Vref;
55impl InternalChannel<ADC1> for Vref {}
56impl super::SealedInternalChannel<ADC1> for Vref {}
57impl AdcChannel<ADC1> for Vref {} 49impl AdcChannel<ADC1> for Vref {}
58impl super::SealedAdcChannel<ADC1> for Vref { 50impl super::SealedAdcChannel<ADC1> for Vref {
59 fn channel(&self) -> u8 { 51 fn channel(&self) -> u8 {
@@ -62,8 +54,6 @@ impl super::SealedAdcChannel<ADC1> for Vref {
62} 54}
63 55
64pub struct Temperature; 56pub struct Temperature;
65impl InternalChannel<ADC1> for Temperature {}
66impl super::SealedInternalChannel<ADC1> for Temperature {}
67impl AdcChannel<ADC1> for Temperature {} 57impl AdcChannel<ADC1> for Temperature {}
68impl super::SealedAdcChannel<ADC1> for Temperature { 58impl super::SealedAdcChannel<ADC1> for Temperature {
69 fn channel(&self) -> u8 { 59 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 @@
1use embassy_hal_internal::into_ref; 1use embassy_hal_internal::into_ref;
2 2
3use super::{blocking_delay_us, InternalChannel}; 3use super::blocking_delay_us;
4use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; 4use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime};
5use crate::peripherals::ADC1; 5use crate::peripherals::ADC1;
6use crate::time::Hertz; 6use crate::time::Hertz;
@@ -12,8 +12,6 @@ pub const VREF_DEFAULT_MV: u32 = 3300;
12pub const VREF_CALIB_MV: u32 = 3300; 12pub const VREF_CALIB_MV: u32 = 3300;
13 13
14pub struct VrefInt; 14pub struct VrefInt;
15impl InternalChannel<ADC1> for VrefInt {}
16impl super::SealedInternalChannel<ADC1> for VrefInt {}
17impl AdcChannel<ADC1> for VrefInt {} 15impl AdcChannel<ADC1> for VrefInt {}
18impl super::SealedAdcChannel<ADC1> for VrefInt { 16impl super::SealedAdcChannel<ADC1> for VrefInt {
19 fn channel(&self) -> u8 { 17 fn channel(&self) -> u8 {
@@ -29,8 +27,6 @@ impl VrefInt {
29} 27}
30 28
31pub struct Temperature; 29pub struct Temperature;
32impl InternalChannel<ADC1> for Temperature {}
33impl super::SealedInternalChannel<ADC1> for Temperature {}
34impl AdcChannel<ADC1> for Temperature {} 30impl AdcChannel<ADC1> for Temperature {}
35impl super::SealedAdcChannel<ADC1> for Temperature { 31impl super::SealedAdcChannel<ADC1> for Temperature {
36 fn channel(&self) -> u8 { 32 fn channel(&self) -> u8 {
@@ -52,8 +48,6 @@ impl Temperature {
52} 48}
53 49
54pub struct Vbat; 50pub struct Vbat;
55impl InternalChannel<ADC1> for Vbat {}
56impl super::SealedInternalChannel<ADC1> for Vbat {}
57impl AdcChannel<ADC1> for Vbat {} 51impl AdcChannel<ADC1> for Vbat {}
58impl super::SealedAdcChannel<ADC1> for Vbat { 52impl super::SealedAdcChannel<ADC1> for Vbat {
59 fn channel(&self) -> u8 { 53 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 @@
1use cfg_if::cfg_if; 1use cfg_if::cfg_if;
2use embassy_hal_internal::into_ref; 2use embassy_hal_internal::into_ref;
3 3
4use super::{blocking_delay_us, InternalChannel}; 4use super::blocking_delay_us;
5use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; 5use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime};
6use crate::Peripheral; 6use crate::Peripheral;
7 7
@@ -11,8 +11,6 @@ pub const VREF_DEFAULT_MV: u32 = 3300;
11pub const VREF_CALIB_MV: u32 = 3000; 11pub const VREF_CALIB_MV: u32 = 3000;
12 12
13pub struct VrefInt; 13pub struct VrefInt;
14impl<T: Instance> InternalChannel<T> for VrefInt {}
15impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {}
16impl<T: Instance> AdcChannel<T> for VrefInt {} 14impl<T: Instance> AdcChannel<T> for VrefInt {}
17impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { 15impl<T: Instance> super::SealedAdcChannel<T> for VrefInt {
18 fn channel(&self) -> u8 { 16 fn channel(&self) -> u8 {
@@ -32,8 +30,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt {
32} 30}
33 31
34pub struct Temperature; 32pub struct Temperature;
35impl<T: Instance> InternalChannel<T> for Temperature {}
36impl<T: Instance> super::SealedInternalChannel<T> for Temperature {}
37impl<T: Instance> AdcChannel<T> for Temperature {} 33impl<T: Instance> AdcChannel<T> for Temperature {}
38impl<T: Instance> super::SealedAdcChannel<T> for Temperature { 34impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
39 fn channel(&self) -> u8 { 35 fn channel(&self) -> u8 {
@@ -53,8 +49,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
53} 49}
54 50
55pub struct Vbat; 51pub struct Vbat;
56impl<T: Instance> InternalChannel<T> for Vbat {}
57impl<T: Instance> super::SealedInternalChannel<T> for Vbat {}
58impl<T: Instance> AdcChannel<T> for Vbat {} 52impl<T: Instance> AdcChannel<T> for Vbat {}
59impl<T: Instance> super::SealedAdcChannel<T> for Vbat { 53impl<T: Instance> super::SealedAdcChannel<T> for Vbat {
60 fn channel(&self) -> u8 { 54 fn channel(&self) -> u8 {
@@ -76,8 +70,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Vbat {
76cfg_if! { 70cfg_if! {
77 if #[cfg(adc_h5)] { 71 if #[cfg(adc_h5)] {
78 pub struct VddCore; 72 pub struct VddCore;
79 impl<T: Instance> InternalChannel<T> for VddCore {}
80 impl<T: Instance> super::SealedInternalChannel<T> for VddCore {}
81 impl<T: Instance> AdcChannel<T> for VddCore {} 73 impl<T: Instance> AdcChannel<T> for VddCore {}
82 impl<T: Instance> super::SealedAdcChannel<T> for VddCore { 74 impl<T: Instance> super::SealedAdcChannel<T> for VddCore {
83 fn channel(&self) -> u8 { 75 fn channel(&self) -> u8 {
@@ -90,8 +82,6 @@ cfg_if! {
90cfg_if! { 82cfg_if! {
91 if #[cfg(adc_u0)] { 83 if #[cfg(adc_u0)] {
92 pub struct DacOut; 84 pub struct DacOut;
93 impl<T: Instance> InternalChannel<T> for DacOut {}
94 impl<T: Instance> super::SealedInternalChannel<T> for DacOut {}
95 impl<T: Instance> AdcChannel<T> for DacOut {} 85 impl<T: Instance> AdcChannel<T> for DacOut {}
96 impl<T: Instance> super::SealedAdcChannel<T> for DacOut { 86 impl<T: Instance> super::SealedAdcChannel<T> for DacOut {
97 fn channel(&self) -> u8 { 87 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 @@
2use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; 2use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel};
3use pac::adccommon::vals::Presc; 3use pac::adccommon::vals::Presc;
4 4
5use super::{blocking_delay_us, Adc, AdcChannel, Instance, InternalChannel, Resolution, SampleTime}; 5use super::{blocking_delay_us, Adc, AdcChannel, Instance, Resolution, SampleTime};
6use crate::time::Hertz; 6use crate::time::Hertz;
7use crate::{pac, Peripheral}; 7use crate::{pac, Peripheral};
8 8
@@ -33,8 +33,6 @@ const VBAT_CHANNEL: u8 = 17;
33// 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 33// 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
34/// Internal voltage reference channel. 34/// Internal voltage reference channel.
35pub struct VrefInt; 35pub struct VrefInt;
36impl<T: Instance> InternalChannel<T> for VrefInt {}
37impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {}
38impl<T: Instance> AdcChannel<T> for VrefInt {} 36impl<T: Instance> AdcChannel<T> for VrefInt {}
39impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { 37impl<T: Instance> super::SealedAdcChannel<T> for VrefInt {
40 fn channel(&self) -> u8 { 38 fn channel(&self) -> u8 {
@@ -44,8 +42,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt {
44 42
45/// Internal temperature channel. 43/// Internal temperature channel.
46pub struct Temperature; 44pub struct Temperature;
47impl<T: Instance> InternalChannel<T> for Temperature {}
48impl<T: Instance> super::SealedInternalChannel<T> for Temperature {}
49impl<T: Instance> AdcChannel<T> for Temperature {} 45impl<T: Instance> AdcChannel<T> for Temperature {}
50impl<T: Instance> super::SealedAdcChannel<T> for Temperature { 46impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
51 fn channel(&self) -> u8 { 47 fn channel(&self) -> u8 {
@@ -55,8 +51,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature {
55 51
56/// Internal battery voltage channel. 52/// Internal battery voltage channel.
57pub struct Vbat; 53pub struct Vbat;
58impl<T: Instance> InternalChannel<T> for Vbat {}
59impl<T: Instance> super::SealedInternalChannel<T> for Vbat {}
60impl<T: Instance> AdcChannel<T> for Vbat {} 54impl<T: Instance> AdcChannel<T> for Vbat {}
61impl<T: Instance> super::SealedAdcChannel<T> for Vbat { 55impl<T: Instance> super::SealedAdcChannel<T> for Vbat {
62 fn channel(&self) -> u8 { 56 fn channel(&self) -> u8 {