diff --git a/embassy-stm32/src/gpio.rs b/embassy-stm32/src/gpio.rs
index bdb18187c..3c4cdb887 100644
--- a/embassy-stm32/src/gpio.rs
+++ b/embassy-stm32/src/gpio.rs
@@ -621,7 +621,7 @@ pub(crate) mod sealed {
     }
 }
 
-pub trait Pin: Into<AnyPin> + sealed::Pin + Sized + 'static {
+pub trait Pin: Peripheral<P = Self> + Into<AnyPin> + sealed::Pin + Sized + 'static {
     #[cfg(feature = "exti")]
     type ExtiChannel: crate::exti::Channel;