Lines Matching +full:re +full:- +full:configurable
1 // SPDX-License-Identifier: GPL-2.0
8 #include <linux/clk-provider.h>
87 /* PLL0/1 are configurable multiplier clocks. Register them as in r8a73a4_cpg_register_clock()
120 return ERR_PTR(-EINVAL); in r8a73a4_cpg_register_clock()
145 return ERR_PTR(-EINVAL); in r8a73a4_cpg_register_clock()
158 mult = 0x20 - ((readl(base + CPG_FRQCRC) >> shift) & 0x1f); in r8a73a4_cpg_register_clock()
162 for (c = div4_clks; c->name; c++) { in r8a73a4_cpg_register_clock()
163 if (!strcmp(name, c->name)) in r8a73a4_cpg_register_clock()
166 if (!c->name) in r8a73a4_cpg_register_clock()
167 return ERR_PTR(-EINVAL); in r8a73a4_cpg_register_clock()
171 reg = c->reg; in r8a73a4_cpg_register_clock()
172 shift = c->shift; in r8a73a4_cpg_register_clock()
181 table, &cpg->lock); in r8a73a4_cpg_register_clock()
193 num_clks = of_property_count_strings(np, "clock-output-names"); in r8a73a4_cpg_clocks_init()
202 /* We're leaking memory on purpose, there's no point in cleaning in r8a73a4_cpg_clocks_init()
208 spin_lock_init(&cpg->lock); in r8a73a4_cpg_clocks_init()
210 cpg->data.clks = clks; in r8a73a4_cpg_clocks_init()
211 cpg->data.clk_num = num_clks; in r8a73a4_cpg_clocks_init()
221 of_property_read_string_index(np, "clock-output-names", i, in r8a73a4_cpg_clocks_init()
229 cpg->data.clks[i] = clk; in r8a73a4_cpg_clocks_init()
232 of_clk_add_provider(np, of_clk_src_onecell_get, &cpg->data); in r8a73a4_cpg_clocks_init()
234 CLK_OF_DECLARE(r8a73a4_cpg_clks, "renesas,r8a73a4-cpg-clocks",