STM32L4: modularize Kconfig to support different product lines/families

This is modeled after STM32F7. Idea is to declare each chip in Kconfig
but allow for flash size override. Commit adds many STM32L4_HAVE_XXX
feature test macros.
This commit is contained in:
Juha Niskanen
2017-05-02 15:14:45 +03:00
parent aa1509bacb
commit dd1b9dfa81
3 changed files with 513 additions and 78 deletions
File diff suppressed because it is too large Load Diff
+4 -5
View File
@@ -277,7 +277,7 @@ static inline void rcc_enableahb3(void)
#ifdef CONFIG_STM32L4_FSMC
/* Flexible static memory controller module clock enable */
regval |= RCC_AHB3ENR_FMCEN;
regval |= RCC_AHB3ENR_FSMCEN;
#endif
@@ -563,7 +563,7 @@ static inline void rcc_enableapb2(void)
regval |= RCC_APB2ENR_SAI2EN;
#endif
#ifdef CONFIG_STM32L4_DFSDM
#ifdef CONFIG_STM32L4_DFSDM1
/* DFSDM clock enable */
regval |= RCC_APB2ENR_DFSDMEN;
@@ -814,7 +814,6 @@ static void stm32l4_stdclockconfig(void)
regval = getreg32(STM32L4_RCC_PLLSAI2CFG);
/* Enable the SAI2 PLL */
/* Set the PLL dividers and multipliers to configure the SAI2 PLL */
regval = (STM32L4_PLLSAI2CFG_PLLN | STM32L4_PLLSAI2CFG_PLLP |
@@ -829,7 +828,7 @@ static void stm32l4_stdclockconfig(void)
putreg32(regval, STM32L4_RCC_PLLSAI2CFG);
/* Enable the SAI1 PLL */
/* Enable the SAI2 PLL */
regval = getreg32(STM32L4_RCC_CR);
regval |= RCC_CR_PLLSAI2ON;
@@ -842,7 +841,7 @@ static void stm32l4_stdclockconfig(void)
}
#endif
/* Enable FLASH prefetch, instruction cache, data cache, and 5 wait states */
/* Enable FLASH prefetch, instruction cache, data cache, and 4 wait states */
#ifdef CONFIG_STM32L4_FLASH_PREFETCH
regval = (FLASH_ACR_LATENCY_4 | FLASH_ACR_ICEN | FLASH_ACR_DCEN | FLASH_ACR_PRFTEN);
+15 -12
View File
@@ -166,7 +166,7 @@ CONFIG_ARCH_HAVE_CMNVECTOR=y
CONFIG_ARMV7M_CMNVECTOR=y
# CONFIG_ARMV7M_LAZYFPU is not set
CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_DPFPU=y
# CONFIG_ARCH_HAVE_DPFPU is not set
# CONFIG_ARCH_FPU is not set
# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
@@ -178,15 +178,13 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y
#
# CONFIG_ARMV7M_HAVE_ICACHE is not set
# CONFIG_ARMV7M_HAVE_DCACHE is not set
CONFIG_ARMV7M_HAVE_ITCM=y
CONFIG_ARMV7M_HAVE_DTCM=y
# CONFIG_ARMV7M_ITCM is not set
# CONFIG_ARMV7M_DTCM is not set
# CONFIG_ARMV7M_HAVE_ITCM is not set
# CONFIG_ARMV7M_HAVE_DTCM is not set
# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y
# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y
CONFIG_ARMV7M_HAVE_STACKCHECK=y
CONFIG_ARMV7M_STACKCHECK=y
# CONFIG_ARMV7M_ITMSYSLOG is not set
@@ -281,6 +279,7 @@ CONFIG_STM32L4_HAVE_DAC2=y
CONFIG_STM32L4_HAVE_DCMI=y
CONFIG_STM32L4_HAVE_DFSDM1=y
CONFIG_STM32L4_HAVE_DMA2D=y
CONFIG_STM32L4_HAVE_FSMC=y
# CONFIG_STM32L4_HAVE_HASH is not set
CONFIG_STM32L4_HAVE_I2C4=y
CONFIG_STM32L4_HAVE_LCD=y
@@ -292,7 +291,11 @@ CONFIG_STM32L4_HAVE_SAI1=y
CONFIG_STM32L4_HAVE_SAI2=y
CONFIG_STM32L4_HAVE_SDMMC1=y
CONFIG_STM32L4_HAVE_TIM3=y
CONFIG_STM32L4_HAVE_TIM4=y
CONFIG_STM32L4_HAVE_TIM5=y
CONFIG_STM32L4_HAVE_TIM7=y
CONFIG_STM32L4_HAVE_TIM8=y
CONFIG_STM32L4_HAVE_TIM17=y
CONFIG_STM32L4_ADC=y
# CONFIG_STM32L4_CAN is not set
# CONFIG_STM32L4_DAC is not set
@@ -321,15 +324,11 @@ CONFIG_STM32L4_ADC1=y
# CONFIG_STM32L4_DCMI is not set
# CONFIG_STM32L4_DMA2D is not set
CONFIG_STM32L4_RNG=y
# CONFIG_STM32L4_SAI1_A is not set
# CONFIG_STM32L4_SAI1_B is not set
# CONFIG_STM32L4_SAI2_A is not set
# CONFIG_STM32L4_SAI2_B is not set
#
# AHB3 Peripherals
#
# CONFIG_STM32L4_FMC is not set
CONFIG_STM32L4_FSMC=y
# CONFIG_STM32L4_QSPI is not set
#
@@ -402,6 +401,9 @@ CONFIG_STM32L4_SAI1PLL=y
# CONFIG_STM32L4_ONESHOT is not set
# CONFIG_STM32L4_FREERUN is not set
# CONFIG_STM32L4_TIM3_CAP is not set
# CONFIG_STM32L4_TIM4_CAP is not set
# CONFIG_STM32L4_TIM5_CAP is not set
# CONFIG_STM32L4_TIM8_CAP is not set
#
# ADC Configuration
@@ -698,6 +700,7 @@ CONFIG_ANALOG=y
# CONFIG_ADC is not set
# CONFIG_COMP is not set
# CONFIG_DAC is not set
# CONFIG_OPAMP is not set
# CONFIG_AUDIO_DEVICES is not set
# CONFIG_VIDEO_DEVICES is not set
# CONFIG_BCH is not set