diff --git a/src/rp2_common/hardware_spi/spi.c b/src/rp2_common/hardware_spi/spi.c
index 035a710eaa56bd53711aa3ab1e3fceeae36f4fb7..d20c1dccd8d1dd4100af1e0cc1ffb5d48b369cad 100644
--- a/src/rp2_common/hardware_spi/spi.c
+++ b/src/rp2_common/hardware_spi/spi.c
@@ -51,7 +51,7 @@ uint spi_set_baudrate(spi_inst_t *spi, uint baudrate) {
     // Find smallest prescale value which puts output frequency in range of
     // post-divide. Prescale is an even number from 2 to 254 inclusive.
     for (prescale = 2; prescale <= 254; prescale += 2) {
-        if (freq_in < (prescale + 2) * 256 * (uint64_t) baudrate)
+        if (freq_in < prescale * 256 * (uint64_t) baudrate)
             break;
     }
     invalid_params_if(SPI, prescale > 254); // Frequency too low