spi: sh-msiof: Fill in controller speed limits
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 13 Jan 2021 10:19:16 +0000 (11:19 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 13 Jan 2021 12:19:09 +0000 (12:19 +0000)
Fill in the controller speed limits, so the SPI core can use them for
validating SPI transfers, and adjust or reject transfers when needed.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20210113101916.1147695-3-geert+renesas@glider.be
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-sh-msiof.c

index 90b8aba8a4fd9f32fe2d9fb3d8d5d8836d46c9eb..41ed9ff8fad0d3b3da82db5218dc7eac1a7a2e55 100644 (file)
@@ -1262,6 +1262,7 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
        const struct sh_msiof_chipdata *chipdata;
        struct sh_msiof_spi_info *info;
        struct sh_msiof_spi_priv *p;
+       unsigned long clksrc;
        int i;
        int ret;
 
@@ -1337,6 +1338,9 @@ static int sh_msiof_spi_probe(struct platform_device *pdev)
        /* init controller code */
        ctlr->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
        ctlr->mode_bits |= SPI_LSB_FIRST | SPI_3WIRE;
+       clksrc = clk_get_rate(p->clk);
+       ctlr->min_speed_hz = DIV_ROUND_UP(clksrc, 1024);
+       ctlr->max_speed_hz = DIV_ROUND_UP(clksrc, 1 << p->min_div_pow);
        ctlr->flags = chipdata->ctlr_flags;
        ctlr->bus_num = pdev->id;
        ctlr->num_chipselect = p->info->num_chipselect;