soc: silabs_exx32: Make HFRCO frequency configurable
This commit adds an option to configure the frequency in Hz for the HFRCO clock source. The default value for this option is 0 which skips the configuration of the HFRCO. This feature is supported for efm32gg, efm32jg, efm32pg, efm32fg and efm32mg SOCs currently. Signed-off-by: Pooja Karanjekar <pooja.karanjekar@lemonbeat.com>
This commit is contained in:
parent
2b2a3b030f
commit
173f636426
7 changed files with 35 additions and 2 deletions
|
@ -164,6 +164,17 @@ config CMU_LFXO_FREQ
|
||||||
Set the external low frequency oscillator frequency in Hz. This should be set by the
|
Set the external low frequency oscillator frequency in Hz. This should be set by the
|
||||||
board's defconfig.
|
board's defconfig.
|
||||||
|
|
||||||
|
config CMU_HFRCO_FREQ
|
||||||
|
int "Internal high frequency RC oscillator frequency"
|
||||||
|
default 0
|
||||||
|
depends on SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
|
help
|
||||||
|
Set the internal high frequency RC oscillator frequency in Hz. This should be set by the
|
||||||
|
board's defconfig. Only supported values may be used here. Setting this to 0, skips the
|
||||||
|
configuration of the high frequency RC oscillator completely. This may be desired, if
|
||||||
|
the bootloader already configured it properly or the device's default clock source should
|
||||||
|
be used with it's default configuration.
|
||||||
|
|
||||||
endif # SOC_GECKO_CMU
|
endif # SOC_GECKO_CMU
|
||||||
|
|
||||||
config SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
config SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
||||||
|
@ -182,4 +193,12 @@ config SOC_GECKO_HAS_ERRATA_RTCC_E201
|
||||||
feature enabled by setting CCV1TOP in RTCC_CTRL fails to wrap the counter
|
feature enabled by setting CCV1TOP in RTCC_CTRL fails to wrap the counter
|
||||||
when RTCC_CNT is equal to RTCC_CC1_CCV, as intended."
|
when RTCC_CNT is equal to RTCC_CC1_CCV, as intended."
|
||||||
|
|
||||||
|
config SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
If enabled, indicates that configuration of HFRCO frequency for this SOC is supported
|
||||||
|
via FREQRANGE field. This is supported for e.g. efr32fg1p, efr32mg12p series.
|
||||||
|
If disabled, indicates that configuration of HFRCO frequency for corresponding SOC
|
||||||
|
is not supported via this field. This is the case for e.g. efm32hg, efm32wg series.
|
||||||
|
|
||||||
endif # SOC_FAMILY_EXX32
|
endif # SOC_FAMILY_EXX32
|
||||||
|
|
|
@ -60,9 +60,18 @@ static ALWAYS_INLINE void clock_init(void)
|
||||||
CMU_OscillatorEnable(cmuOsc_HFRCO, false, false);
|
CMU_OscillatorEnable(cmuOsc_HFRCO, false, false);
|
||||||
#elif (defined CONFIG_CMU_HFCLK_HFRCO)
|
#elif (defined CONFIG_CMU_HFCLK_HFRCO)
|
||||||
/*
|
/*
|
||||||
* This is the default clock, the controller starts with, so nothing to
|
* This is the default clock, the controller starts with
|
||||||
* do here.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
|
if (CONFIG_CMU_HFRCO_FREQ) {
|
||||||
|
/* Setting system HFRCO frequency */
|
||||||
|
CMU_HFRCOBandSet(CONFIG_CMU_HFRCO_FREQ);
|
||||||
|
|
||||||
|
/* Using HFRCO as high frequency clock, HFCLK */
|
||||||
|
CMU_ClockSelectSet(cmuClock_HF, cmuSelect_HFRCO);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#error "Unsupported clock source for HFCLK selected"
|
#error "Unsupported clock source for HFCLK selected"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -15,6 +15,7 @@ config SOC_SERIES_EFM32GG11B
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_2
|
select HAS_SYS_POWER_STATE_SLEEP_2
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_3
|
select HAS_SYS_POWER_STATE_SLEEP_3
|
||||||
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
||||||
|
select SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
select SOC_GECKO_CMU
|
select SOC_GECKO_CMU
|
||||||
select SOC_GECKO_EMU
|
select SOC_GECKO_EMU
|
||||||
select SOC_GECKO_GPIO
|
select SOC_GECKO_GPIO
|
||||||
|
|
|
@ -14,6 +14,7 @@ config SOC_SERIES_EFM32JG12B
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_2
|
select HAS_SYS_POWER_STATE_SLEEP_2
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_3
|
select HAS_SYS_POWER_STATE_SLEEP_3
|
||||||
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
||||||
|
select SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
select SOC_GECKO_CMU
|
select SOC_GECKO_CMU
|
||||||
select SOC_GECKO_EMU
|
select SOC_GECKO_EMU
|
||||||
select SOC_GECKO_GPIO
|
select SOC_GECKO_GPIO
|
||||||
|
|
|
@ -16,6 +16,7 @@ config SOC_SERIES_EFM32PG12B
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_2
|
select HAS_SYS_POWER_STATE_SLEEP_2
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_3
|
select HAS_SYS_POWER_STATE_SLEEP_3
|
||||||
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
||||||
|
select SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
select SOC_GECKO_CMU
|
select SOC_GECKO_CMU
|
||||||
select SOC_GECKO_EMU
|
select SOC_GECKO_EMU
|
||||||
select SOC_GECKO_GPIO
|
select SOC_GECKO_GPIO
|
||||||
|
|
|
@ -16,6 +16,7 @@ config SOC_SERIES_EFR32FG1P
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_2
|
select HAS_SYS_POWER_STATE_SLEEP_2
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_3
|
select HAS_SYS_POWER_STATE_SLEEP_3
|
||||||
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
||||||
|
select SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
select SOC_GECKO_CMU
|
select SOC_GECKO_CMU
|
||||||
select SOC_GECKO_GPIO
|
select SOC_GECKO_GPIO
|
||||||
select SOC_GECKO_HAS_ERRATA_RTCC_E201
|
select SOC_GECKO_HAS_ERRATA_RTCC_E201
|
||||||
|
|
|
@ -17,6 +17,7 @@ config SOC_SERIES_EFR32MG12P
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_2
|
select HAS_SYS_POWER_STATE_SLEEP_2
|
||||||
select HAS_SYS_POWER_STATE_SLEEP_3
|
select HAS_SYS_POWER_STATE_SLEEP_3
|
||||||
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
select SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
|
||||||
|
select SOC_GECKO_HAS_HFRCO_FREQRANGE
|
||||||
select SOC_GECKO_CMU
|
select SOC_GECKO_CMU
|
||||||
select SOC_GECKO_EMU
|
select SOC_GECKO_EMU
|
||||||
select SOC_GECKO_GPIO
|
select SOC_GECKO_GPIO
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue