#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

if ARCH_CHIP_STM32F7

comment "STM32 F7 Configuration Options"

config STM32_F7_PERIPHERALS
	bool
	default ARCH_CHIP_STM32F7
	select STM32_HAVE_ADC1
	select STM32_HAVE_ADC2
	select STM32_HAVE_ADC3
	select STM32_HAVE_COMMON_FOC
	select STM32_HAVE_DAC1
	select STM32_HAVE_DAC2
	select STM32_HAVE_DMA1
	select STM32_HAVE_DMA2
	select STM32_HAVE_ETHERNET if STM32_HAVE_ETHRNET
	select STM32_HAVE_I2C1
	select STM32_HAVE_I2C2
	select STM32_HAVE_I2C3
	select STM32_HAVE_I2C4
	select STM32_HAVE_I2S3 if !STM32_SPI3
	select STM32_HAVE_IOCOMPENSATION
	select STM32_HAVE_LPTIM1
	select STM32_HAVE_CEC
	select STM32_HAVE_OTGFS
	select STM32_HAVE_RTC_SUBSECONDS
	select STM32_HAVE_RTC_MAGIC
	select STM32_HAVE_RTC
	select STM32_HAVE_CRC
	select STM32_HAVE_PWR
	select STM32_HAVE_BKPSRAM
	select STM32_HAVE_SDMMC1
	select STM32_HAVE_SPI1
	select STM32_HAVE_SPI2
	select STM32_HAVE_SPI3
	select STM32_HAVE_SYSCFG
	select STM32_HAVE_UART4
	select STM32_HAVE_UART5
	select STM32_HAVE_UART7
	select STM32_HAVE_UART8
	select STM32_HAVE_USART1
	select STM32_HAVE_USART2
	select STM32_HAVE_USART3
	select STM32_HAVE_USART6
	select STM32_HAVE_FLASH_ART_ACCELERATOR
	select STM32_HAVE_IP_WDG_M3M4_V1

choice
	prompt "STM32 F7 Chip Selection"
	default ARCH_CHIP_STM32F746NG
	depends on ARCH_CHIP_STM32F7

config ARCH_CHIP_STM32F722RC
	bool "STM32F722RC"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_R
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F722RE
	bool "STM32F722RE"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_R
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F722VC
	bool "STM32F722VC"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F722VE
	bool "STM32F722VE"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F722ZC
	bool "STM32F722ZC"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F722ZE
	bool "STM32F722ZE"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F722IC
	bool "STM32F722IC"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F722IE
	bool "STM32F722IE"
	select STM32_STM32F722XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723RC
	bool "STM32F723RC"
	select STM32_STM32F723XX
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_R
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723RE
	bool "STM32F723RE"
	select STM32_STM32F723XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_R
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723VC
	bool "STM32F723VC"
	select STM32_STM32F723XX
	select STM32_HAVE_INTERNAL_ULPI
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723VE
	bool "STM32F723VE"
	select STM32_STM32F723XX
	select STM32_HAVE_INTERNAL_ULPI
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723ZC
	bool "STM32F723ZC"
	select STM32_STM32F723XX
	select STM32_HAVE_INTERNAL_ULPI
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723ZE
	bool "STM32F723ZE"
	select STM32_STM32F723XX
	select STM32_HAVE_INTERNAL_ULPI
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723IC
	bool "STM32F723IC"
	select STM32_STM32F723XX
	select STM32_HAVE_INTERNAL_ULPI
	select STM32_FLASH_CONFIG_C
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 256 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F723IE
	bool "STM32F723IE"
	select STM32_STM32F723XX
	select STM32_HAVE_INTERNAL_ULPI
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 256K (176+16+64) Kb SRAM

config ARCH_CHIP_STM32F745VG
	bool "STM32F745VG"
	select STM32_STM32F745XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F745VE
	bool "STM32F745VE"
	select STM32_STM32F745XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F745IG
	bool "STM32F745IG"
	select STM32_STM32F745XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F745IE
	bool "STM32F745IE"
	select STM32_STM32F745XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F745ZE
	bool "STM32F745ZE"
	select STM32_STM32F745XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F745ZG
	bool "STM32F745ZG"
	select STM32_STM32F745XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746BG
	bool "STM32F746BG"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746VG
	bool "STM32F746VG"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746VE
	bool "STM32F746VE"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746BE
	bool "STM32F746BE"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746ZG
	bool "STM32F746ZG"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746IE
	bool "STM32F746IE"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746NG
	bool "STM32F746NG"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746NE
	bool "STM32F746NE"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746ZE
	bool "STM32F746ZE"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_E
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 512 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F746IG
	bool "STM32F746IG"
	select STM32_STM32F746XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F756NG
	bool "STM32F756NG"
	select STM32_STM32F756XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F756BG
	bool "STM32F756BG"
	select STM32_STM32F756XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F756IG
	bool "STM32F756IG"
	select STM32_STM32F756XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F756VG
	bool "STM32F756VG"
	select STM32_STM32F756XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F756ZG
	bool "STM32F756ZG"
	select STM32_STM32F756XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 320K (240+16+64) Kb SRAM

config ARCH_CHIP_STM32F765NI
	bool "STM32F765NI"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765VI
	bool "STM32F765VI"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765VG
	bool "STM32F765VG"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765BI
	bool "STM32F765BI"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765NG
	bool "STM32F765NG"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765ZG
	bool "STM32F765ZG"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765ZI
	bool "STM32F765ZI"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765IG
	bool "STM32F765IG"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765BG
	bool "STM32F765BG"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F765II
	bool "STM32F765II"
	select STM32_STM32F765XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767NG
	bool "STM32F767NG"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767IG
	bool "STM32F767IG"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767VG
	bool "STM32F767VG"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767ZG
	bool "STM32F767ZG"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767NI
	bool "STM32F767NI"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767VI
	bool "STM32F767VI"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767BG
	bool "STM32F767BG"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767ZI
	bool "STM32F767ZI"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F767II
	bool "STM32F767II"
	select STM32_STM32F767XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F769BI
	bool "STM32F769BI"
	select STM32_STM32F769XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F769II
	bool "STM32F769II"
	select STM32_STM32F769XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F769BG
	bool "STM32F769BG"
	select STM32_STM32F769XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F769NI
	bool "STM32F769NI"
	select STM32_STM32F769XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F769AI
	bool "STM32F769AI"
	select STM32_STM32F769AX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_A
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F769NG
	bool "STM32F769NG"
	select STM32_STM32F769XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F769IG
	bool "STM32F769IG"
	select STM32_STM32F769XX
	select STM32_FLASH_CONFIG_G
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 1024 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F777ZI
	bool "STM32F777ZI"
	select STM32_STM32F777XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_Z
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F777VI
	bool "STM32F777VI"
	select STM32_STM32F777XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_V
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F777NI
	bool "STM32F777NI"
	select STM32_STM32F777XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F777BI
	bool "STM32F777BI"
	select STM32_STM32F777XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F777II
	bool "STM32F777II"
	select STM32_STM32F777XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F778AI
	bool "STM32F778AI"
	select STM32_STM32F778AX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_A
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F779II
	bool "STM32F779II"
	select STM32_STM32F779XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_I
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F779NI
	bool "STM32F779NI"
	select STM32_STM32F779XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_N
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F779BI
	bool "STM32F779BI"
	select STM32_STM32F779XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_B
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

config ARCH_CHIP_STM32F779AI
	bool "STM32F779AI"
	select STM32_STM32F779XX
	select STM32_FLASH_CONFIG_I
	select STM32F7_IO_CONFIG_A
	---help---
		STM32 F7 Cortex M7, 2048 FLASH, 512K (368+16+128) Kb SRAM

endchoice # STM32 F7 Chip Selection

config STM32_STM32F72XX
	bool
	default n
	select STM32_HAVE_CAN1
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM2
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM5
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM8
	select STM32_HAVE_TIM9
	select STM32_HAVE_TIM10
	select STM32_HAVE_TIM11
	select STM32_HAVE_TIM12
	select STM32_HAVE_TIM13
	select STM32_HAVE_TIM14

config STM32_STM32F73XX
	bool
	default n
	select STM32_HAVE_CAN1
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM2
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM5
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM8
	select STM32_HAVE_TIM9
	select STM32_HAVE_TIM10
	select STM32_HAVE_TIM11
	select STM32_HAVE_TIM12
	select STM32_HAVE_TIM13
	select STM32_HAVE_TIM14

config STM32_STM32F74XX
	bool
	default n
	select STM32_HAVE_CAN1
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM2
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM5
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM8
	select STM32_HAVE_TIM9
	select STM32_HAVE_TIM10
	select STM32_HAVE_TIM11
	select STM32_HAVE_TIM12
	select STM32_HAVE_TIM13
	select STM32_HAVE_TIM14

config STM32_STM32F75XX
	bool
	default n
	select STM32_HAVE_CAN1
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM2
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM5
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM8
	select STM32_HAVE_TIM9
	select STM32_HAVE_TIM10
	select STM32_HAVE_TIM11
	select STM32_HAVE_TIM12
	select STM32_HAVE_TIM13
	select STM32_HAVE_TIM14

config STM32_STM32F76XX
	bool
	default n
	select STM32_HAVE_CAN1
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM2
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM5
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM8
	select STM32_HAVE_TIM9
	select STM32_HAVE_TIM10
	select STM32_HAVE_TIM11
	select STM32_HAVE_TIM12
	select STM32_HAVE_TIM13
	select STM32_HAVE_TIM14

config STM32_STM32F77XX
	bool
	default n
	select STM32_HAVE_CAN1
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM2
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM5
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM8
	select STM32_HAVE_TIM9
	select STM32_HAVE_TIM10
	select STM32_HAVE_TIM11
	select STM32_HAVE_TIM12
	select STM32_HAVE_TIM13
	select STM32_HAVE_TIM14

config STM32F7_IO_CONFIG_R
	# Package designator R
	bool
	default n

config STM32F7_IO_CONFIG_V
	# Package designator V
	bool
	default n

config STM32F7_IO_CONFIG_I
	# Package designator I
	bool
	default n

config STM32F7_IO_CONFIG_Z
	# Package designator Z
	bool
	default n

config STM32F7_IO_CONFIG_N
	# Package designator N
	bool
	default n

config STM32F7_IO_CONFIG_B
	# Package designator B
	bool
	default n

config STM32F7_IO_CONFIG_A
	# Package designator A
	bool
	default n

config STM32_STM32F722XX
	bool
	default n
	select STM32_STM32F72XX
	select ARCH_HAVE_FPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI4 if !STM32F7_IO_CONFIG_R
	select STM32_HAVE_SPI5 if !(STM32F7_IO_CONFIG_R || STM32F7_IO_CONFIG_V)
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_R
	select STM32_HAVE_EXTERNAL_ULPI

config STM32_STM32F723XX
	bool
	default n
	select STM32_STM32F72XX
	select ARCH_HAVE_FPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI4 if !STM32F7_IO_CONFIG_R
	select STM32_HAVE_SPI5 if !(STM32F7_IO_CONFIG_R || STM32F7_IO_CONFIG_V)
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_R

config STM32_STM32F745XX
	bool
	default n
	select STM32_STM32F74XX
	select ARCH_HAVE_FPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_DCMI
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F746XX
	bool
	default n
	select STM32_STM32F74XX
	select ARCH_HAVE_FPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_DCMI
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4
	select STM32_HAVE_EXTERNAL_ULPI
	select STM32_HAVE_SAI1
	select STM32_HAVE_SAI2

config STM32_STM32F756XX
	bool
	default n
	select STM32_STM32F75XX
	select ARCH_HAVE_FPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_HASH
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F765XX
	bool
	default n
	select STM32_STM32F76XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG # data sheet says yes, Product matrix says no
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F767XX
	bool
	default n
	select STM32_STM32F76XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST if !(STM32F7_IO_CONFIG_V || STM32F7_IO_CONFIG_Z)
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F768XX # Revisit When parts released
	bool
	default n
	select STM32_STM32F76XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST if !(STM32F7_IO_CONFIG_V || STM32F7_IO_CONFIG_Z)
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F768AX # Revisit When parts released
	bool
	default n
	select STM32_STM32F76XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5
	select STM32_HAVE_SPI6
	select STM32_HAVE_SDMMC2
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F769XX
	bool
	default n
	select STM32_STM32F76XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST if !(STM32F7_IO_CONFIG_V || STM32F7_IO_CONFIG_Z)
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F769AX # Revisit When parts released
	bool
	default n
	select STM32_STM32F76XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5
	select STM32_HAVE_SPI6
	select STM32_HAVE_SDMMC2
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F777XX
	bool
	default n
	select STM32_STM32F77XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST if !(STM32F7_IO_CONFIG_V || STM32F7_IO_CONFIG_Z)
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_HASH
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F778XX # Revisit when parts released
	bool
	default n
	select STM32_STM32F77XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_HASH
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F778AX
	bool
	default n
	select STM32_STM32F77XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5
	select STM32_HAVE_SPI6
	select STM32_HAVE_SDMMC2
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_HASH
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F779XX
	bool
	default n
	select STM32_STM32F77XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_ETHRNET
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST if !(STM32F7_IO_CONFIG_V || STM32F7_IO_CONFIG_Z)
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_HASH
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

config STM32_STM32F779AX
	bool
	default n
	select STM32_STM32F77XX
	select ARCH_HAVE_FPU
	select ARCH_HAVE_DPFPU
	select ARMV7M_HAVE_ICACHE
	select ARMV7M_HAVE_DCACHE
	select ARMV7M_HAVE_ITCM
	select ARMV7M_HAVE_DTCM
	select STM32_HAVE_FMC
	select STM32_HAVE_RNG
	select STM32_HAVE_SPI5 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SPI6 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_SDMMC2 if !STM32F7_IO_CONFIG_V
	select STM32_HAVE_CAN3
	select STM32_HAVE_DCMI
	select STM32_HAVE_DSIHOST if !(STM32F7_IO_CONFIG_V || STM32F7_IO_CONFIG_Z)
	select STM32_HAVE_LTDC
	select STM32_HAVE_DMA2D
	select STM32_HAVE_IP_DMA2D_M3M4_V1
	select STM32_HAVE_JPEG
	select STM32_HAVE_CRYP
	select STM32_HAVE_IP_CRYPTO_M3M4_V1
	select STM32_HAVE_HASH
	select STM32_HAVE_DFSDM1
	select STM32_HAVE_CAN2
	select STM32_HAVE_SPI4

endif # ARCH_CHIP_STM32F7
