Le 02/04/2015 12:23, Jonathan Richardson a écrit :
> The driver wasn't setting the SPBR (serial clock baud rate) which caused
> it to run at the slowest speed possible. The driver now calculates the
> SPBR based on the reference clock frequency resulting in much faster
> SPI transfers.
> 
> Signed-off-by: Jonathan Richardson <jonat...@broadcom.com>
> ---

[snip]

> +     data->clk = devm_clk_get(dev, "mspi_clk");
> +     if (!IS_ERR(data->clk)) {
> +             int ret = clk_prepare_enable(data->clk);
> +
> +             if (ret < 0) {
> +                     dev_err(dev, "failed to enable clock: %d\n", ret);
> +                     return 0;
> +             }
> +
> +             /* Calculate SPBR if clock-frequency provided. */
> +             if (of_property_read_u32(dev->of_node, "clock-frequency",
> +                     &desired_rate) >= 0) {
> +                     u32 spbr = clk_get_rate(data->clk) / (2 * desired_rate);

Usually, specifying a "clock-frequency" property is done when there is
no clock provider available, yet we take this code path only if we could
find a "mspi_clk" which sounds a litle weird.

Once there is a proper "mspi_clk" clock, I would make it mandatory for
the clock provider to be able to provide the rate as well?
--
Florian
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to