mirror of https://gitee.com/openkylin/linux.git
OMAP2/3/4 clock: combine all omap2_clk_functions
The struct clk_functions for OMAP2, 3, and 4 are all essentially the same, so combine them. This removes one multi-OMAP kernel impediment and saves memory on multi-OMAP builds. The stubs for omap2_clk_{init,exit}_cpufreq() code will removed once the OPP layer code that's currently in Kevin's PM branch is merged. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Kevin Hilman <khilman@deeprootsystems.com>
This commit is contained in:
parent
4b1f76ed4f
commit
69ecefca51
|
@ -351,3 +351,20 @@ void omap2_clk_disable_unused(struct clk *clk)
|
|||
pwrdm_clkdm_state_switch(clk->clkdm);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Common data */
|
||||
|
||||
struct clk_functions omap2_clk_functions = {
|
||||
.clk_enable = omap2_clk_enable,
|
||||
.clk_disable = omap2_clk_disable,
|
||||
.clk_round_rate = omap2_clk_round_rate,
|
||||
.clk_set_rate = omap2_clk_set_rate,
|
||||
.clk_set_parent = omap2_clk_set_parent,
|
||||
.clk_disable_unused = omap2_clk_disable_unused,
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
/* These will be removed when the OPP code is integrated */
|
||||
.clk_init_cpufreq_table = omap2_clk_init_cpufreq_table,
|
||||
.clk_exit_cpufreq_table = omap2_clk_exit_cpufreq_table,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -105,5 +105,12 @@ extern const struct clksel_rate gpt_32k_rates[];
|
|||
extern const struct clksel_rate gpt_sys_rates[];
|
||||
extern const struct clksel_rate gfx_l3_rates[];
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP24XX) && defined(CONFIG_CPU_FREQ)
|
||||
extern void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table **table);
|
||||
extern void omap2_clk_exit_cpufreq_table(struct cpufreq_frequency_table **table);
|
||||
#else
|
||||
#define omap2_clk_init_cpufreq_table 0
|
||||
#define omap2_clk_exit_cpufreq_table 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -453,13 +453,16 @@ int omap2_select_table_rate(struct clk *clk, unsigned long rate)
|
|||
*/
|
||||
static struct cpufreq_frequency_table *freq_table;
|
||||
|
||||
void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table **table)
|
||||
void omap2xxx_clk_init_cpufreq_table(struct cpufreq_frequency_table **table)
|
||||
{
|
||||
const struct prcm_config *prcm;
|
||||
long sys_ck_rate;
|
||||
int i = 0;
|
||||
int tbl_sz = 0;
|
||||
|
||||
if (!cpu_is_omap2xxx())
|
||||
return;
|
||||
|
||||
sys_ck_rate = clk_get_rate(sclk);
|
||||
|
||||
for (prcm = rate_table; prcm->mpu_speed; prcm++) {
|
||||
|
@ -516,26 +519,16 @@ void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table **table)
|
|||
*table = &freq_table[0];
|
||||
}
|
||||
|
||||
void omap2_clk_exit_cpufreq_table(struct cpufreq_frequency_table **table)
|
||||
void omap2xxx_clk_exit_cpufreq_table(struct cpufreq_frequency_table **table)
|
||||
{
|
||||
if (!cpu_is_omap2xxx())
|
||||
return;
|
||||
|
||||
kfree(freq_table);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
struct clk_functions omap2_clk_functions = {
|
||||
.clk_enable = omap2_clk_enable,
|
||||
.clk_disable = omap2_clk_disable,
|
||||
.clk_round_rate = omap2_clk_round_rate,
|
||||
.clk_set_rate = omap2_clk_set_rate,
|
||||
.clk_set_parent = omap2_clk_set_parent,
|
||||
.clk_disable_unused = omap2_clk_disable_unused,
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
.clk_init_cpufreq_table = omap2_clk_init_cpufreq_table,
|
||||
.clk_exit_cpufreq_table = omap2_clk_exit_cpufreq_table,
|
||||
#endif
|
||||
};
|
||||
|
||||
static u32 omap2_get_apll_clkin(void)
|
||||
{
|
||||
u32 aplls, srate = 0;
|
||||
|
|
|
@ -258,15 +258,6 @@ int omap3_core_dpll_m2_set_rate(struct clk *clk, unsigned long rate)
|
|||
*/
|
||||
#if defined(CONFIG_ARCH_OMAP3)
|
||||
|
||||
struct clk_functions omap2_clk_functions = {
|
||||
.clk_enable = omap2_clk_enable,
|
||||
.clk_disable = omap2_clk_disable,
|
||||
.clk_round_rate = omap2_clk_round_rate,
|
||||
.clk_set_rate = omap2_clk_set_rate,
|
||||
.clk_set_parent = omap2_clk_set_parent,
|
||||
.clk_disable_unused = omap2_clk_disable_unused,
|
||||
};
|
||||
|
||||
/*
|
||||
* Set clocks for bypass mode for reboot to work.
|
||||
*/
|
||||
|
|
|
@ -13,15 +13,6 @@
|
|||
#include <linux/errno.h>
|
||||
#include "clock.h"
|
||||
|
||||
struct clk_functions omap2_clk_functions = {
|
||||
.clk_enable = omap2_clk_enable,
|
||||
.clk_disable = omap2_clk_disable,
|
||||
.clk_round_rate = omap2_clk_round_rate,
|
||||
.clk_set_rate = omap2_clk_set_rate,
|
||||
.clk_set_parent = omap2_clk_set_parent,
|
||||
.clk_disable_unused = omap2_clk_disable_unused,
|
||||
};
|
||||
|
||||
const struct clkops clkops_noncore_dpll_ops = {
|
||||
.enable = &omap3_noncore_dpll_enable,
|
||||
.disable = &omap3_noncore_dpll_disable,
|
||||
|
|
Loading…
Reference in New Issue