Currently on zephyr, RAIL library is used only by Bluetooth applications, with this update, it will be able to be used for sample applications for custom radio phys. All files were copied from Silicon Labs GSDK v4.2.4. Signed-off-by: Zoltan Havas <zoltan.havas@silabs.com>
352 lines
8.9 KiB
Text
352 lines
8.9 KiB
Text
# Copyright (c) 2017 Christian Taedcke
|
|
# Copyright (c) 2018 Gil Benkoe
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config SOC_FAMILY_EXX32
|
|
bool
|
|
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
|
|
select BUILD_OUTPUT_HEX
|
|
|
|
if SOC_FAMILY_EXX32
|
|
|
|
config SOC_FAMILY
|
|
string
|
|
default "silabs_exx32"
|
|
|
|
source "soc/arm/silabs_exx32/*/Kconfig.soc"
|
|
|
|
config SOC_PART_NUMBER
|
|
string
|
|
help
|
|
This string holds the full part number of the SoC. It is a hidden option
|
|
that you should not set directly. The part number selection choice defines
|
|
the default value for this string.
|
|
|
|
config SOC_GECKO_SERIES0
|
|
bool
|
|
help
|
|
Set if we're building for Gecko Series 0 SoC.
|
|
This is equivalent of _SILICON_LABS_32B_SERIES_0 definition in HAL
|
|
code.
|
|
|
|
config SOC_GECKO_SERIES1
|
|
bool
|
|
help
|
|
Set if we're building for Gecko Series 1 SoC.
|
|
This is equivalent of _SILICON_LABS_32B_SERIES_1 definition in HAL
|
|
code.
|
|
|
|
config SOC_GECKO_SERIES2
|
|
bool
|
|
help
|
|
Set if we're building for Gecko Series 2 SoC.
|
|
This is equivalent of _SILICON_LABS_32B_SERIES_2 definition in HAL
|
|
code.
|
|
|
|
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_GECKO_SERIES2
|
|
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 EXX32 series 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_FAMILY_EXX32
|