55f86ae34074ffff7ba281a58b926044fd936c94
[openwrt/staging/wigyori.git] / target / linux / bcm27xx / patches-5.4 / 950-0520-clk-bcm-rpi-Use-clk_hw_register-for-pllb_arm.patch
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
5
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.
10
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>
16 ---
17 drivers/clk/bcm/clk-raspberrypi.c | 24 ++++++++++++++++++------
18 1 file changed, 18 insertions(+), 6 deletions(-)
19
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);
24 }
25
26 +static struct clk_fixed_factor raspberrypi_clk_pllb_arm = {
27 + .mult = 1,
28 + .div = 2,
29 + .hw.init = &(struct clk_init_data) {
30 + .name = "pllb_arm",
31 + .parent_names = (const char *[]){ "pllb" },
32 + .num_parents = 1,
33 + .ops = &clk_fixed_factor_ops,
34 + .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,
35 + },
36 +};
37 +
38 static int raspberrypi_register_pllb_arm(struct raspberrypi_clk *rpi)
39 {
40 - rpi->pllb_arm = clk_hw_register_fixed_factor(rpi->dev,
41 - "pllb_arm", "pllb",
42 - CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,
43 - 1, 2);
44 - if (IS_ERR(rpi->pllb_arm)) {
45 + int ret;
46 +
47 + ret = clk_hw_register(rpi->dev, &raspberrypi_clk_pllb_arm.hw);
48 + if (ret) {
49 dev_err(rpi->dev, "Failed to initialize pllb_arm\n");
50 - return PTR_ERR(rpi->pllb_arm);
51 + return ret;
52 }
53 + rpi->pllb_arm = &raspberrypi_clk_pllb_arm.hw;
54
55 rpi->pllb_arm_lookup = clkdev_hw_create(rpi->pllb_arm, NULL, "cpu0");
56 if (!rpi->pllb_arm_lookup) {