diff options
Diffstat (limited to 'drivers/clk/clk-ar933x.c')
-rw-r--r-- | drivers/clk/clk-ar933x.c | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/drivers/clk/clk-ar933x.c b/drivers/clk/clk-ar933x.c index f5cfd39cd8..c97caaa37e 100644 --- a/drivers/clk/clk-ar933x.c +++ b/drivers/clk/clk-ar933x.c @@ -1,19 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (C) 2014 Antony Pavlov <antonynpavlov@gmail.com> * * Based on the Linux ath79 clock code - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <common.h> @@ -30,17 +19,17 @@ static struct clk *clks[ATH79_CLK_END]; static struct clk_onecell_data clk_data; struct clk_ar933x { - struct clk clk; + struct clk_hw hw; void __iomem *base; u32 div_shift; u32 div_mask; const char *parent; }; -static unsigned long clk_ar933x_recalc_rate(struct clk *clk, +static unsigned long clk_ar933x_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) { - struct clk_ar933x *f = container_of(clk, struct clk_ar933x, clk); + struct clk_ar933x *f = container_of(hw, struct clk_ar933x, hw); unsigned long rate; unsigned long freq; u32 clock_ctrl; @@ -90,14 +79,14 @@ static struct clk *clk_ar933x(const char *name, const char *parent, f->div_shift = div_shift; f->div_mask = div_mask; - f->clk.ops = &clk_ar933x_ops; - f->clk.name = name; - f->clk.parent_names = &f->parent; - f->clk.num_parents = 1; + f->hw.clk.ops = &clk_ar933x_ops; + f->hw.clk.name = name; + f->hw.clk.parent_names = &f->parent; + f->hw.clk.num_parents = 1; - clk_register(&f->clk); + bclk_register(&f->hw.clk); - return &f->clk; + return &f->hw.clk; } static void ar933x_pll_init(void __iomem *base) @@ -115,7 +104,7 @@ static void ar933x_pll_init(void __iomem *base) AR933X_PLL_CLOCK_CTRL_AHB_DIV_MASK); } -static int ar933x_clk_probe(struct device_d *dev) +static int ar933x_clk_probe(struct device *dev) { struct resource *iores; void __iomem *base; @@ -129,7 +118,7 @@ static int ar933x_clk_probe(struct device_d *dev) clk_data.clks = clks; clk_data.clk_num = ARRAY_SIZE(clks); - of_clk_add_provider(dev->device_node, of_clk_src_onecell_get, + of_clk_add_provider(dev->of_node, of_clk_src_onecell_get, &clk_data); return 0; @@ -142,15 +131,12 @@ static __maybe_unused struct of_device_id ar933x_clk_dt_ids[] = { /* sentinel */ } }; +MODULE_DEVICE_TABLE(of, ar933x_clk_dt_ids); -static struct driver_d ar933x_clk_driver = { +static struct driver ar933x_clk_driver = { .probe = ar933x_clk_probe, .name = "ar933x_clk", .of_compatible = DRV_OF_COMPAT(ar933x_clk_dt_ids), }; -static int ar933x_clk_init(void) -{ - return platform_driver_register(&ar933x_clk_driver); -} -postcore_initcall(ar933x_clk_init); +postcore_platform_driver(ar933x_clk_driver); |