15 #include <linux/module.h>
19 #include <linux/device.h>
27 #include <mach/regs-clock.h>
30 #include <plat/clock.h>
39 if (cfg->
divs.h_divisor == 2)
42 if (cfg->
divs.p_divisor != cfg->
divs.h_divisor)
51 unsigned int hdiv, pdiv;
52 unsigned long hclk_max;
54 fclk = cfg->
freq.fclk;
55 hclk_max = cfg->
max.hclk;
60 __func__, fclk, hclk_max);
62 hdiv = (fclk > cfg->
max.hclk) ? 2 : 1;
65 if (hclk > cfg->
max.hclk) {
70 pdiv = (hclk > cfg->
max.pclk) ? 2 : 1;
73 if (pclk > cfg->
max.pclk) {
81 cfg->
divs.p_divisor = pdiv;
82 cfg->
divs.h_divisor = hdiv;
112 .set_divs = s3c2410_cpufreq_setdivs,
113 .calc_divs = s3c2410_cpufreq_calcdivs,
118 static int s3c2410_cpufreq_add(
struct device *
dev,
125 .name =
"s3c2410_cpufreq",
127 .add_dev = s3c2410_cpufreq_add,
130 static int __init s3c2410_cpufreq_init(
void)
137 static int s3c2410a_cpufreq_add(
struct device *
dev,
144 s3c2410_cpufreq_info.
max.fclk = 266000000;
145 s3c2410_cpufreq_info.
max.hclk = 133000000;
146 s3c2410_cpufreq_info.
max.pclk = 66500000;
147 s3c2410_cpufreq_info.
name =
"s3c2410a";
149 return s3c2410_cpufreq_add(dev, sif);
153 .name =
"s3c2410a_cpufreq",
155 .add_dev = s3c2410a_cpufreq_add,
158 static int __init s3c2410a_cpufreq_init(
void)