altos/cc1111: Errata fix isn't needed for discontinued products
authorKeith Packard <keithp@keithp.com>
Wed, 14 May 2014 05:46:19 +0000 (22:46 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 14 May 2014 05:46:19 +0000 (22:46 -0700)
And, doesn't fit in memory for some of them, so don't compile it.

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

index 91bf81d2102a3a37cc09a14f353b2ac75a82cde4..298d6acc0a3f184d05f8759311fe81a4ca3e3964 100644 (file)
@@ -21,6 +21,8 @@
 #define HAS_RADIO      1
 
 #if defined(TELEMETRUM_V_1_0)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
@@ -56,6 +58,8 @@
 #endif
 
 #if defined(TELEMETRUM_V_1_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
@@ -94,6 +98,8 @@
 #endif
 
 #if defined(TELEMETRUM_V_1_2)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
 #endif
 
 #if defined(TELEMINI_V_1_0)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 0
        #define HAS_BEEP                0
 #endif
 
 #if defined(TELENANO_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 0
        #define HAS_BEEP                0
 #endif
 
 #if defined(TELEMETRUM_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              1
        #define HAS_USB                 1
        #define HAS_BEEP                1
 #endif
 
 #if defined(TELEDONGLE_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                0
 #endif
 
 #if defined(TIDONGLE)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                0
 #endif
 
 #if defined(TELEBT_V_0_0)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                0
 #endif
 
 #if defined(TELEBT_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                1
 #endif
 
 #if defined(TELELAUNCH_V_0_1)
+       /* Discontinued and was never built with CC1111 chips needing this */
+       #define NEEDS_CC1111_CLOCK_HACK 0
        #define HAS_FLIGHT              0
        #define HAS_USB                 1
        #define HAS_BEEP                1
index d681f51bb6689e224bbf2aa259f230a4fd182801..2fbc6621dfdf43c9b989f5d1cbad0092b8498a9f 100644 (file)
@@ -83,6 +83,11 @@ ao_timer_init(void)
        T1CTL = T1CTL_MODE_MODULO | T1CTL_DIV_8;
 }
 
+#ifndef NEEDS_CC1111_CLOCK_HACK
+#define NEEDS_CC1111_CLOCK_HACK                1
+#endif
+
+#if NEEDS_CC1111_CLOCK_HACK
 static void
 ao_clock_delay(void)
 {
@@ -91,6 +96,7 @@ ao_clock_delay(void)
        while (--i)
                ao_arch_nop();
 }
+#endif
 
 /*
  * AltOS always cranks the clock to the max frequency
@@ -98,6 +104,7 @@ ao_clock_delay(void)
 void
 ao_clock_init(void)
 {
+#if NEEDS_CC1111_CLOCK_HACK
        /* Power up both oscillators */
        SLEEP &= ~(SLEEP_OSC_PD);
 
@@ -115,16 +122,18 @@ ao_clock_init(void)
         */
 
        ao_clock_delay();
+#endif
 
        /* Switch system clock to crystal oscilator */
        CLKCON = (CLKCON & ~CLKCON_OSC_MASK) | (CLKCON_OSC_XTAL);
 
+       /* Wait for the HFRC oscillator to be stable */
+       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));