• Home
  • Raw
  • Download

Lines Matching +full:clkdiv +full:- +full:-

1 // SPDX-License-Identifier: GPL-2.0-only
22 #include <linux/soc/samsung/s3c-cpufreq-core.h>
23 #include <linux/soc/samsung/s3c-pm.h>
55 fclk = cfg->freq.fclk; in s3c2412_cpufreq_calcdivs()
56 armclk = cfg->freq.armclk; in s3c2412_cpufreq_calcdivs()
57 hclk_max = cfg->max.hclk; in s3c2412_cpufreq_calcdivs()
68 __func__, cfg->freq.fclk, cfg->freq.armclk, in s3c2412_cpufreq_calcdivs()
69 cfg->freq.hclk, cfg->freq.pclk); in s3c2412_cpufreq_calcdivs()
78 cfg->divs.arm_divisor = armdiv; in s3c2412_cpufreq_calcdivs()
85 cfg->freq.hclk = hclk = armdiv_clk / hdiv; in s3c2412_cpufreq_calcdivs()
88 cfg->divs.dvs = dvs = armclk < armdiv_clk; in s3c2412_cpufreq_calcdivs()
91 cfg->freq.armclk = dvs ? hclk : armdiv_clk; in s3c2412_cpufreq_calcdivs()
94 __func__, armclk, hclk, armdiv, hdiv, cfg->divs.dvs); in s3c2412_cpufreq_calcdivs()
99 pdiv = (hclk > cfg->max.pclk) ? 2 : 1; in s3c2412_cpufreq_calcdivs()
101 if ((hclk / pdiv) > cfg->max.pclk) in s3c2412_cpufreq_calcdivs()
104 cfg->freq.pclk = hclk / pdiv; in s3c2412_cpufreq_calcdivs()
115 cfg->divs.h_divisor = hdiv * armdiv; in s3c2412_cpufreq_calcdivs()
116 cfg->divs.p_divisor = pdiv * armdiv; in s3c2412_cpufreq_calcdivs()
121 return -EINVAL; in s3c2412_cpufreq_calcdivs()
126 unsigned long clkdiv; in s3c2412_cpufreq_setdivs() local
129 olddiv = clkdiv = s3c24xx_read_clkdivn(); in s3c2412_cpufreq_setdivs()
133 clkdiv &= ~S3C2412_CLKDIVN_ARMDIVN; in s3c2412_cpufreq_setdivs()
134 clkdiv &= ~S3C2412_CLKDIVN_HDIVN_MASK; in s3c2412_cpufreq_setdivs()
135 clkdiv &= ~S3C2412_CLKDIVN_PDIVN; in s3c2412_cpufreq_setdivs()
137 if (cfg->divs.arm_divisor == 2) in s3c2412_cpufreq_setdivs()
138 clkdiv |= S3C2412_CLKDIVN_ARMDIVN; in s3c2412_cpufreq_setdivs()
140 clkdiv |= ((cfg->divs.h_divisor / cfg->divs.arm_divisor) - 1); in s3c2412_cpufreq_setdivs()
142 if (cfg->divs.p_divisor != cfg->divs.h_divisor) in s3c2412_cpufreq_setdivs()
143 clkdiv |= S3C2412_CLKDIVN_PDIVN; in s3c2412_cpufreq_setdivs()
145 s3c_freq_dbg("%s: div %08lx => %08lx\n", __func__, olddiv, clkdiv); in s3c2412_cpufreq_setdivs()
146 s3c24xx_write_clkdivn(clkdiv); in s3c2412_cpufreq_setdivs()
148 clk_set_parent(armclk, cfg->divs.dvs ? hclk : fclk); in s3c2412_cpufreq_setdivs()
188 return -ENOENT; in s3c2412_cpufreq_add()
227 return -ENOENT; in s3c2412_cpufreq_add()