diff options
Diffstat (limited to 'drivers/clk/at91/clk-master.c')
-rw-r--r-- | drivers/clk/at91/clk-master.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/clk/at91/clk-master.c b/drivers/clk/at91/clk-master.c index f7a0fb1d18..4e3b512aaa 100644 --- a/drivers/clk/at91/clk-master.c +++ b/drivers/clk/at91/clk-master.c @@ -1,11 +1,6 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (C) 2013 Boris BREZILLON <b.brezillon@overkiz.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * */ #include <common.h> #include <clock.h> @@ -32,6 +27,7 @@ struct clk_master { const struct clk_master_layout *layout; const struct clk_master_characteristics *characteristics; const char *parents[MASTER_SOURCE_MAX]; + u32 mckr; }; static inline bool clk_master_ready(struct regmap *regmap) @@ -72,7 +68,7 @@ static unsigned long clk_master_recalc_rate(struct clk *clk, master->characteristics; unsigned int mckr; - regmap_read(master->regmap, AT91_PMC_MCKR, &mckr); + regmap_read(master->regmap, master->layout->offset, &mckr); mckr &= layout->mask; pres = (mckr >> layout->pres_shift) & MASTER_PRES_MASK; @@ -98,7 +94,7 @@ static int clk_master_get_parent(struct clk *clk) struct clk_master *master = to_clk_master(clk); unsigned int mckr; - regmap_read(master->regmap, AT91_PMC_MCKR, &mckr); + regmap_read(master->regmap, master->layout->offset, &mckr); return mckr & AT91_PMC_CSS; } @@ -110,7 +106,7 @@ static const struct clk_ops master_ops = { .get_parent = clk_master_get_parent, }; -struct clk * +struct clk * __init at91_clk_register_master(struct regmap *regmap, const char *name, int num_parents, const char **parent_names, @@ -149,9 +145,11 @@ at91_clk_register_master(struct regmap *regmap, const struct clk_master_layout at91rm9200_master_layout = { .mask = 0x31F, .pres_shift = 2, + .offset = AT91_PMC_MCKR, }; const struct clk_master_layout at91sam9x5_master_layout = { .mask = 0x373, .pres_shift = 4, + .offset = AT91_PMC_MCKR, }; |