1 From 3a4163613b7f6e628e7b5a0d3a546523d1d03bb7 Mon Sep 17 00:00:00 2001
2 From: Maxime Ripard <maxime@cerno.tech>
3 Date: Fri, 7 Feb 2020 15:40:00 +0100
4 Subject: [PATCH] clk: bcm: rpi: Use clk_hw_register for pllb_arm
6 The pllb_arm clock is defined as a fixed factor clock with the pllb clock
7 as a parent. However, all its configuration is entirely static, and thus we
8 don't really need to call clk_hw_register_fixed_factor() but can simply call
9 clk_hw_register() with a static clk_fixed_factor structure.
11 Cc: Michael Turquette <mturquette@baylibre.com>
12 Cc: linux-clk@vger.kernel.org
13 Acked-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
14 Reviewed-by: Stephen Boyd <sboyd@kernel.org>
15 Signed-off-by: Maxime Ripard <maxime@cerno.tech>
17 drivers/clk/bcm/clk-raspberrypi.c | 24 ++++++++++++++++++------
18 1 file changed, 18 insertions(+), 6 deletions(-)
20 --- a/drivers/clk/bcm/clk-raspberrypi.c
21 +++ b/drivers/clk/bcm/clk-raspberrypi.c
22 @@ -225,16 +225,28 @@ static int raspberrypi_register_pllb(str
23 return devm_clk_hw_register(rpi->dev, &rpi->pllb);
26 +static struct clk_fixed_factor raspberrypi_clk_pllb_arm = {
29 + .hw.init = &(struct clk_init_data) {
31 + .parent_names = (const char *[]){ "pllb" },
33 + .ops = &clk_fixed_factor_ops,
34 + .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,
38 static int raspberrypi_register_pllb_arm(struct raspberrypi_clk *rpi)
40 - rpi->pllb_arm = clk_hw_register_fixed_factor(rpi->dev,
42 - CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,
44 - if (IS_ERR(rpi->pllb_arm)) {
47 + ret = clk_hw_register(rpi->dev, &raspberrypi_clk_pllb_arm.hw);
49 dev_err(rpi->dev, "Failed to initialize pllb_arm\n");
50 - return PTR_ERR(rpi->pllb_arm);
53 + rpi->pllb_arm = &raspberrypi_clk_pllb_arm.hw;
55 rpi->pllb_arm_lookup = clkdev_hw_create(rpi->pllb_arm, NULL, "cpu0");
56 if (!rpi->pllb_arm_lookup) {