[RFC PATCH v2 11/12] spi: cadence-quadspi: restrict PHY frequency to tuned operations
Miquel Raynal
miquel.raynal at bootlin.com
Thu Feb 5 09:47:26 PST 2026
Hi Santhosh,
> + /*
> + * PHY tuning allows high-frequency operation only for calibrated
> + * commands. Uncalibrated operations use safe non-PHY frequency to
> + * avoid timing violations.
> + */
> + if (cqspi->ddata->execute_tuning && f_pdata->use_phy &&
> + (cqspi_op_matches_tuned(op, &f_pdata->phy_read_op) ||
> + cqspi_op_matches_tuned(op, &f_pdata->phy_write_op))) {
> + cqspi_configure(f_pdata, op->max_freq);
> + } else if (cqspi->ddata->execute_tuning) {
> + /* Use safe frequency for untuned operations */
> + cqspi_configure(f_pdata, f_pdata->non_phy_clk_rate);
> + } else {
> + /* No tuning support, always use requested frequency */
> + cqspi_configure(f_pdata, op->max_freq);
> + }
Shouldn't we handle this at the core level? We know what kind of
operation pattern we provided, so it is easy to set the correct
frequency in the operation structure.
Can you please make this happen? Perhaps you can return the operation
frequency once the calibration is successful (in the read and write op
templates maybe?) so this can be picked up by the core and used for the
following operations. This way the controller driver no longer needs to
check if the operation has been tuned or not, it can just look at the
frequency. When using the highest frequency, PHY tuning must be
used/enabled, otherwise not.
Thanks,
Miquèl
More information about the linux-mtd
mailing list