blob: 1cfcacade39b5850e979712b1adf38b2244f9257 [file] [log] [blame]
#include <common.h>
#include "Galois_memmap.h"
#include "global.h"
#include "io.h"
/*
* CPU PLL
*/
#define CPUPLL_CTL_VAL 0x9948B005 //1200
#define CPUPLL_CTL1_VAL 0x0108312D //1200
#define CPUPLL_CTL2_VAL 0x00100000
void initCpuPll_1200(void)
{
volatile int delay;
register unsigned int reg_val;
//bypass ON
reg_val = readl((MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_ClkSwitch));
reg_val |= (1<<LSb32Gbl_ClkSwitch_cpu1PLLSWBypass);
writel(reg_val, (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_ClkSwitch));
//change Pll frequency
writel(CPUPLL_CTL_VAL, (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_cpuPllCtl));
writel(CPUPLL_CTL1_VAL, (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_cpuPllCtl1));
writel(CPUPLL_CTL2_VAL, (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_cpuPllCtl2));
//reset
writel((1<<LSb32Gbl_ResetTrigger_cpu1PllSyncReset), (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_ResetTrigger));
//delay
for(delay=500; delay>0; delay--);
//bypass off
reg_val = readl((MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_ClkSwitch));
reg_val &= ~(1<<LSb32Gbl_ClkSwitch_cpu1PLLSWBypass);
writel(reg_val, (MEMMAP_CHIP_CTRL_REG_BASE + RA_Gbl_ClkSwitch));
}