PERFORCE change 94961 for review

Warner Losh imp at FreeBSD.org
Tue Apr 11 00:23:01 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=94961

Change 94961 by imp at imp_Speedy on 2006/04/11 00:22:42

	minor moves towards supporting dual clocks.

Affected files ...

.. //depot/projects/arm/src/sys/boot/arm/kb920x/boot0/at91rm9200_lowlevel.c#7 edit

Differences ...

==== //depot/projects/arm/src/sys/boot/arm/kb920x/boot0/at91rm9200_lowlevel.c#7 (text+ko) ====

@@ -50,6 +50,7 @@
 	register unsigned	value;
 	int i;
 	volatile unsigned short *p = (unsigned short *)SDRAM_BASE;
+	unsigned int div;
 
 	AT91C_BASE_PIOC->PIO_PER = AT91C_PIO_PC10;
 	AT91C_BASE_PIOC->PIO_OER = AT91C_PIO_PC10;
@@ -61,14 +62,19 @@
 	//    PLLB configured for 96MHz (48MHz after div)
 	//    CSS = PLLB
 	
+	// Crude selection between 16MHz clock and 10MHz clock.
+	if (AT91C_BASE_CKGR->CKGR_MCFR & AT91C_CKGR_MAINF < 6000)
+		div = OSC_MAIN_FREQ_DIV_10;
+	else
+		div = OSC_MAIN_FREQ_DIV_16;
+	
 	// set PLLA = 180MHz
 	// assume main osc = 10Mhz
 	// div = 5 , out = 2 (150MHz = 240MHz)
 	value = AT91C_BASE_CKGR->CKGR_PLLAR;
 	value &= ~AT91C_CKGR_DIVA;
 	value &= ~AT91C_CKGR_OUTA;
-	value |= (OSC_MAIN_FREQ_DIV_16 | AT91C_CKGR_OUTA_2);
-	value |= AT91C_CKGR_SRCA;
+	value |= div | AT91C_CKGR_OUTA_2 | AT91C_CKGR_SRCA;
 	AT91C_BASE_CKGR->CKGR_PLLAR = value;
 
 	// mul = 90


More information about the p4-projects mailing list