You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.9 KiB
Diff
57 lines
1.9 KiB
Diff
From 3a4163613b7f6e628e7b5a0d3a546523d1d03bb7 Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime@cerno.tech>
|
|
Date: Fri, 7 Feb 2020 15:40:00 +0100
|
|
Subject: [PATCH] clk: bcm: rpi: Use clk_hw_register for pllb_arm
|
|
|
|
The pllb_arm clock is defined as a fixed factor clock with the pllb clock
|
|
as a parent. However, all its configuration is entirely static, and thus we
|
|
don't really need to call clk_hw_register_fixed_factor() but can simply call
|
|
clk_hw_register() with a static clk_fixed_factor structure.
|
|
|
|
Cc: Michael Turquette <mturquette@baylibre.com>
|
|
Cc: linux-clk@vger.kernel.org
|
|
Acked-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
|
|
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
|
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|
---
|
|
drivers/clk/bcm/clk-raspberrypi.c | 24 ++++++++++++++++++------
|
|
1 file changed, 18 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/clk/bcm/clk-raspberrypi.c
|
|
+++ b/drivers/clk/bcm/clk-raspberrypi.c
|
|
@@ -225,16 +225,28 @@ static int raspberrypi_register_pllb(str
|
|
return devm_clk_hw_register(rpi->dev, &rpi->pllb);
|
|
}
|
|
|
|
+static struct clk_fixed_factor raspberrypi_clk_pllb_arm = {
|
|
+ .mult = 1,
|
|
+ .div = 2,
|
|
+ .hw.init = &(struct clk_init_data) {
|
|
+ .name = "pllb_arm",
|
|
+ .parent_names = (const char *[]){ "pllb" },
|
|
+ .num_parents = 1,
|
|
+ .ops = &clk_fixed_factor_ops,
|
|
+ .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,
|
|
+ },
|
|
+};
|
|
+
|
|
static int raspberrypi_register_pllb_arm(struct raspberrypi_clk *rpi)
|
|
{
|
|
- rpi->pllb_arm = clk_hw_register_fixed_factor(rpi->dev,
|
|
- "pllb_arm", "pllb",
|
|
- CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,
|
|
- 1, 2);
|
|
- if (IS_ERR(rpi->pllb_arm)) {
|
|
+ int ret;
|
|
+
|
|
+ ret = clk_hw_register(rpi->dev, &raspberrypi_clk_pllb_arm.hw);
|
|
+ if (ret) {
|
|
dev_err(rpi->dev, "Failed to initialize pllb_arm\n");
|
|
- return PTR_ERR(rpi->pllb_arm);
|
|
+ return ret;
|
|
}
|
|
+ rpi->pllb_arm = &raspberrypi_clk_pllb_arm.hw;
|
|
|
|
rpi->pllb_arm_lookup = clkdev_hw_create(rpi->pllb_arm, NULL, "cpu0");
|
|
if (!rpi->pllb_arm_lookup) {
|