soc/mediatek: Add function to raise the CPU frequency of MT8192
Rename all mt_pll_raise_ca53_freq() into mt_pll_raise_little_cpu_freq(). Implement mt_pll_raise_little_cpu_freq() in MT8192. Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com> Change-Id: I97d9a61f39f2eb27f0c6f911a9199bf0eaae4fbe Reviewed-on: https://review.coreboot.org/c/coreboot/+/45401 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
parent
83b33f62cf
commit
86b3bf10e6
|
@ -57,7 +57,7 @@ void platform_romstage_main(void)
|
||||||
mt6358_init();
|
mt6358_init();
|
||||||
/* Adjust VSIM2 down to 2.7V because it is shared with IT6505. */
|
/* Adjust VSIM2 down to 2.7V because it is shared with IT6505. */
|
||||||
pmic_set_vsim2_cali(2700);
|
pmic_set_vsim2_cali(2700);
|
||||||
mt_pll_raise_ca53_freq(1989 * MHz);
|
mt_pll_raise_little_cpu_freq(1989 * MHz);
|
||||||
pmic_init_scp_voltage();
|
pmic_init_scp_voltage();
|
||||||
rtc_boot();
|
rtc_boot();
|
||||||
mt_mem_init(&dparam_ops);
|
mt_mem_init(&dparam_ops);
|
||||||
|
|
|
@ -28,9 +28,9 @@ void platform_romstage_main(void)
|
||||||
|
|
||||||
/* Set to maximum frequency */
|
/* Set to maximum frequency */
|
||||||
if (board_id() + CONFIG_BOARD_ID_ADJUSTMENT < 5)
|
if (board_id() + CONFIG_BOARD_ID_ADJUSTMENT < 5)
|
||||||
mt_pll_raise_ca53_freq(1600 * MHz);
|
mt_pll_raise_little_cpu_freq(1600 * MHz);
|
||||||
else
|
else
|
||||||
mt_pll_raise_ca53_freq(1700 * MHz);
|
mt_pll_raise_little_cpu_freq(1700 * MHz);
|
||||||
|
|
||||||
mtk_mmu_after_dram();
|
mtk_mmu_after_dram();
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,6 @@ void pll_set_pcw_change(const struct pll *pll);
|
||||||
void mux_set_sel(const struct mux *mux, u32 sel);
|
void mux_set_sel(const struct mux *mux, u32 sel);
|
||||||
int pll_set_rate(const struct pll *pll, u32 rate);
|
int pll_set_rate(const struct pll *pll, u32 rate);
|
||||||
void mt_pll_init(void);
|
void mt_pll_init(void);
|
||||||
void mt_pll_raise_ca53_freq(u32 freq);
|
void mt_pll_raise_little_cpu_freq(u32 freq);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -417,7 +417,7 @@ void mt_pll_set_aud_div(u32 rate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mt_pll_raise_ca53_freq(u32 freq)
|
void mt_pll_raise_little_cpu_freq(u32 freq)
|
||||||
{
|
{
|
||||||
pll_set_rate(&plls[APMIXED_ARMCA7PLL], freq); /* freq in Hz */
|
pll_set_rate(&plls[APMIXED_ARMCA7PLL], freq); /* freq in Hz */
|
||||||
}
|
}
|
||||||
|
|
|
@ -362,7 +362,7 @@ void mt_pll_init(void)
|
||||||
setbits32(&mt8183_infracfg->module_sw_cg_2_clr, 1 << 4);
|
setbits32(&mt8183_infracfg->module_sw_cg_2_clr, 1 << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mt_pll_raise_ca53_freq(u32 freq)
|
void mt_pll_raise_little_cpu_freq(u32 freq)
|
||||||
{
|
{
|
||||||
/* enable [4] intermediate clock armpll_divider_pll1_ck */
|
/* enable [4] intermediate clock armpll_divider_pll1_ck */
|
||||||
setbits32(&mtk_topckgen->clk_misc_cfg_0, 1 << 4);
|
setbits32(&mtk_topckgen->clk_misc_cfg_0, 1 << 4);
|
||||||
|
|
|
@ -249,6 +249,7 @@ enum {
|
||||||
|
|
||||||
MCU_MUX_MASK = 0x3 << 9,
|
MCU_MUX_MASK = 0x3 << 9,
|
||||||
MCU_MUX_SRC_PLL = 0x1 << 9,
|
MCU_MUX_SRC_PLL = 0x1 << 9,
|
||||||
|
MCU_MUX_SRC_DIV_PLL1 = 0x2 << 9,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|
|
@ -434,3 +434,28 @@ void mt_pll_init(void)
|
||||||
/* enable [14] dramc_pll104m_ck */
|
/* enable [14] dramc_pll104m_ck */
|
||||||
setbits32(&mtk_topckgen->clk_misc_cfg_0, 1 << 14);
|
setbits32(&mtk_topckgen->clk_misc_cfg_0, 1 << 14);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mt_pll_raise_little_cpu_freq(u32 freq)
|
||||||
|
{
|
||||||
|
/* enable [4] intermediate clock armpll_divider_pll1_ck */
|
||||||
|
setbits32(&mtk_topckgen->clk_misc_cfg_0, 1 << 4);
|
||||||
|
|
||||||
|
/* switch ca55 clock source to intermediate clock */
|
||||||
|
clrsetbits32(&mt8192_mcucfg->cpu_plldiv_cfg0, MCU_MUX_MASK, MCU_MUX_SRC_DIV_PLL1);
|
||||||
|
|
||||||
|
/* disable armpll_ll frequency output */
|
||||||
|
clrbits32(plls[APMIXED_ARMPLL_LL].reg, PLL_EN);
|
||||||
|
|
||||||
|
/* raise armpll_ll frequency */
|
||||||
|
pll_set_rate(&plls[APMIXED_ARMPLL_LL], freq);
|
||||||
|
|
||||||
|
/* enable armpll_ll frequency output */
|
||||||
|
setbits32(plls[APMIXED_ARMPLL_LL].reg, PLL_EN);
|
||||||
|
udelay(PLL_EN_DELAY);
|
||||||
|
|
||||||
|
/* switch ca55 clock source back to armpll_ll */
|
||||||
|
clrsetbits32(&mt8192_mcucfg->cpu_plldiv_cfg0, MCU_MUX_MASK, MCU_MUX_SRC_PLL);
|
||||||
|
|
||||||
|
/* disable [4] intermediate clock armpll_divider_pll1_ck */
|
||||||
|
clrbits32(&mtk_topckgen->clk_misc_cfg_0, 1 << 4);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue