arch/arm/src/stm32: While we are at it and the differences are fresh in mind, add support for the rest of the STM32F401 family.

This commit is contained in:
Gregory Nutt 2018-03-05 17:36:08 -06:00
parent 33adf2c64d
commit ab5244e855
2 changed files with 125 additions and 6 deletions

View File

@ -1839,8 +1839,22 @@
# define STM32_NDCMI 0 /* (0) No digital camera interface (DCMI) */
/* STM23 F4 Family ******************************************************************/
/* STM32F01xB/C Family Differences:
*
* PART PACKAGE FLASH SDIO ADC Channels
* ----------- ---------------- ----- ---- ------------
* STM32F401CB WLCSP49/UFQFPN48 128Kb No 10
* STM32F401RB LQFP64 128Kb Yes 16
* STM32F401VB UFBGA100/LQFP100 128Kb Yes 16
* STM32F401CC WLCSP49/UFQFPN48 256Kb No 10
* STM32F401RC LQFP64 256Kb Yes 16
* STM32F401VC UFBGA100/LQFP100 256Kb Yes 16
*/
#elif defined(CONFIG_ARCH_CHIP_STM32F401CB) || defined(CONFIG_ARCH_CHIP_STM32F401RB) || \
defined(CONFIG_ARCH_CHIP_STM32F401VB) || defined(CONFIG_ARCH_CHIP_STM32F401CC) || \
defined(CONFIG_ARCH_CHIP_STM32F401RC) || defined(CONFIG_ARCH_CHIP_STM32F401VC)
#elif defined(CONFIG_ARCH_CHIP_STM32F401RC) /* LQFP64 package, 256Kb FLASH, 64Kb SRAM */
# undef CONFIG_STM32_STM32L15XX /* STM32L151xx and STM32L152xx family */
# undef CONFIG_STM32_ENERGYLITE /* STM32L EnergyLite family */
# undef CONFIG_STM32_STM32F10XX /* STM32F10xxx family */
@ -1867,11 +1881,15 @@
# define STM32_NUSART 3 /* USART1, 2 and 6 */
# define STM32_NI2C 3 /* I2C1-3 */
# define STM32_NCAN 0 /* No CAN */
# define STM32_NSDIO 1 /* One SDIO interface */
# if defined(CONFIG_ARCH_CHIP_STM32F401CB) || defined(CONFIG_ARCH_CHIP_STM32F401CC)
# define STM32_NSDIO 0 /* No SDIO interface */
# else
# define STM32_NSDIO 1 /* One SDIO interface */
# endif
# define STM32_NLCD 0 /* No LCD */
# define STM32_NUSBOTG 1 /* USB OTG FS (only) */
# define STM32_NGPIO 50 /* GPIOA-H */
# define STM32_NADC 1 /* One 12-bit ADC1, 16 channels */
# define STM32_NADC 1 /* One 12-bit ADC1, 10 or 16 channels */
# define STM32_NDAC 0 /* No DAC */
# define STM32_NCAPSENSE 0 /* No capacitive sensing channels */
# define STM32_NCRC 1 /* No CRC */
@ -1879,7 +1897,22 @@
# define STM32_NRNG 0 /* No Random number generator (RNG) */
# define STM32_NDCMI 0 /* No digital camera interface (DCMI) */
#elif defined(CONFIG_ARCH_CHIP_STM32F401RE) /* LQFP64 package, 512Kb FLASH, 96KiB SRAM */
/* STM32F01xD/E Family Differences:
*
* PART PACKAGE FLASH SDIO ADC Channels
* ----------- ---------------- ----- ---- ------------
* STM32F401CD WLCSP49/UFQFPN48 384Kb No 10
* STM32F401RD LQFP64 384Kb Yes 16
* STM32F401VD UFBGA100/LQFP100 384Kb Yes 16
* STM32F401CE WLCSP49/UFQFPN48 512Kb No 10
* STM32F401RE LQFP64 512Kb Yes 16
* STM32F401VE UFBGA100/LQFP100 512Kb Yes 16
*/
#elif defined(CONFIG_ARCH_CHIP_STM32F401CD) || defined(CONFIG_ARCH_CHIP_STM32F401RD) || \
defined(CONFIG_ARCH_CHIP_STM32F401VD) || defined(CONFIG_ARCH_CHIP_STM32F401CE) || \
defined(CONFIG_ARCH_CHIP_STM32F401RE) || defined(CONFIG_ARCH_CHIP_STM32F401VE)
# undef CONFIG_STM32_STM32L15XX /* STM32L151xx and STM32L152xx family */
# undef CONFIG_STM32_ENERGYLITE /* STM32L EnergyLite family */
# undef CONFIG_STM32_STM32F10XX /* STM32F10xxx family */
@ -1906,11 +1939,15 @@
# define STM32_NUSART 6 /* Actually only 3: USART1, 2 and 6 */
# define STM32_NI2C 3 /* I2C1-3 */
# define STM32_NCAN 0 /* No CAN */
# define STM32_NSDIO 1 /* One SDIO interface */
# if defined(CONFIG_ARCH_CHIP_STM32F401CD) || defined(CONFIG_ARCH_CHIP_STM32F401CE)
# define STM32_NSDIO 0 /* No SDIO interface */
# else
# define STM32_NSDIO 1 /* One SDIO interface */
# endif
# define STM32_NLCD 0 /* No LCD */
# define STM32_NUSBOTG 1 /* USB OTG FS (only) */
# define STM32_NGPIO 50 /* GPIOA-H */
# define STM32_NADC 1 /* One 12-bit ADC1, 16 channels */
# define STM32_NADC 1 /* One 12-bit ADC1, 10 or 16 channels */
# define STM32_NDAC 0 /* No DAC */
# define STM32_NCAPSENSE 0 /* No capacitive sensing channels */
# define STM32_NCRC 1 /* No CRC */

View File

@ -965,6 +965,38 @@ config ARCH_CHIP_STM32F373VC
select STM32_STM32F37XX
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401CB
bool "STM32F401CB"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xBC
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401RB
bool "STM32F401RB"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xBC
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401VB
bool "STM32F401VB"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xBC
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401CC
bool "STM32F401CC"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xBC
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401RC
bool "STM32F401RC"
select ARCH_CORTEXM4
@ -973,6 +1005,46 @@ config ARCH_CHIP_STM32F401RC
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401VC
bool "STM32F401VC"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xBC
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401CD
bool "STM32F401CD"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xDE
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401RD
bool "STM32F401RD"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xDE
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401VD
bool "STM32F401VD"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xDE
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401CE
bool "STM32F401CE"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xDE
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401RE
bool "STM32F401RE"
select ARCH_CORTEXM4
@ -981,6 +1053,14 @@ config ARCH_CHIP_STM32F401RE
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F401VE
bool "STM32F401VE"
select ARCH_CORTEXM4
select STM32_STM32F4XXX
select STM32_STM32F401xDE
select STM32_STM32F401
select ARCH_HAVE_FPU
config ARCH_CHIP_STM32F410RB
bool "STM32F410RB"
select ARCH_CORTEXM4
@ -2448,6 +2528,8 @@ config STM32_RNG
depends on STM32_HAVE_RNG
select ARCH_HAVE_RNG
# REVISIT: There are some lower-end STM32F401 parts without SDIO too. Others?
config STM32_SDIO
bool "SDIO"
default n