326 lines
8.3 KiB
Plaintext
326 lines
8.3 KiB
Plaintext
# 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
|