spi: bcm2835: Set controller max_speed_hz
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Thu, 7 Jan 2021 16:48:25 +0000 (16:48 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 13 Jan 2021 17:36:40 +0000 (17:36 +0000)
Set the struct spi_controller max_speed_hz. This is based on the
reported source clock frequency during probe. The maximum bus clock
is half the source clock (as per the code in bcm2835_spi_transfer_one).

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20210107164825.21919-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-bcm2835.c

index 197485f2c2b2235d30cb33c9cf885a50672b264b..8e161f4f77664cfa9f13d65ad29121f9d4946f0d 100644 (file)
@@ -1307,6 +1307,8 @@ static int bcm2835_spi_probe(struct platform_device *pdev)
                return dev_err_probe(&pdev->dev, PTR_ERR(bs->clk),
                                     "could not get clk\n");
 
+       ctlr->max_speed_hz = clk_get_rate(bs->clk) / 2;
+
        bs->irq = platform_get_irq(pdev, 0);
        if (bs->irq <= 0)
                return bs->irq ? bs->irq : -ENODEV;