soc/qualcomm/common: Add API to enable Zondaole PLL for X1P42100

Add API to enable Zondaole PLL.

TEST=Create an image.serial.bin and ensure it boots on X1P42100.

Change-Id: I80e0b97eeda1bdd10059cc571c1258909df446f1
Signed-off-by: Swathi Tamilselvan <tswathi@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/88531
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Swathi Tamilselvan 2025-07-16 10:23:54 +05:30 committed by Matt DeVillier
commit 1a9fb29a53
2 changed files with 29 additions and 0 deletions

View file

@ -271,6 +271,28 @@ enum cb_err zonda_pll_enable(struct alpha_pll_reg_val_config *cfg)
return CB_SUCCESS;
}
enum cb_err zondaole_pll_enable(struct alpha_pll_reg_val_config *cfg)
{
setbits32(cfg->reg_mode, BIT(PLL_BYPASSNL_SHFT));
/*
* H/W requires a 1us delay between disabling the bypass and
* de-asserting the reset.
*/
udelay(1);
setbits32(cfg->reg_mode, BIT(PLL_RESET_SHFT));
setbits32(cfg->reg_opmode, PLL_RUN_MODE);
if (!wait_us(100, read32(cfg->reg_mode) & PLL_LOCK_DET_BMSK)) {
printk(BIOS_ERR, "CPU PLL did not lock!\n");
return CB_ERR;
}
setbits32(cfg->reg_mode, BIT(PLL_OUTCTRL_SHFT));
return CB_SUCCESS;
}
/* Bring subsystem out of RESET */
void clock_reset_subsystem(u32 *misc, u32 shft)
{

View file

@ -169,6 +169,13 @@ enum cb_err agera_pll_enable(struct alpha_pll_reg_val_config *cfg);
enum cb_err zonda_pll_enable(struct alpha_pll_reg_val_config *cfg);
/*
* zondaole_pll_enable(): Enable Zondaole PLL at the given configuration (cfg).
*
* @param cfg struct alpha_pll_reg_val_config
*/
enum cb_err zondaole_pll_enable(struct alpha_pll_reg_val_config *cfg);
struct aoss {
u8 _res0[0x50020];
u32 aoss_cc_reset_status;