mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 04:48:04 +09:00
rk2928:sdk: fix pll_mode POWER ON/DN ERROR
This commit is contained in:
@@ -545,6 +545,7 @@ static void pll_wait_lock(int pll_idx)
|
||||
while(1);
|
||||
}
|
||||
}
|
||||
|
||||
static int pll_clk_mode(struct clk *clk, int on)
|
||||
{
|
||||
u8 pll_id = clk->pll->id;
|
||||
@@ -554,13 +555,13 @@ static int pll_clk_mode(struct clk *clk, int on)
|
||||
CLKDATA_DBG("pll_mode %s(%d)\n", clk->name, on);
|
||||
//FIXME
|
||||
if (on) {
|
||||
cru_writel(CRU_W_MSK_SETBIT(PLL_PWR_ON, PLL_LOCK_SHIFT), PLL_CONS(pll_id, 1));
|
||||
cru_writel(CRU_W_MSK_SETBIT(PLL_PWR_ON, PLL_BYPASS_SHIFT), PLL_CONS(pll_id, 0));
|
||||
rk_clock_udelay(dly);
|
||||
pll_wait_lock(pll_id);
|
||||
cru_writel(PLL_MODE_NORM(pll_id), CRU_MODE_CON);
|
||||
} else {
|
||||
cru_writel(PLL_MODE_SLOW(pll_id), CRU_MODE_CON);
|
||||
cru_writel(CRU_W_MSK_SETBIT(PLL_PWR_DN, PLL_LOCK_SHIFT), PLL_CONS(pll_id, 1));
|
||||
cru_writel(CRU_W_MSK_SETBIT(PLL_PWR_DN, PLL_BYPASS_SHIFT), PLL_CONS(pll_id, 0));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -33,8 +33,8 @@ enum rk_plls_id {
|
||||
#define CRU_GLB_CNT_TH (0x140)
|
||||
|
||||
/*PLL_CON 0,1,2*/
|
||||
#define PLL_PWR_ON (1)
|
||||
#define PLL_PWR_DN (0)
|
||||
#define PLL_PWR_ON (0)
|
||||
#define PLL_PWR_DN (1)
|
||||
#define PLL_BYPASS (1 << 15)
|
||||
#define PLL_NO_BYPASS (0 << 15)
|
||||
//con0
|
||||
|
||||
Reference in New Issue
Block a user