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 { .compatible = "marvell,ap806-cpu-clock" },
26 { .compatible = "marvell,ap807-cpu-clock" },
32 * Setup the opps list with the divider for the max frequency, that
45 static void __init armada_8k_get_sharing_cpus(struct clk *cur_clk, in armada_8k_get_sharing_cpus()
52 struct clk *clk; in armada_8k_get_sharing_cpus() local
60 clk = clk_get(cpu_dev, 0); in armada_8k_get_sharing_cpus()
61 if (IS_ERR(clk)) { in armada_8k_get_sharing_cpus()
64 if (clk_is_match(clk, cur_clk)) in armada_8k_get_sharing_cpus()
67 clk_put(clk); in armada_8k_get_sharing_cpus()
72 static int __init armada_8k_add_opp(struct clk *clk, struct device *cpu_dev, in armada_8k_add_opp() argument
81 cur_frequency = clk_get_rate(clk); in armada_8k_add_opp()
83 dev_err(cpu_dev, "Failed to get clock rate for this CPU\n"); in armada_8k_add_opp()
84 return -EINVAL; in armada_8k_add_opp()
115 * A 0Hz frequency is not valid, this meant in armada_8k_cpufreq_free_table()
141 return -ENODEV; in armada_8k_cpufreq_init()
148 return -ENOMEM; in armada_8k_cpufreq_init()
159 struct clk *clk; in armada_8k_cpufreq_init() local
168 clk = clk_get(cpu_dev, 0); in armada_8k_cpufreq_init()
170 if (IS_ERR(clk)) { in armada_8k_cpufreq_init()
172 ret = PTR_ERR(clk); in armada_8k_cpufreq_init()
176 ret = armada_8k_add_opp(clk, cpu_dev, freq_tables, opps_index); in armada_8k_cpufreq_init()
178 clk_put(clk); in armada_8k_cpufreq_init()
184 armada_8k_get_sharing_cpus(clk, &shared_cpus); in armada_8k_cpufreq_init()
187 clk_put(clk); in armada_8k_cpufreq_init()
190 armada_8k_pdev = platform_device_register_simple("cpufreq-dt", -1, in armada_8k_cpufreq_init()