static int s3c2412_cpufreq_add(struct device *dev, struct subsys_interface *sif) { unsigned long fclk_rate; hclk = clk_get(NULL, "hclk"); if (IS_ERR(hclk)) { printk(KERN_ERR "%s: cannot find hclk clock\n", __func__); return -ENOENT; } fclk = clk_get(NULL, "fclk"); if (IS_ERR(fclk)) { printk(KERN_ERR "%s: cannot find fclk clock\n", __func__); goto err_fclk; } fclk_rate = clk_get_rate(fclk); if (fclk_rate > 200000000) { printk(KERN_INFO "%s: fclk %ld MHz, assuming 266MHz capable part\n", __func__, fclk_rate / 1000000); s3c2412_cpufreq_info.max.fclk = 266000000; s3c2412_cpufreq_info.max.hclk = 133000000; s3c2412_cpufreq_info.max.pclk = 66000000; } armclk = clk_get(NULL, "armclk"); if (IS_ERR(armclk)) { printk(KERN_ERR "%s: cannot find arm clock\n", __func__); goto err_armclk; } xtal = clk_get(NULL, "xtal"); if (IS_ERR(xtal)) { printk(KERN_ERR "%s: cannot find xtal clock\n", __func__); goto err_xtal; } return s3c_cpufreq_register(&s3c2412_cpufreq_info); err_xtal: clk_put(armclk); err_armclk: clk_put(fclk); err_fclk: clk_put(hclk); return -ENOENT; }
static int s3c2440_cpufreq_add(struct sys_device *sysdev) { xtal = s3c_cpufreq_clk_get(NULL, "xtal"); hclk = s3c_cpufreq_clk_get(NULL, "hclk"); fclk = s3c_cpufreq_clk_get(NULL, "fclk"); armclk = s3c_cpufreq_clk_get(NULL, "armclk"); if (IS_ERR(xtal) || IS_ERR(hclk) || IS_ERR(fclk) || IS_ERR(armclk)) { printk(KERN_ERR "%s: failed to get clocks\n", __func__); return -ENOENT; } return s3c_cpufreq_register(&s3c2440_cpufreq_info); }
static int s3c2410_cpufreq_add(struct device *dev, struct subsys_interface *sif) { return s3c_cpufreq_register(&s3c2410_cpufreq_info); }
static int s3c2410_cpufreq_add(struct sys_device *sysdev) { return s3c_cpufreq_register(&s3c2410_cpufreq_info); }