blob: 4e86a6e2b74fc296bf42a704895dbe75cb473dc8 [file] [log] [blame]
# Copyright (c) 2017 Christian Taedcke
# Copyright (c) 2018 Gil Benkoe
# SPDX-License-Identifier: Apache-2.0
config SOC_VENDOR_SILABS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select BUILD_OUTPUT_HEX
if SOC_VENDOR_SILABS
rsource "*/*/Kconfig"
config SOC_GECKO_SDID
int
help
Gecko SDK sometime refere to the chipset using the internal ID. This
entry reflects this ID.
config SOC_GECKO_BURTC
bool
help
Set if the Back-Up Real Time Counter (BURTC) HAL module is used.
config SOC_GECKO_CORE
bool
default y
help
Set if the Core interrupt handling (CORE) HAL module is used.
config SOC_GECKO_ADC
bool
help
Set if the Analog to Digital Converter (ADC) HAL module is used.
config SOC_GECKO_IADC
bool
help
Set if the Incremental Analog to Digital Converter (IADC) HAL module is used.
config SOC_GECKO_CRYOTIMER
bool
help
Set if the Ultra Low Energy Timer/Counter (CRYOTIMER) HAL module is used.
config SOC_GECKO_EMU
bool
help
Set if the Energy Management Unit (EMU) HAL module is used.
config SOC_GECKO_GPIO
bool
help
Set if the General Purpose Input/Output (GPIO) HAL module is used.
config SOC_GECKO_I2C
bool
help
Set if the Inter-Integrated Circuit Interface (I2C) HAL module is used.
config SOC_GECKO_LETIMER
bool
help
Set if the Low Energy Timer (LETIMER) HAL module is used.
config SOC_GECKO_LEUART
bool
help
Set if the Low Energy Universal Asynchronous Receiver/Transmitter (LEUART)
HAL module is used.
config SOC_GECKO_MSC
bool
help
Set if the Memory System Controller (MSC) HAL module is used.
config SOC_GECKO_PRS
bool
help
Set if the Peripheral Reflex System (PRS) HAL module is used.
config SOC_GECKO_RMU
bool
help
Set if the Reset Management Unit (RMU) HAL module is used.
config SOC_GECKO_RTC
bool
help
Set if the Real Time Counter (RTC) HAL module is used.
config SOC_GECKO_RTCC
bool
help
Set if the Real Time Counter and Calendar (RTCC) HAL module is used.
config SOC_GECKO_SE
bool
help
Set if the Secure Element (SE) HAL module is used.
config SOC_GECKO_TIMER
bool
help
Set if the Timer/Counter (TIMER) HAL module is used.
config SOC_GECKO_USART
bool
help
Set if the Universal Synchronous Asynchronous Receiver/Transmitter (USART)
HAL module is used.
config SOC_GECKO_WDOG
bool
help
Set if the Watchdog Timer (WDOG) HAL module is used.
config SOC_GECKO_TRNG
bool
help
Set if the SoC has a True Random Number Generator (TRNG) module.
if PM
config SOC_GECKO_PM_BACKEND_PMGR
bool
depends on SOC_GECKO_DEV_INIT
default y if SOC_FAMILY_SILABS_S2
help
Implement PM using sl_power_manager service from Gecko SDK
config SOC_GECKO_PM_BACKEND_EMU
bool
default y if !SOC_GECKO_PM_BACKEND_PMGR
help
Implement PM using direct calls to EMU driver in emlib
endif
config SOC_GECKO_EMU_DCDC
bool "SoC DC/DC regulator"
select SOC_GECKO_EMU
help
Enable the on chip DC/DC regulator
choice SOC_GECKO_EMU_DCDC_MODE
prompt "DC/DC mode"
depends on SOC_GECKO_EMU_DCDC
help
Select power configuration mode of the on chip DC/DC converter.
config SOC_GECKO_EMU_DCDC_MODE_UNCONFIGURED
bool "Initial / Unconfigured"
config SOC_GECKO_EMU_DCDC_MODE_ON
bool "DC/DC On"
config SOC_GECKO_EMU_DCDC_MODE_OFF
bool "DC/DC Off"
config SOC_GECKO_EMU_DCDC_MODE_BYPASS
bool "Bypass"
endchoice
config CRYPTO_ACC_GECKO_TRNG
bool
help
Enable Entropy driver based on the CRYPTO_ACC module for Silicon Labs
Gecko chips.
config SOC_GECKO_DEV_INIT
bool
help
Use the device initialization routines from the device_init service
in Silicon Labs HAL. These routines initialize and tune HFXOs,
configures DPLLs and manages the Energy Management Unit.
Disabling these services may negatively impact counter and timer
routines in Silabs SoCs.
config COUNTER_GECKO_STIMER
bool
help
Enable counter driver based on the Sleep Timer driver for Silicon Labs
Gecko chips.
config SOC_GECKO_CMU
bool
help
Set if the clock management unit (CMU) is present in the SoC.
if SOC_GECKO_CMU
config CMU_NEED_LFXO
bool
help
Set if LFXO oscillator should be configured and enabled, potentially
in on-demand mode, after SoC is initialized.
choice
prompt "High Frequency Clock Selection"
default CMU_HFCLK_HFXO
config CMU_HFCLK_HFXO
bool "External high frequency crystal oscillator"
help
Set this option to use the external high frequency crystal oscillator
as high frequency clock.
config CMU_HFCLK_LFXO
bool "External low frequency crystal oscillator"
select CMU_NEED_LFXO
help
Set this option to use the external low frequency crystal oscillator
as high frequency clock.
config CMU_HFCLK_HFRCO
bool "Internal high frequency RC oscillator"
help
Set this option to use the internal high frequency RC oscillator as high frequency clock.
endchoice
choice
prompt "BURTC Clock Selection"
depends on SOC_GECKO_BURTC
default CMU_BURTCCLK_LFRCO
config CMU_BURTCCLK_LFXO
bool "LFXO - external low frequency crystal oscillator"
select CMU_NEED_LFXO
help
Set this option to use LFXO - the external low freqency crystal oscillator
as BURTC clock.
Frequency is set by external crystal, typically 32.768 kHz.
config CMU_BURTCCLK_LFRCO
bool "LFRCO - internal low frequency RC oscillator"
help
Set this option to use LFRCO - the internal low freqency RC oscillator
as BURTC clock.
Frequency is approximately 32.768 kHz.
config CMU_BURTCCLK_ULFRCO
bool "ULFRCO - internal ultra low frequency RC oscillator"
help
Set this option to use ULFRCO - the external low freqency crystal oscillator
as BURTC clock.
Frequency is approximately 1 kHz.
endchoice
config CMU_HFXO_FREQ
int "External high frequency oscillator frequency"
help
Set the external high frequency oscillator frequency in Hz. This should be set by the
board's defconfig.
config CMU_LFXO_FREQ
int "External low frequency oscillator frequency"
help
Set the external low frequency oscillator frequency in Hz. This should be set by the
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
config SOC_GECKO_HAS_INDIVIDUAL_PIN_LOCATION
bool
help
If enabled, indicates that SoC allows to configure individual pin
locations. This is supported by e.g. efr32fg1p, efr32mg12p series.
If disabled, indicates that pin locations are configured in groups.
This is supported by e.g. efm32hg, efm32wg series.
config SOC_GECKO_HAS_ERRATA_RTCC_E201
bool
help
Set if the SoC is affected by errata RTCC_E201:
"When the RTCC is configured with a prescaler, the CCV1 top value enable
feature enabled by setting CCV1TOP in RTCC_CTRL fails to wrap the counter
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.
config SOC_GECKO_HAS_RADIO
bool
help
If enabled, indicates that the SoC has a Radio PHY.
config SOC_GECKO_USE_RAIL
bool "Use RAIL (Radio Abstraction Interface Layer)"
depends on SOC_GECKO_HAS_RADIO
help
RAIL (Radio Abstraction Interface Layer) is a library needed to use the EFR radio
hardware. This option enable the proper set of features to allow to properly compile
with the RAIL blob.
config SOC_GECKO_CUSTOM_RADIO_PHY
bool "Use RAIL for custom radio phy packet sending and receiving"
depends on SOC_GECKO_HAS_RADIO
select SOC_GECKO_USE_RAIL
help
If enabled, RAIL can be used for user generated custom radio phy
management, sending and receiving packets on radio phy. User has
to provide the radio_config.c and radio_config.h files for the phy.
endif # SOC_VENDOR_SILABS