From 74cb5f9728c5f30f15a30c88862850126fd1ca3e Mon Sep 17 00:00:00 2001 From: Piotr Mienkowski Date: Wed, 21 Nov 2018 17:00:40 +0100 Subject: [PATCH] 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 --- soc/arm/silabs_exx32/Kconfig | 5 ----- .../efm32hg/Kconfig.defconfig.efm32hg | 8 ++----- .../efm32hg/Kconfig.defconfig.series | 5 ++++- soc/arm/silabs_exx32/efm32hg/Kconfig.series | 2 ++ soc/arm/silabs_exx32/efm32hg/Kconfig.soc | 21 +----------------- .../efm32pg12b/Kconfig.defconfig.efm32pg12b | 8 ++----- .../efm32pg12b/Kconfig.defconfig.series | 6 +++-- .../silabs_exx32/efm32pg12b/Kconfig.series | 2 ++ soc/arm/silabs_exx32/efm32pg12b/Kconfig.soc | 21 +----------------- .../efm32wg/Kconfig.defconfig.efm32wg | 8 ++----- .../efm32wg/Kconfig.defconfig.series | 5 ++++- soc/arm/silabs_exx32/efm32wg/Kconfig.series | 2 ++ soc/arm/silabs_exx32/efm32wg/Kconfig.soc | 22 +------------------ .../efr32fg1p/Kconfig.defconfig.efr32fg1p | 8 ++----- .../efr32fg1p/Kconfig.defconfig.series | 5 ++++- soc/arm/silabs_exx32/efr32fg1p/Kconfig.series | 1 + soc/arm/silabs_exx32/efr32fg1p/Kconfig.soc | 20 +---------------- .../efr32mg12p/Kconfig.defconfig.efr32mg12p | 8 ++----- .../efr32mg12p/Kconfig.defconfig.series | 5 ++++- .../silabs_exx32/efr32mg12p/Kconfig.series | 3 +++ soc/arm/silabs_exx32/efr32mg12p/Kconfig.soc | 22 +------------------ 21 files changed, 45 insertions(+), 142 deletions(-) diff --git a/soc/arm/silabs_exx32/Kconfig b/soc/arm/silabs_exx32/Kconfig index 6ba3d8b9e29..0068b60f06d 100644 --- a/soc/arm/silabs_exx32/Kconfig +++ b/soc/arm/silabs_exx32/Kconfig @@ -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 diff --git a/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.efm32hg b/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.efm32hg index ed6cb39ac2f..f71fbc76a73 100644 --- a/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.efm32hg +++ b/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.efm32hg @@ -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 diff --git a/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.series b/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.series index 163a7fb6741..3136c7f004f 100644 --- a/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.series +++ b/soc/arm/silabs_exx32/efm32hg/Kconfig.defconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efm32hg/Kconfig.series b/soc/arm/silabs_exx32/efm32hg/Kconfig.series index 56dfc5a7e8d..2cf337a9273 100644 --- a/soc/arm/silabs_exx32/efm32hg/Kconfig.series +++ b/soc/arm/silabs_exx32/efm32hg/Kconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efm32hg/Kconfig.soc b/soc/arm/silabs_exx32/efm32hg/Kconfig.soc index 5797b69cab4..fb3b7fd0cf1 100644 --- a/soc/arm/silabs_exx32/efm32hg/Kconfig.soc +++ b/soc/arm/silabs_exx32/efm32hg/Kconfig.soc @@ -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 diff --git a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b index 97134066852..21461f01296 100644 --- a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b +++ b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b @@ -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 diff --git a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.series b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.series index eaae4a76d34..69b9ddc9f57 100644 --- a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.series +++ b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.series @@ -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 - diff --git a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.series b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.series index fb3e6b59f08..cb07468d245 100644 --- a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.series +++ b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.soc b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.soc index 25bc96ad1aa..a6401b28a83 100644 --- a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.soc +++ b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.soc @@ -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 diff --git a/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.efm32wg b/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.efm32wg index 3471b941c33..01315b3a2ef 100644 --- a/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.efm32wg +++ b/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.efm32wg @@ -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 diff --git a/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.series b/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.series index d098b0e5e93..9f77c77375e 100644 --- a/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.series +++ b/soc/arm/silabs_exx32/efm32wg/Kconfig.defconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efm32wg/Kconfig.series b/soc/arm/silabs_exx32/efm32wg/Kconfig.series index d8b1d78650a..6dc418146c4 100644 --- a/soc/arm/silabs_exx32/efm32wg/Kconfig.series +++ b/soc/arm/silabs_exx32/efm32wg/Kconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efm32wg/Kconfig.soc b/soc/arm/silabs_exx32/efm32wg/Kconfig.soc index 410e4a0e92e..863dd20b921 100644 --- a/soc/arm/silabs_exx32/efm32wg/Kconfig.soc +++ b/soc/arm/silabs_exx32/efm32wg/Kconfig.soc @@ -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 diff --git a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p index 5616b2c3694..7624a22a972 100644 --- a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p +++ b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p @@ -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 diff --git a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.series b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.series index 0e39630f486..a5e7ac53d63 100644 --- a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.series +++ b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.series b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.series index 27da2e5b67f..19a9991e2dc 100644 --- a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.series +++ b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.soc b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.soc index 94562deb0c5..572573aa19c 100644 --- a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.soc +++ b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.soc @@ -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 diff --git a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p index 7d96eeb764d..aa4a36e44ac 100644 --- a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p +++ b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p @@ -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 diff --git a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.series b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.series index 5c4f2bfb4ca..6f57b8afd68 100644 --- a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.series +++ b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.series b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.series index 7a6f9f79189..2441aa66dbe 100644 --- a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.series +++ b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.series @@ -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 diff --git a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.soc b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.soc index 24cea0b1878..e0abbbf0498 100644 --- a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.soc +++ b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.soc @@ -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