summaryrefslogtreecommitdiff
path: root/drivers/spi/spi-rockchip-sfc.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2025-01-10 15:01:33 +0000
committerMark Brown <broonie@kernel.org>2025-01-10 15:01:33 +0000
commit89b37e49929653b7c350aac7fb2b96a052533015 (patch)
tree9556c9c4f693b4cb69da77f1e717abeea36f0a23 /drivers/spi/spi-rockchip-sfc.c
parent5e56618e1593a9eb9d72dc9433ac7a02a6c48c8f (diff)
parentf0006897a96c736623ddeb9b68c3880eb5cdebe7 (diff)
spi-nand/spi-mem DTR support
Merge series from Miquel Raynal <miquel.raynal@bootlin.com>: Here is a (big) series supposed to bring DTR support in SPI-NAND.
Diffstat (limited to 'drivers/spi/spi-rockchip-sfc.c')
-rw-r--r--drivers/spi/spi-rockchip-sfc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/spi/spi-rockchip-sfc.c b/drivers/spi/spi-rockchip-sfc.c
index 59de351499a0..f3fe10eddb6a 100644
--- a/drivers/spi/spi-rockchip-sfc.c
+++ b/drivers/spi/spi-rockchip-sfc.c
@@ -534,12 +534,12 @@ static int rockchip_sfc_exec_mem_op(struct spi_mem *mem, const struct spi_mem_op
return ret;
}
- if (unlikely(mem->spi->max_speed_hz != sfc->speed[cs]) &&
+ if (unlikely(op->max_freq != sfc->speed[cs]) &&
!has_acpi_companion(sfc->dev)) {
- ret = rockchip_sfc_clk_set_rate(sfc, mem->spi->max_speed_hz);
+ ret = rockchip_sfc_clk_set_rate(sfc, op->max_freq);
if (ret)
goto out;
- sfc->speed[cs] = mem->spi->max_speed_hz;
+ sfc->speed[cs] = op->max_freq;
dev_dbg(sfc->dev, "set_freq=%dHz real_freq=%ldHz\n",
sfc->speed[cs], rockchip_sfc_clk_get_rate(sfc));
}
@@ -585,6 +585,10 @@ static const struct spi_controller_mem_ops rockchip_sfc_mem_ops = {
.adjust_op_size = rockchip_sfc_adjust_op_size,
};
+static const struct spi_controller_mem_caps rockchip_sfc_mem_caps = {
+ .per_op_freq = true,
+};
+
static irqreturn_t rockchip_sfc_irq_handler(int irq, void *dev_id)
{
struct rockchip_sfc *sfc = dev_id;
@@ -618,6 +622,7 @@ static int rockchip_sfc_probe(struct platform_device *pdev)
host->flags = SPI_CONTROLLER_HALF_DUPLEX;
host->mem_ops = &rockchip_sfc_mem_ops;
+ host->mem_caps = &rockchip_sfc_mem_caps;
host->dev.of_node = pdev->dev.of_node;
host->mode_bits = SPI_TX_QUAD | SPI_TX_DUAL | SPI_RX_QUAD | SPI_RX_DUAL;
host->max_speed_hz = SFC_MAX_SPEED;