mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Thu Jan 28 18:15:10 2016 +0000
Parent:
53:340b9a9997b2
Child:
55:814265bf5462
Commit message:
Synchronized with git revision b5816d872d02a7420c05be91bea5f898b88d2e56

Full URL: https://github.com/mbedmicro/mbed/commit/b5816d872d02a7420c05be91bea5f898b88d2e56/

[Silicon Labs] Fix support for the RC oscillator

Changed in this revision

targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG_STK3700/device_peripherals.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG_STK3400/device_peripherals.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG_STK3600/device_peripherals.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG_STK3401/device_peripherals.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG_STK3800/device_peripherals.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG_STK3200/device_peripherals.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/clocking.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c Show annotated file Show diff for this revision Revisions of this file
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG_STK3700/device_peripherals.h	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG_STK3700/device_peripherals.h	Thu Jan 28 18:15:10 2016 +0000
@@ -71,14 +71,14 @@
 
 /** HFRCO frequency band
  * Options:
- * 	* CMU_HFRCOCTRL_BAND_28MHZ
- * 	* CMU_HFRCOCTRL_BAND_21MHZ
- * 	* CMU_HFRCOCTRL_BAND_14MHZ
- * 	* CMU_HFRCOCTRL_BAND_11MHZ
- * 	* CMU_HFRCOCTRL_BAND_7MHZ
- * 	* CMU_HFRCOCTRL_BAND_1MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_28MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_21MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_14MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_11MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_7MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_1MHZ
  */
-#define HFRCO_FREQUENCY 		CMU_HFRCOCTRL_BAND_14MHZ
+#define HFRCO_FREQUENCY 		_CMU_HFRCOCTRL_BAND_21MHZ
 
 #define LFXO_FREQUENCY			32768
 #define HFXO_FREQUENCY			48000000
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG_STK3400/device_peripherals.h	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG_STK3400/device_peripherals.h	Thu Jan 28 18:15:10 2016 +0000
@@ -71,14 +71,13 @@
 
 /** HFRCO frequency band
  * Options:
- * 	* CMU_HFRCOCTRL_BAND_28MHZ
- * 	* CMU_HFRCOCTRL_BAND_21MHZ
- * 	* CMU_HFRCOCTRL_BAND_14MHZ
- * 	* CMU_HFRCOCTRL_BAND_11MHZ
- * 	* CMU_HFRCOCTRL_BAND_7MHZ
- * 	* CMU_HFRCOCTRL_BAND_1MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_21MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_14MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_11MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_7MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_1MHZ
  */
-#define HFRCO_FREQUENCY 		CMU_HFRCOCTRL_BAND_14MHZ
+#define HFRCO_FREQUENCY 		_CMU_HFRCOCTRL_BAND_21MHZ
 
 #define LFXO_FREQUENCY			32768
 #define HFXO_FREQUENCY			24000000
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG_STK3600/device_peripherals.h	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG_STK3600/device_peripherals.h	Thu Jan 28 18:15:10 2016 +0000
@@ -71,14 +71,14 @@
 
 /** HFRCO frequency band
  * Options:
- * 	* CMU_HFRCOCTRL_BAND_28MHZ
- * 	* CMU_HFRCOCTRL_BAND_21MHZ
- * 	* CMU_HFRCOCTRL_BAND_14MHZ
- * 	* CMU_HFRCOCTRL_BAND_11MHZ
- * 	* CMU_HFRCOCTRL_BAND_7MHZ
- * 	* CMU_HFRCOCTRL_BAND_1MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_28MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_21MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_14MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_11MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_7MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_1MHZ
  */
-#define HFRCO_FREQUENCY 		CMU_HFRCOCTRL_BAND_14MHZ
+#define HFRCO_FREQUENCY 		_CMU_HFRCOCTRL_BAND_21MHZ
 
 #define LFXO_FREQUENCY			32768
 #define HFXO_FREQUENCY			48000000
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG_STK3401/device_peripherals.h	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG_STK3401/device_peripherals.h	Thu Jan 28 18:15:10 2016 +0000
@@ -32,7 +32,7 @@
 
 /* us ticker */
 #define US_TICKER_TIMER         TIMER0
-#define US_TICKER_TIMER_CLOCK	cmuClock_TIMER0
+#define US_TICKER_TIMER_CLOCK   cmuClock_TIMER0
 #define US_TICKER_TIMER_IRQ     TIMER0_IRQn
 
 /* PWM */
@@ -52,31 +52,48 @@
 
 /* Low Energy peripheral clock source.
  * Options:
- * 	* LFXO: external crystal, please define frequency.
- * 	* LFRCO: internal RC oscillator (32.768kHz)
- * 	* ULFRCO: internal ultra-low power RC oscillator (available down to EM3) (1kHz)
+ *  * LFXO: external crystal, please define frequency.
+ *  * LFRCO: internal RC oscillator (32.768kHz)
+ *  * ULFRCO: internal ultra-low power RC oscillator (available down to EM3) (1kHz)
  */
-#define LOW_ENERGY_CLOCK_SOURCE		LFXO
+#define LOW_ENERGY_CLOCK_SOURCE     LFXO
 
 /** Core clock source.
  * Options:
- * 	* HFXO: external crystal, please define frequency.
- * 	* HFRCO: High-frequency internal RC oscillator. Please select frequency as well.
+ *  * HFXO: external crystal, please define frequency.
+ *  * HFRCO: High-frequency internal RC oscillator. Please select frequency as well.
  */
-#define CORE_CLOCK_SOURCE		HFXO
+#define CORE_CLOCK_SOURCE       HFXO
 
-#define HFRCO_FREQUENCY_ENUM            cmuHFRCOFreq_19M0Hz
-#define HFRCO_FREQUENCY                 19000000
+/** HFRCO frequency selection
+ * Options:
+ *   ** HFRCO_FREQUENCY_ENUM ** HFRCO_FREQUENCY **
+ *  *   cmuHFRCOFreq_1M0Hz   ==    1000000        *
+ *  *   cmuHFRCOFreq_2M0Hz   ==    2000000        *
+ *  *   cmuHFRCOFreq_4M0Hz   ==    4000000        *
+ *  *   cmuHFRCOFreq_7M0Hz   ==    7000000        *
+ *  *   cmuHFRCOFreq_13M0Hz  ==   13000000        *
+ *  *   cmuHFRCOFreq_16M0Hz  ==   16000000        *
+ *  *   cmuHFRCOFreq_19M0Hz  ==   19000000        *
+ *  *   cmuHFRCOFreq_26M0Hz  ==   26000000        *
+ *  *   cmuHFRCOFreq_32M0Hz  ==   32000000        *
+ *  *   cmuHFRCOFreq_38M0Hz  ==   38000000        *
+ *   *********************************************
+ */
+ 
+/* Make sure the settings of HFRCO_FREQUENCY and HFRCO_FREQUENCY_ENUM match, or timings will be faulty! */
+#define HFRCO_FREQUENCY_ENUM    cmuHFRCOFreq_19M0Hz
+#define HFRCO_FREQUENCY         19000000
 
-#define LFXO_FREQUENCY			32768
-#define HFXO_FREQUENCY			40000000
+#define LFXO_FREQUENCY          32768
+#define HFXO_FREQUENCY          40000000
 
 #if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
-#define LOW_ENERGY_CLOCK_FREQUENCY	LFXO_FREQUENCY
+#define LOW_ENERGY_CLOCK_FREQUENCY  LFXO_FREQUENCY
 #elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
-#define LOW_ENERGY_CLOCK_FREQUENCY	32768
+#define LOW_ENERGY_CLOCK_FREQUENCY  32768
 #elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
-#define LOW_ENERGY_CLOCK_FREQUENCY	1000
+#define LOW_ENERGY_CLOCK_FREQUENCY  1000
 #else
 #error "Unknown Low Energy Clock selection"
 #endif
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG_STK3800/device_peripherals.h	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG_STK3800/device_peripherals.h	Thu Jan 28 18:15:10 2016 +0000
@@ -71,14 +71,14 @@
 
 /** HFRCO frequency band
  * Options:
- * 	* CMU_HFRCOCTRL_BAND_28MHZ
- * 	* CMU_HFRCOCTRL_BAND_21MHZ
- * 	* CMU_HFRCOCTRL_BAND_14MHZ
- * 	* CMU_HFRCOCTRL_BAND_11MHZ
- * 	* CMU_HFRCOCTRL_BAND_7MHZ
- * 	* CMU_HFRCOCTRL_BAND_1MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_28MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_21MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_14MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_11MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_7MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_1MHZ
  */
-#define HFRCO_FREQUENCY 		CMU_HFRCOCTRL_BAND_14MHZ
+#define HFRCO_FREQUENCY 		_CMU_HFRCOCTRL_BAND_21MHZ
 
 #define LFXO_FREQUENCY			32768
 #define HFXO_FREQUENCY			48000000
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG_STK3200/device_peripherals.h	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG_STK3200/device_peripherals.h	Thu Jan 28 18:15:10 2016 +0000
@@ -68,14 +68,13 @@
 
 /** HFRCO frequency band
  * Options:
- * 	* CMU_HFRCOCTRL_BAND_28MHZ
- * 	* CMU_HFRCOCTRL_BAND_21MHZ
- * 	* CMU_HFRCOCTRL_BAND_14MHZ
- * 	* CMU_HFRCOCTRL_BAND_11MHZ
- * 	* CMU_HFRCOCTRL_BAND_7MHZ
- * 	* CMU_HFRCOCTRL_BAND_1MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_21MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_14MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_11MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_7MHZ
+ * 	* _CMU_HFRCOCTRL_BAND_1MHZ
  */
-#define HFRCO_FREQUENCY 		CMU_HFRCOCTRL_BAND_14MHZ
+#define HFRCO_FREQUENCY 		_CMU_HFRCOCTRL_BAND_21MHZ
 
 #define LFXO_FREQUENCY			32768
 #define HFXO_FREQUENCY			24000000
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/clocking.h	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/clocking.h	Thu Jan 28 18:15:10 2016 +0000
@@ -36,17 +36,17 @@
 #elif( CORE_CLOCK_SOURCE == HFRCO)
 
 # if defined _CMU_HFRCOCTRL_BAND_MASK
-#  if( HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_1MHZ)
+#  if( HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_1MHZ)
 #   define REFERENCE_FREQUENCY 1000000
-#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_7MHZ)
+#  elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_7MHZ)
 #   define REFERENCE_FREQUENCY 7000000
-#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_11MHZ)
+#  elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_11MHZ)
 #   define REFERENCE_FREQUENCY 7000000
-#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_14MHZ)
+#  elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_14MHZ)
 #   define REFERENCE_FREQUENCY 14000000
-#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_21MHZ)
+#  elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_21MHZ)
 #   define REFERENCE_FREQUENCY 21000000
-#  elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_28MHZ)
+#  elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_28MHZ)
 #   define REFERENCE_FREQUENCY 28000000
 #  else
 #   define REFERENCE_FREQUENCY 14000000
--- a/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c	Wed Jan 20 08:15:10 2016 +0000
+++ b/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/spi_api.c	Thu Jan 28 18:15:10 2016 +0000
@@ -213,12 +213,12 @@
     if (miso != NC) {
         route |= USART_ROUTEPEN_RXPEN;
         obj->spi.spi->ROUTELOC0 &= ~_USART_ROUTELOC0_RXLOC_MASK;
-        obj->spi.spi->ROUTELOC0 |= pin_location(mosi, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_RXLOC_SHIFT;
+        obj->spi.spi->ROUTELOC0 |= pin_location(miso, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_RXLOC_SHIFT;
     }
     if (!obj->spi.master) {
         route |= USART_ROUTEPEN_CSPEN;
         obj->spi.spi->ROUTELOC0 &= ~_USART_ROUTELOC0_CSLOC_MASK;
-        obj->spi.spi->ROUTELOC0 |= pin_location(mosi, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_CSLOC_SHIFT;
+        obj->spi.spi->ROUTELOC0 |= pin_location(cs, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_CSLOC_SHIFT;
     }
     obj->spi.spi->ROUTEPEN = route;
 }