1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-05 10:42:10 +02:00
This commit is contained in:
wdenk
2003-12-27 19:29:48 +00:00
parent 7cb22f97ee
commit a2f34be7dd

View File

@@ -40,28 +40,23 @@
* frequency of the CPU. Don't use the macros, which are set to init the CPU * frequency of the CPU. Don't use the macros, which are set to init the CPU
* frequency in the ROM code. * frequency in the ROM code.
*/ */
uint incaip_get_cpuclk(void) uint incaip_get_cpuclk (void)
{ {
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
/* CPU Clock Input Multiplexer (MUX I) */ /* CPU Clock Input Multiplexer (MUX I) */
/* Multiplexer MUX I selects the maximum input clock to the CPU. */ /* Multiplexer MUX I selects the maximum input clock to the CPU. */
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
if (*((volatile ulong*)INCA_IP_CGU_CGU_MUXCR) & INCA_IP_CGU_CGU_MUXCR_MUXI) if (*((volatile ulong *) INCA_IP_CGU_CGU_MUXCR) &
{ INCA_IP_CGU_CGU_MUXCR_MUXI) {
/* MUX I set to 150 MHz clock */ /* MUX I set to 150 MHz clock */
return 150000000; return 150000000;
} } else {
else
{
/* MUX I set to 100/133 MHz clock */ /* MUX I set to 100/133 MHz clock */
if (*((volatile ulong*)INCA_IP_CGU_CGU_DIVCR) & 0x40) if (*((volatile ulong *) INCA_IP_CGU_CGU_DIVCR) & 0x40) {
{
/* Division value is 1/3, maximum CPU operating */ /* Division value is 1/3, maximum CPU operating */
/* frequency is 133.3 MHz */ /* frequency is 133.3 MHz */
return 130000000; return 130000000;
} } else {
else
{
/* Division value is 1/4, maximum CPU operating */ /* Division value is 1/4, maximum CPU operating */
/* frequency is 100 MHz */ /* frequency is 100 MHz */
return 100000000; return 100000000;
@@ -83,14 +78,13 @@ uint incaip_get_cpuclk(void)
* frequency in the ROM code. * frequency in the ROM code.
* The calculation for the * The calculation for the
*/ */
uint incaip_get_fpiclk(void) uint incaip_get_fpiclk (void)
{ {
uint clkCPU; uint clkCPU;
clkCPU = incaip_get_cpuclk(); clkCPU = incaip_get_cpuclk ();
switch (*((volatile ulong*)INCA_IP_CGU_CGU_DIVCR) & 0xC) switch (*((volatile ulong *) INCA_IP_CGU_CGU_DIVCR) & 0xC) {
{
case 0x4: case 0x4:
return clkCPU >> 1; /* devided by 2 */ return clkCPU >> 1; /* devided by 2 */
break; break;
@@ -103,16 +97,17 @@ uint incaip_get_fpiclk(void)
} }
} }
int incaip_set_cpuclk(void) int incaip_set_cpuclk (void)
{ {
extern void ebu_init(long);
extern void cgu_init(long);
uchar tmp[64]; uchar tmp[64];
ulong cpuclk; ulong cpuclk;
if (getenv_r("cpuclk", tmp, sizeof(tmp)) > 0) if (getenv_r ("cpuclk", tmp, sizeof (tmp)) > 0) {
{ cpuclk = simple_strtoul (tmp, NULL, 10) * 1000000;
cpuclk = simple_strtoul(tmp, NULL, 10) * 1000000; ebu_init (cpuclk);
ebu_init(cpuclk); cgu_init (cpuclk);
cgu_init(cpuclk);
} }
return 0; return 0;