Lines Matching +full:max +full:- +full:clk +full:- +full:rate +full:- +full:hz
1 // SPDX-License-Identifier: GPL-2.0+
13 #include <linux/clk.h>
25 * Setup the opps list with the divider for the max frequency, that
38 static void __init armada_8k_get_sharing_cpus(struct clk *cur_clk, in armada_8k_get_sharing_cpus()
45 struct clk *clk; in armada_8k_get_sharing_cpus() local
53 clk = clk_get(cpu_dev, 0); in armada_8k_get_sharing_cpus()
54 if (IS_ERR(clk)) { in armada_8k_get_sharing_cpus()
57 if (clk_is_match(clk, cur_clk)) in armada_8k_get_sharing_cpus()
60 clk_put(clk); in armada_8k_get_sharing_cpus()
65 static int __init armada_8k_add_opp(struct clk *clk, struct device *cpu_dev, in armada_8k_add_opp() argument
74 cur_frequency = clk_get_rate(clk); in armada_8k_add_opp()
76 dev_err(cpu_dev, "Failed to get clock rate for this CPU\n"); in armada_8k_add_opp()
77 return -EINVAL; in armada_8k_add_opp()
108 * A 0Hz frequency is not valid, this meant in armada_8k_cpufreq_free_table()
130 node = of_find_compatible_node(NULL, NULL, "marvell,ap806-cpu-clock"); in armada_8k_cpufreq_init()
133 return -ENODEV; in armada_8k_cpufreq_init()
140 return -ENOMEM; in armada_8k_cpufreq_init()
151 struct clk *clk; in armada_8k_cpufreq_init() local
160 clk = clk_get(cpu_dev, 0); in armada_8k_cpufreq_init()
162 if (IS_ERR(clk)) { in armada_8k_cpufreq_init()
164 ret = PTR_ERR(clk); in armada_8k_cpufreq_init()
168 ret = armada_8k_add_opp(clk, cpu_dev, freq_tables, opps_index); in armada_8k_cpufreq_init()
170 clk_put(clk); in armada_8k_cpufreq_init()
176 armada_8k_get_sharing_cpus(clk, &shared_cpus); in armada_8k_cpufreq_init()
179 clk_put(clk); in armada_8k_cpufreq_init()
182 armada_8k_pdev = platform_device_register_simple("cpufreq-dt", -1, in armada_8k_cpufreq_init()