[EFM32] Move clock configuration to target settings

Moving the per-board clock configuration (which oscillators are available on the board, their frequencies, and which ones to use) as config options to the target database. This way, they're more easily overridable when third parties start creating boards with EFM32 MCUs
pull/3122/head
Steven Cooreman 2016-10-22 22:26:29 +02:00
parent 758d160384
commit 0b6ed71626
11 changed files with 254 additions and 340 deletions

View File

@ -36,54 +36,4 @@
/* USB */
#define USB_TIMER USB_TIMER1
/* Clocks */
/* Clock definitions */
#define LFXO 0
#define HFXO 1
#define LFRCO 2
#define HFRCO 3
#if !defined(_EFM32_GECKO_FAMILY)
#define ULFRCO 4
#endif
/* 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)
*/
#define LOW_ENERGY_CLOCK_SOURCE LFXO
/** Core clock source.
* Options:
* * HFXO: external crystal, please define frequency.
* * HFRCO: High-frequency internal RC oscillator. Please select band as well.
*/
#define CORE_CLOCK_SOURCE HFXO
/** 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
*/
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
#define LFXO_FREQUENCY 32768
#define HFXO_FREQUENCY 48000000
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
#else
#error "Unknown Low Energy Clock selection"
#endif
#endif

View File

@ -50,10 +50,6 @@ typedef enum {
LEUART_0 = LEUART0_BASE
} UARTName;
#define STDIO_UART_TX USBTX
#define STDIO_UART_RX USBRX
#define STDIO_UART USART1
typedef enum {
SPI_0 = USART0_BASE,
SPI_1 = USART1_BASE

View File

@ -36,53 +36,4 @@
/* USB */
#define USB_TIMER USB_TIMER2
/* Clocks */
/* Clock definitions */
#define LFXO 0
#define HFXO 1
#define LFRCO 2
#define HFRCO 3
#if !defined(_EFM32_GECKO_FAMILY)
#define ULFRCO 4
#endif
/* 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)
*/
#define LOW_ENERGY_CLOCK_SOURCE LFXO
/** Core clock source.
* Options:
* * HFXO: external crystal, please define frequency.
* * HFRCO: High-frequency internal RC oscillator. Please select band as well.
*/
#define CORE_CLOCK_SOURCE HFXO
/** HFRCO frequency band
* Options:
* * _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_21MHZ
#define LFXO_FREQUENCY 32768
#define HFXO_FREQUENCY 24000000
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
#else
#error "Unknown Low Energy Clock selection"
#endif
#endif

View File

@ -36,54 +36,4 @@
/* USB */
#define USB_TIMER USB_TIMER1
/* Clocks */
/* Clock definitions */
#define LFXO 0
#define HFXO 1
#define LFRCO 2
#define HFRCO 3
#if !defined(_EFM32_GECKO_FAMILY)
#define ULFRCO 4
#endif
/* 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)
*/
#define LOW_ENERGY_CLOCK_SOURCE LFXO
/** Core clock source.
* Options:
* * HFXO: external crystal, please define frequency.
* * HFRCO: High-frequency internal RC oscillator. Please select band as well.
*/
#define CORE_CLOCK_SOURCE HFXO
/** 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
*/
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
#define LFXO_FREQUENCY 32768
#define HFXO_FREQUENCY 48000000
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
#else
#error "Unknown Low Energy Clock selection"
#endif
#endif

View File

@ -33,62 +33,4 @@
#define PWM_TIMER_CLOCK cmuClock_TIMER1
#define PWM_ROUTE TIMER_ROUTE_LOCATION_LOC1
/* Clocks */
/* Clock definitions */
#define LFXO 0
#define HFXO 1
#define LFRCO 2
#define HFRCO 3
#define ULFRCO 4
/* 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)
*/
#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.
*/
#define CORE_CLOCK_SOURCE HFXO
/** 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
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
#else
#error "Unknown Low Energy Clock selection"
#endif
#endif

View File

@ -36,54 +36,4 @@
/* USB */
#define USB_TIMER USB_TIMER1
/* Clocks */
/* Clock definitions */
#define LFXO 0
#define HFXO 1
#define LFRCO 2
#define HFRCO 3
#if !defined(_EFM32_GECKO_FAMILY)
#define ULFRCO 4
#endif
/* 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)
*/
#define LOW_ENERGY_CLOCK_SOURCE LFXO
/** Core clock source.
* Options:
* * HFXO: external crystal, please define frequency.
* * HFRCO: High-frequency internal RC oscillator. Please select band as well.
*/
#define CORE_CLOCK_SOURCE HFXO
/** 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
*/
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
#define LFXO_FREQUENCY 32768
#define HFXO_FREQUENCY 48000000
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
#else
#error "Unknown Low Energy Clock selection"
#endif
#endif

View File

@ -33,53 +33,4 @@
#define PWM_TIMER_CLOCK cmuClock_TIMER0
#define PWM_ROUTE TIMER_ROUTE_LOCATION_LOC0
/* Clocks */
/* Clock definitions */
#define LFXO 0
#define HFXO 1
#define LFRCO 2
#define HFRCO 3
#if !defined(_EFM32_GECKO_FAMILY)
#define ULFRCO 4
#endif
/* 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)
*/
#define LOW_ENERGY_CLOCK_SOURCE LFXO
/** Core clock source.
* Options:
* * HFXO: external crystal, please define frequency.
* * HFRCO: High-frequency internal RC oscillator. Please select band as well.
*/
#define CORE_CLOCK_SOURCE HFXO
/** HFRCO frequency band
* Options:
* * _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_21MHZ
#define LFXO_FREQUENCY 32768
#define HFXO_FREQUENCY 24000000
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
#else
#error "Unknown Low Energy Clock selection"
#endif
#endif

View File

@ -21,34 +21,70 @@
* limitations under the License.
*
******************************************************************************/
#ifndef MBED_CLOCKING_H
#define MBED_CLOCKING_H
#include "device_peripherals.h"
/* Clock definitions */
#define LFXO 0
#define HFXO 1
#define LFRCO 2
#define HFRCO 3
#if !defined(_EFM32_GECKO_FAMILY)
#define ULFRCO 4
#endif
/* 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)
*/
#ifndef LOW_ENERGY_CLOCK_SOURCE
#define LOW_ENERGY_CLOCK_SOURCE LFXO
#endif
/** Core clock source.
* Options:
* * HFXO: external crystal, please define frequency.
* * HFRCO: High-frequency internal RC oscillator. Please select band as well.
*/
#ifndef CORE_CLOCK_SOURCE
#define CORE_CLOCK_SOURCE HFRCO
#if defined(_CMU_HFRCOCTRL_BAND_MASK)
#define HFRCO_FREQUENCY_ENUM _CMU_HFRCOCTRL_BAND_21MHZ
#define HFRCO_FREQUENCY 21000000
#elif defined(_CMU_HFRCOCTRL_FREQRANGE_MASK)
#define HFRCO_FREQUENCY_ENUM cmuHFRCOFreq_32M0Hz
#define HFRCO_FREQUENCY 32000000
#endif
#endif // CORE_CLOCK_SOURCE
#if !defined(LFXO_FREQUENCY) && (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#error "LFXO frequency is undefined!"
#endif
#if !defined(HFXO_FREQUENCY) && (CORE_CLOCK_SOURCE == HFXO)
#error "HFXO frequency is undefined!"
#endif
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
#else
#error "Unknown Low Energy Clock selection"
#endif
#if( CORE_CLOCK_SOURCE == HFXO)
# define REFERENCE_FREQUENCY HFXO_FREQUENCY
#elif( CORE_CLOCK_SOURCE == HFRCO)
# if defined _CMU_HFRCOCTRL_BAND_MASK
# if( HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_1MHZ)
# define REFERENCE_FREQUENCY 1000000
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_7MHZ)
# define REFERENCE_FREQUENCY 7000000
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_11MHZ)
# define REFERENCE_FREQUENCY 7000000
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_14MHZ)
# define REFERENCE_FREQUENCY 14000000
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_21MHZ)
# define REFERENCE_FREQUENCY 21000000
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_28MHZ)
# define REFERENCE_FREQUENCY 28000000
# else
# define REFERENCE_FREQUENCY 14000000
# endif
# elif defined _CMU_HFRCOCTRL_FREQRANGE_MASK
# define REFERENCE_FREQUENCY HFRCO_FREQUENCY
# else
# error "HFRCO frequency not defined"
# endif
#if !defined(HFRCO_FREQUENCY)
# error "HFRCO frequency is not defined!"
#else
# define REFERENCE_FREQUENCY HFRCO_FREQUENCY
#endif
#endif
#if ( LOW_ENERGY_CLOCK_SOURCE == LFXO )
@ -67,3 +103,4 @@
# endif
#endif
#endif

View File

@ -50,7 +50,7 @@ void mbed_sdk_init()
#elif( CORE_CLOCK_SOURCE == HFRCO)
CMU_ClockSelectSet(cmuClock_HF, cmuSelect_HFRCO);
# if defined _CMU_HFRCOCTRL_BAND_MASK
CMU_HFRCOBandSet(HFRCO_FREQUENCY);
CMU_HFRCOBandSet(HFRCO_FREQUENCY_ENUM);
# elif defined _CMU_HFRCOCTRL_FREQRANGE_MASK
CMU_HFRCOFreqSet(HFRCO_FREQUENCY_ENUM);
# else

View File

@ -22,6 +22,7 @@
******************************************************************************/
#include "device.h"
#include "clocking.h"
#if DEVICE_LOWPOWERTIMER
#include "rtc_api.h"

View File

@ -1835,7 +1835,38 @@
"progen": {"target": "efm32gg-stk"},
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
"forced_reset_timeout": 2,
"public": true
"config": {
"hf_clock_src": {
"help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
"value": "HFXO",
"macro_name": "CORE_CLOCK_SOURCE"
},
"hfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "48000000",
"macro_name": "HFXO_FREQUENCY"
},
"lf_clock_src": {
"help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
"value": "LFXO",
"macro_name": "LOW_ENERGY_CLOCK_SOURCE"
},
"lfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "32768",
"macro_name": "LFXO_FREQUENCY"
},
"hfrco_clock_freq": {
"help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
"value": "21000000",
"macro_name": "HFRCO_FREQUENCY"
},
"hfrco_band_select": {
"help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
"value": "_CMU_HFRCOCTRL_BAND_21MHZ",
"macro_name": "HFRCO_FREQUENCY_ENUM"
}
}
},
"EFM32LG990F256": {
"inherits": ["EFM32"],
@ -1852,7 +1883,38 @@
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
"forced_reset_timeout": 2,
"device_name": "EFM32LG990F256",
"public": true
"config": {
"hf_clock_src": {
"help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
"value": "HFXO",
"macro_name": "CORE_CLOCK_SOURCE"
},
"hfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "48000000",
"macro_name": "HFXO_FREQUENCY"
},
"lf_clock_src": {
"help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
"value": "LFXO",
"macro_name": "LOW_ENERGY_CLOCK_SOURCE"
},
"lfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "32768",
"macro_name": "LFXO_FREQUENCY"
},
"hfrco_clock_freq": {
"help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
"value": "21000000",
"macro_name": "HFRCO_FREQUENCY"
},
"hfrco_band_select": {
"help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
"value": "_CMU_HFRCOCTRL_BAND_21MHZ",
"macro_name": "HFRCO_FREQUENCY_ENUM"
}
}
},
"EFM32WG990F256": {
"inherits": ["EFM32"],
@ -1869,7 +1931,38 @@
"progen": {"target": "efm32wg-stk"},
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
"forced_reset_timeout": 2,
"public": true
"config": {
"hf_clock_src": {
"help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
"value": "HFXO",
"macro_name": "CORE_CLOCK_SOURCE"
},
"hfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "48000000",
"macro_name": "HFXO_FREQUENCY"
},
"lf_clock_src": {
"help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
"value": "LFXO",
"macro_name": "LOW_ENERGY_CLOCK_SOURCE"
},
"lfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "32768",
"macro_name": "LFXO_FREQUENCY"
},
"hfrco_clock_freq": {
"help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
"value": "21000000",
"macro_name": "HFRCO_FREQUENCY"
},
"hfrco_band_select": {
"help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
"value": "_CMU_HFRCOCTRL_BAND_21MHZ",
"macro_name": "HFRCO_FREQUENCY_ENUM"
}
}
},
"EFM32ZG222F32": {
"inherits": ["EFM32"],
@ -1887,7 +1980,38 @@
"inherits": ["EFM32ZG222F32"],
"device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
"forced_reset_timeout": 2,
"public": true
"config": {
"hf_clock_src": {
"help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
"value": "HFXO",
"macro_name": "CORE_CLOCK_SOURCE"
},
"hfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "24000000",
"macro_name": "HFXO_FREQUENCY"
},
"lf_clock_src": {
"help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
"value": "LFXO",
"macro_name": "LOW_ENERGY_CLOCK_SOURCE"
},
"lfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "32768",
"macro_name": "LFXO_FREQUENCY"
},
"hfrco_clock_freq": {
"help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
"value": "21000000",
"macro_name": "HFRCO_FREQUENCY"
},
"hfrco_band_select": {
"help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
"value": "_CMU_HFRCOCTRL_BAND_21MHZ",
"macro_name": "HFRCO_FREQUENCY_ENUM"
}
}
},
"EFM32HG322F64": {
"inherits": ["EFM32"],
@ -1905,7 +2029,38 @@
"inherits": ["EFM32HG322F64"],
"device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
"forced_reset_timeout": 2,
"public": true
"config": {
"hf_clock_src": {
"help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
"value": "HFXO",
"macro_name": "CORE_CLOCK_SOURCE"
},
"hfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "24000000",
"macro_name": "HFXO_FREQUENCY"
},
"lf_clock_src": {
"help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
"value": "LFXO",
"macro_name": "LOW_ENERGY_CLOCK_SOURCE"
},
"lfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "32768",
"macro_name": "LFXO_FREQUENCY"
},
"hfrco_clock_freq": {
"help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
"value": "21000000",
"macro_name": "HFRCO_FREQUENCY"
},
"hfrco_band_select": {
"help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!",
"value": "_CMU_HFRCOCTRL_BAND_21MHZ",
"macro_name": "HFRCO_FREQUENCY_ENUM"
}
}
},
"EFM32PG1B100F256GM32": {
"inherits": ["EFM32"],
@ -1921,7 +2076,38 @@
"inherits": ["EFM32PG1B100F256GM32"],
"device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
"forced_reset_timeout": 2,
"public": true
"config": {
"hf_clock_src": {
"help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator",
"value": "HFXO",
"macro_name": "CORE_CLOCK_SOURCE"
},
"hfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "40000000",
"macro_name": "HFXO_FREQUENCY"
},
"lf_clock_src": {
"help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator",
"value": "LFXO",
"macro_name": "LOW_ENERGY_CLOCK_SOURCE"
},
"lfxo_clock_freq": {
"help": "Value: External crystal frequency in hertz",
"value": "32768",
"macro_name": "LFXO_FREQUENCY"
},
"hfrco_clock_freq": {
"help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select",
"value": "32000000",
"macro_name": "HFRCO_FREQUENCY"
},
"hfrco_band_select": {
"help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!",
"value": "cmuHFRCOFreq_32M0Hz",
"macro_name": "HFRCO_FREQUENCY_ENUM"
}
}
},
"WIZWIKI_W7500": {
"supported_form_factors": ["ARDUINO"],