src/cc1111: Turn off RC osc after xtal is running
authorKeith Packard <keithp@keithp.com>
Sat, 7 Dec 2013 17:38:50 +0000 (09:38 -0800)
committerKeith Packard <keithp@keithp.com>
Sat, 7 Dec 2013 17:38:50 +0000 (09:38 -0800)
There's no reason to keep running the RC oscillator after we switch to
the crystal, so turn it off.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/cc1111/ao_timer.c

index 54af9605b59bb997fa75b89508bb45e41f06e8d8..75cc4ce8b562e6f339d76451a103b9e3bdd73fc0 100644 (file)
@@ -95,6 +95,13 @@ ao_clock_init(void)
        while (!(SLEEP & SLEEP_XOSC_STB))
                ;
 
        while (!(SLEEP & SLEEP_XOSC_STB))
                ;
 
+       /* Power down the unused HFRC oscillator */
+       SLEEP |= SLEEP_OSC_PD;
+
+       /* Wait for HFRC to power down */
+       while ((SLEEP & SLEEP_HFRC_STB) != 0)
+               ;
+       
        /* Crank up the timer tick and system clock speed */
        CLKCON = ((CLKCON & ~(CLKCON_TICKSPD_MASK | CLKCON_CLKSPD_MASK)) |
                  (CLKCON_TICKSPD_1 | CLKCON_CLKSPD_1));
        /* Crank up the timer tick and system clock speed */
        CLKCON = ((CLKCON & ~(CLKCON_TICKSPD_MASK | CLKCON_CLKSPD_MASK)) |
                  (CLKCON_TICKSPD_1 | CLKCON_CLKSPD_1));