commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=6f80a2c4d0feac0d349462d1789488c84c1939a7 branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk
Otherwise, the following up change to CGU_DIV doesn't take effect. Signed-off-by: Sonic Zhang <[email protected]> --- arch/blackfin/include/asm/mem_init.h | 3 +++ arch/blackfin/mach-common/clocks-init.c | 17 ++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/arch/blackfin/include/asm/mem_init.h b/arch/blackfin/include/asm/mem_init.h index 04ca9db..cbbbda4 100644 --- a/arch/blackfin/include/asm/mem_init.h +++ b/arch/blackfin/include/asm/mem_init.h @@ -325,6 +325,9 @@ #define PLOCK 0x4 #define CLKSALGN 0x8 +/* CGU Control bits */ +#define VCO_MULT_MASK 0x7F00 + #define CGU_CTL_VAL ((CONFIG_VCO_MULT << 8) | CLKIN_HALF) #define CGU_DIV_VAL \ ((CONFIG_CCLK_DIV << CSEL_OFFSET) | \ diff --git a/arch/blackfin/mach-common/clocks-init.c b/arch/blackfin/mach-common/clocks-init.c index e760782..18e2d15 100644 --- a/arch/blackfin/mach-common/clocks-init.c +++ b/arch/blackfin/mach-common/clocks-init.c @@ -39,17 +39,20 @@ void init_clocks(void) continue; } - bfin_write32(CGU0_DIV, CGU_DIV_VAL); - bfin_write32(CGU0_CTL, CGU_CTL_VAL); - while ((bfin_read32(CGU0_STAT) & (CLKSALGN | PLLBP)) || - !(bfin_read32(CGU0_STAT) & PLOCK)) - continue; + /* Don't set the same value of MSEL and DF to CGU_CTL */ + if ((bfin_read32(CGU0_CTL) & (VCO_MULT_MASK | CLKIN_HALF)) + != CGU_CTL_VAL) { + bfin_write32(CGU0_DIV, CGU_DIV_VAL); + bfin_write32(CGU0_CTL, CGU_CTL_VAL); + while ((bfin_read32(CGU0_STAT) & (CLKSALGN | PLLBP)) || + !(bfin_read32(CGU0_STAT) & PLOCK)) + continue; + } - bfin_write32(CGU0_DIV, CGU_DIV_VAL | UPDT); + bfin_write32(CGU0_DIV, bfin_read32(CGU0_DIV) | UPDT); while (bfin_read32(CGU0_STAT) & CLKSALGN) continue; - if (bfin_read_DMC0_STAT() & MEMINITDONE) { bfin_write_DMC0_CTL(bfin_read_DMC0_CTL() & ~SRREQ); do_sync();
_______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
