spi: cadence_qspi_apb: Ensure baudrate doesn't exceed max value
[platform/kernel/u-boot.git] / drivers / spi / cadence_qspi_apb.c
index 1a35d55..1d68379 100644 (file)
@@ -293,8 +293,11 @@ void cadence_qspi_apb_config_baudrate_div(void *reg_base,
        debug("%s: ref_clk %dHz sclk %dHz Div 0x%x\n", __func__,
              ref_clk_hz, sclk_hz, div);
 
-       div = (div & CQSPI_REG_CONFIG_BAUD_MASK) << CQSPI_REG_CONFIG_BAUD_LSB;
-       reg |= div;
+       /* ensure the baud rate doesn't exceed the max value */
+       if (div > CQSPI_REG_CONFIG_BAUD_MASK)
+               div = CQSPI_REG_CONFIG_BAUD_MASK;
+
+       reg |= (div << CQSPI_REG_CONFIG_BAUD_LSB);
        writel(reg, reg_base + CQSPI_REG_CONFIG);
 
        cadence_qspi_apb_controller_enable(reg_base);