diff --git a/embassy-rp/src/clocks.rs b/embassy-rp/src/clocks.rs
index c9b2190c5..2c41befe0 100644
--- a/embassy-rp/src/clocks.rs
+++ b/embassy-rp/src/clocks.rs
@@ -631,7 +631,7 @@ fn start_xosc(crystal_hz: u32, delay_multiplier: u32) {
         .ctrl()
         .write(|w| w.set_freq_range(pac::xosc::vals::CtrlFreqRange::_1_15MHZ));
 
-    let startup_delay = ((crystal_hz / 1000 + delay_multiplier) + 128) / 256;
+    let startup_delay = (((crystal_hz / 1000) + 128) * delay_multiplier) / 256;
     pac::XOSC.startup().write(|w| w.set_delay(startup_delay as u16));
     pac::XOSC.ctrl().write(|w| {
         w.set_freq_range(pac::xosc::vals::CtrlFreqRange::_1_15MHZ);