Lines Matching +full:clk +full:- +full:out +full:- +full:frequency

1 // SPDX-License-Identifier: GPL-2.0-only
14 #include <linux/clk.h>
56 unsigned int new_freq = s3c64xx_freq_table[index].frequency; in s3c64xx_cpufreq_set_target()
63 old_freq = clk_get_rate(policy->clk) / 1000; in s3c64xx_cpufreq_set_target()
68 dvfs->vddarm_min, in s3c64xx_cpufreq_set_target()
69 dvfs->vddarm_max); in s3c64xx_cpufreq_set_target()
78 ret = clk_set_rate(policy->clk, new_freq * 1000); in s3c64xx_cpufreq_set_target()
88 dvfs->vddarm_min, in s3c64xx_cpufreq_set_target()
89 dvfs->vddarm_max); in s3c64xx_cpufreq_set_target()
93 if (clk_set_rate(policy->clk, old_freq * 1000) < 0) in s3c64xx_cpufreq_set_target()
101 pr_debug("Set actual frequency %lukHz\n", in s3c64xx_cpufreq_set_target()
102 clk_get_rate(policy->clk) / 1000); in s3c64xx_cpufreq_set_target()
120 goto out; in s3c64xx_cpufreq_config_regulator()
123 dvfs = &s3c64xx_dvfs_table[freq->driver_data]; in s3c64xx_cpufreq_config_regulator()
128 if (v >= dvfs->vddarm_min && v <= dvfs->vddarm_max) in s3c64xx_cpufreq_config_regulator()
134 freq->frequency); in s3c64xx_cpufreq_config_regulator()
135 freq->frequency = CPUFREQ_ENTRY_INVALID; in s3c64xx_cpufreq_config_regulator()
139 out: in s3c64xx_cpufreq_config_regulator()
150 if (policy->cpu != 0) in s3c64xx_cpufreq_driver_init()
151 return -EINVAL; in s3c64xx_cpufreq_driver_init()
153 policy->clk = clk_get(NULL, "armclk"); in s3c64xx_cpufreq_driver_init()
154 if (IS_ERR(policy->clk)) { in s3c64xx_cpufreq_driver_init()
156 PTR_ERR(policy->clk)); in s3c64xx_cpufreq_driver_init()
157 return PTR_ERR(policy->clk); in s3c64xx_cpufreq_driver_init()
164 pr_err("Only frequency scaling available\n"); in s3c64xx_cpufreq_driver_init()
175 r = clk_round_rate(policy->clk, freq->frequency * 1000); in s3c64xx_cpufreq_driver_init()
177 if (r != freq->frequency) { in s3c64xx_cpufreq_driver_init()
179 freq->frequency); in s3c64xx_cpufreq_driver_init()
180 freq->frequency = CPUFREQ_ENTRY_INVALID; in s3c64xx_cpufreq_driver_init()
184 * frequency is the maximum we can support. */ in s3c64xx_cpufreq_driver_init()
185 if (!vddarm && freq->frequency > clk_get_rate(policy->clk) / 1000) in s3c64xx_cpufreq_driver_init()
186 freq->frequency = CPUFREQ_ENTRY_INVALID; in s3c64xx_cpufreq_driver_init()