soc: silabs_exx32: Simplify Kconfig options

This commit simplifies Kconfig options related to handling SoC series,
part numbers. This is a first step required to add remaining part
numbers to the existing configuration.

This change is possible since all SiLabs SoCs within a single series
have a very uniform structure.

Signed-off-by: Piotr Mienkowski <piotr.mienkowski@gmail.com>
This commit is contained in:
Piotr Mienkowski 2018-11-21 17:00:40 +01:00 committed by Kumar Gala
commit 74cb5f9728
21 changed files with 45 additions and 142 deletions

View file

@ -19,11 +19,6 @@ source "soc/arm/silabs_exx32/*/Kconfig.soc"
config SOC_PART_NUMBER
string
default SOC_PART_NUMBER_EXX32_EFM32WG if SOC_SERIES_EFM32WG
default SOC_PART_NUMBER_EXX32_EFR32FG1P if SOC_SERIES_EFR32FG1P
default SOC_PART_NUMBER_EXX32_EFM32HG if SOC_SERIES_EFM32HG
default SOC_PART_NUMBER_EXX32_EFR32MG12P if SOC_SERIES_EFR32MG12P
default SOC_PART_NUMBER_EXX32_EFM32PG12B if SOC_SERIES_EFM32PG12B
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

View file

@ -6,11 +6,7 @@
# SPDX-License-Identifier: Apache-2.0
#
if SOC_EFM32HG
config SOC
string
default "efm32hg"
if SOC_SERIES_EFM32HG
config GPIO
default y
@ -36,4 +32,4 @@ config SOC_FLASH_GECKO
endif # FLASH
endif # SOC_EFM32HG
endif # SOC_SERIES_EFM32HG

View file

@ -11,11 +11,14 @@ if SOC_SERIES_EFM32HG
config SOC_SERIES
default "efm32hg"
config SOC_PART_NUMBER
default "EFM32HG322F64" if SOC_PART_NUMBER_EFM32HG322F64
config NUM_IRQS
int
# must be >= the highest interrupt number used
default 20
source "soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.e*"
source "soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.efm32hg"
endif # SOC_SERIES_EFM32HG

View file

@ -12,5 +12,7 @@ config SOC_SERIES_EFM32HG
select SOC_FAMILY_EXX32
select SYS_POWER_LOW_POWER_STATE_SUPPORTED
select CPU_HAS_SYSTICK
select HAS_SILABS_GECKO
select HAS_CMU
help
Enable support for EFM32 Happy Gecko MCU series

View file

@ -1,32 +1,13 @@
# Kconfig - EFM32HG MCU line
# Kconfig - EFM32HG (Happy Gecko) MCU line
#
# Copyright (c) 2018 Marcio Montenegro
#
# SPDX-License-Identifier: Apache-2.0
#
choice
prompt "EFM32 Happy Gecko MCU Selection"
depends on SOC_SERIES_EFM32HG
config SOC_EFM32HG
bool "SOC_EFM32HG"
select HAS_SILABS_GECKO
select HAS_CMU
endchoice
if SOC_SERIES_EFM32HG
config SOC_PART_NUMBER_EFM32HG322F64
bool
config SOC_PART_NUMBER_EXX32_EFM32HG
string
default "EFM32HG322F64" if SOC_PART_NUMBER_EFM32HG322F64
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.
endif # SOC_SERIES_EFM32HG

View file

@ -6,11 +6,7 @@
# SPDX-License-Identifier: Apache-2.0
#
if SOC_EFM32PG12B
config SOC
string
default "efm32pg12b"
if SOC_SERIES_EFM32PG12B
config GPIO
default y
@ -46,4 +42,4 @@ config SOC_FLASH_GECKO
endif # FLASH
endif # SOC_EFM32
endif # SOC_SERIES_EFM32PG12B

View file

@ -11,12 +11,14 @@ if SOC_SERIES_EFM32PG12B
config SOC_SERIES
default "efm32pg12b"
config SOC_PART_NUMBER
default "EFM32PG12B500F1024GL125" if SOC_PART_NUMBER_EFM32PG12B500F1024GL125
config NUM_IRQS
int
# must be >= the highest interrupt number used
default 50
source "soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.e*"
source "soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b"
endif # SOC_SERIES_EFM32PG12B

View file

@ -13,5 +13,7 @@ config SOC_SERIES_EFM32PG12B
select SOC_FAMILY_EXX32
select SYS_POWER_LOW_POWER_STATE_SUPPORTED
select CPU_HAS_SYSTICK
select HAS_CMU
select SOC_GECKO_EMU
help
Enable support for EFM32 PearlGecko MCU series

View file

@ -1,32 +1,13 @@
# Kconfig - EFM32PG12B MCU line
# Kconfig - EFM32PG12B (Pearl Gecko) MCU line
#
# Copyright (c) 2018 Christian Taedcke
#
# SPDX-License-Identifier: Apache-2.0
#
choice
prompt "EFM32 Pearl Gecko MCU Selection"
depends on SOC_SERIES_EFM32PG12B
config SOC_EFM32PG12B
bool "SOC_EFM32PG12B"
select HAS_CMU
select SOC_GECKO_EMU
endchoice
if SOC_SERIES_EFM32PG12B
config SOC_PART_NUMBER_EFM32PG12B500F1024GL125
bool
config SOC_PART_NUMBER_EXX32_EFM32PG12B
string
default "EFM32PG12B500F1024GL125" if SOC_PART_NUMBER_EFM32PG12B500F1024GL125
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.
endif # SOC_SERIES_EFM32PG12B

View file

@ -6,11 +6,7 @@
# SPDX-License-Identifier: Apache-2.0
#
if SOC_EFM32WG
config SOC
string
default "efm32wg"
if SOC_SERIES_EFM32WG
config GPIO
default y
@ -36,4 +32,4 @@ config SOC_FLASH_GECKO
endif # FLASH
endif # SOC_EFM32
endif # SOC_SERIES_EFM32WG

View file

@ -11,11 +11,14 @@ if SOC_SERIES_EFM32WG
config SOC_SERIES
default "efm32wg"
config SOC_PART_NUMBER
default "EFM32WG990F256" if SOC_PART_NUMBER_EFM32WG990F256
config NUM_IRQS
int
# must be >= the highest interrupt number used
default 39
source "soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.e*"
source "soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.efm32wg"
endif # SOC_SERIES_EFM32WG

View file

@ -12,5 +12,7 @@ config SOC_SERIES_EFM32WG
select SOC_FAMILY_EXX32
select SYS_POWER_LOW_POWER_STATE_SUPPORTED
select CPU_HAS_SYSTICK
select HAS_SILABS_GECKO
select HAS_CMU
help
Enable support for EFM32 WonderGecko MCU series

View file

@ -1,33 +1,13 @@
# Kconfig - EFM32WG MCU line
# Kconfig - EFM32WG (Wonder Gecko) MCU line
#
# Copyright (c) 2017 Christian Taedcke
#
# SPDX-License-Identifier: Apache-2.0
#
choice
prompt "EFM32 Wonder Gecko MCU Selection"
depends on SOC_SERIES_EFM32WG
config SOC_EFM32WG
bool "SOC_EFM32WG"
select HAS_SILABS_GECKO
select HAS_CMU
select CPU_HAS_FPU
endchoice
if SOC_SERIES_EFM32WG
config SOC_PART_NUMBER_EFM32WG990F256
bool
config SOC_PART_NUMBER_EXX32_EFM32WG
string
default "EFM32WG990F256" if SOC_PART_NUMBER_EFM32WG990F256
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.
endif # SOC_SERIES_EFM32WG

View file

@ -6,11 +6,7 @@
# SPDX-License-Identifier: Apache-2.0
#
if SOC_EFR32FG1P
config SOC
string
default "efr32fg1p"
if SOC_SERIES_EFR32FG1P
config GPIO
default y
@ -36,4 +32,4 @@ config SOC_FLASH_GECKO
endif # FLASH
endif # SOC_EFR32FG1P
endif # SOC_SERIES_EFR32FG1P

View file

@ -11,11 +11,14 @@ if SOC_SERIES_EFR32FG1P
config SOC_SERIES
default "efr32fg1p"
config SOC_PART_NUMBER
default "EFR32FG1P133F256GM48" if SOC_PART_NUMBER_EFR32FG1P133F256GM48
config NUM_IRQS
int
# must be >= the highest interrupt number used
default 33
source "soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.e*"
source "soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p"
endif # SOC_SERIES_EFR32FG1P

View file

@ -8,6 +8,7 @@
config SOC_SERIES_EFR32FG1P
bool "EFR32FG1P Series MCU"
select HAS_SILABS_GECKO
select HAS_CMU
select CPU_CORTEX_M4
select CPU_HAS_FPU
select SOC_FAMILY_EXX32

View file

@ -1,31 +1,13 @@
# Kconfig - EFR32FG1P MCU line
# Kconfig - EFR32FG1P (Flex Gecko) MCU line
#
# Copyright (c) 2018 Christian Taedcke
#
# SPDX-License-Identifier: Apache-2.0
#
choice
prompt "EFR32FG1P Flex Gecko MCU Selection"
depends on SOC_SERIES_EFR32FG1P
config SOC_EFR32FG1P
bool "SOC_EFR32FG1P"
select HAS_CMU
endchoice
if SOC_SERIES_EFR32FG1P
config SOC_PART_NUMBER_EFR32FG1P133F256GM48
bool
config SOC_PART_NUMBER_EXX32_EFR32FG1P
string
default "EFR32FG1P133F256GM48" if SOC_PART_NUMBER_EFR32FG1P133F256GM48
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.
endif # SOC_SERIES_EFR32FG1P

View file

@ -6,11 +6,7 @@
# SPDX-License-Identifier: Apache-2.0
#
if SOC_EFR32MG12P
config SOC
string
default "efr32mg12p"
if SOC_SERIES_EFR32MG12P
config GPIO
default y
@ -46,4 +42,4 @@ config SOC_FLASH_GECKO
endif # FLASH
endif # SOC_EFR32MG12P
endif # SOC_SERIES_EFR32MG12P

View file

@ -11,11 +11,14 @@ if SOC_SERIES_EFR32MG12P
config SOC_SERIES
default "efr32mg12p"
config SOC_PART_NUMBER
default "EFR32MG12P332F1024GL125" if SOC_PART_NUMBER_EFR32MG12P332F1024GL125
config NUM_IRQS
int
# must be >= the highest interrupt number used
default 49
gsource "soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.e*"
source "soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p"
endif # SOC_SERIES_EFR32MG12P

View file

@ -12,5 +12,8 @@ config SOC_SERIES_EFR32MG12P
select SOC_FAMILY_EXX32
select SYS_POWER_LOW_POWER_STATE_SUPPORTED
select CPU_HAS_SYSTICK
select HAS_SILABS_GECKO
select HAS_CMU
select SOC_GECKO_EMU
help
Enable support for EFR32 Mighty Gecko MCU series

View file

@ -1,33 +1,13 @@
# Kconfig - EFR32MG12P MCU line
# Kconfig - EFR32MG12P (Mighty Gecko) MCU line
#
# Copyright (c) 2018 Diego Sueiro
#
# SPDX-License-Identifier: Apache-2.0
#
choice
prompt "EFR32 Mighty Gecko MCU Selection"
depends on SOC_SERIES_EFR32MG12P
config SOC_EFR32MG12P
bool "SOC_EFR32MG12P"
select HAS_SILABS_GECKO
select HAS_CMU
select SOC_GECKO_EMU
endchoice
if SOC_SERIES_EFR32MG12P
config SOC_PART_NUMBER_EFR32MG12P332F1024GL125
bool
config SOC_PART_NUMBER_EXX32_EFR32MG12P
string
default "EFR32MG12P332F1024GL125" if SOC_PART_NUMBER_EFR32MG12P332F1024GL125
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.
endif # SOC_SERIES_EFR32MG12P