diff options
| author | Keith Packard <keithp@keithp.com> | 2014-05-13 22:46:19 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2014-05-13 22:46:19 -0700 | 
| commit | 940ec6a2d5b054f68da39945a00f4d1b36d1b318 (patch) | |
| tree | 390739c6dc5bf7a7a9940db284613c7a7b15785d | |
| parent | feb0b5f8b28767197f87e5818812d6640c1f40e6 (diff) | |
altos/cc1111: Errata fix isn't needed for discontinued products
And, doesn't fit in memory for some of them, so don't compile it.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | src/cc1111/ao_pins.h | 22 | ||||
| -rw-r--r-- | src/cc1111/ao_timer.c | 15 | 
2 files changed, 34 insertions, 3 deletions
diff --git a/src/cc1111/ao_pins.h b/src/cc1111/ao_pins.h index 91bf81d2..298d6acc 100644 --- a/src/cc1111/ao_pins.h +++ b/src/cc1111/ao_pins.h @@ -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 @@ -160,6 +166,8 @@  #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 @@ -187,6 +195,8 @@  #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 @@ -212,6 +222,8 @@  #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 @@ -243,6 +255,8 @@  #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 @@ -271,6 +285,8 @@  #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 @@ -298,6 +314,8 @@  #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 @@ -334,6 +352,8 @@  #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 @@ -378,6 +398,8 @@  #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 diff --git a/src/cc1111/ao_timer.c b/src/cc1111/ao_timer.c index d681f51b..2fbc6621 100644 --- a/src/cc1111/ao_timer.c +++ b/src/cc1111/ao_timer.c @@ -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));  | 
