diff --git a/embassy-stm32/src/adc/mod.rs b/embassy-stm32/src/adc/mod.rs
index 70c1025e5..5d90b8b3d 100644
--- a/embassy-stm32/src/adc/mod.rs
+++ b/embassy-stm32/src/adc/mod.rs
@@ -44,9 +44,9 @@ pub(crate) mod sealed {
     }
 }
 
-#[cfg(not(any(adc_f1, adc_v2)))]
+#[cfg(not(any(adc_f1, adc_v2, adc_v4)))]
 pub trait Instance: sealed::Instance + 'static {}
-#[cfg(any(adc_f1, adc_v2))]
+#[cfg(any(adc_f1, adc_v2, adc_v4))]
 pub trait Instance: sealed::Instance + crate::rcc::RccPeripheral + 'static {}
 
 pub trait AdcPin<T: Instance>: sealed::AdcPin<T> {}
diff --git a/embassy-stm32/src/adc/v4.rs b/embassy-stm32/src/adc/v4.rs
index c83674e61..12f86885c 100644
--- a/embassy-stm32/src/adc/v4.rs
+++ b/embassy-stm32/src/adc/v4.rs
@@ -225,7 +225,7 @@ impl Prescaler {
     }
 }
 
-impl<'d, T: Instance + crate::rcc::RccPeripheral> Adc<'d, T> {
+impl<'d, T: Instance> Adc<'d, T> {
     pub fn new(_peri: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u16>) -> Self {
         embassy_hal_common::into_ref!(_peri);
         T::enable();