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

if ARCH_CHIP_STM32U0

choice
	prompt "ST STM32U0 Chip Selection"
	default ARCH_CHIP_STM32U083RC
	depends on ARCH_CHIP_STM32U0

config ARCH_CHIP_STM32U073C8
	bool "STM32U073C8"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 64 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073CB
	bool "STM32U073CB"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 128 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073CC
	bool "STM32U073CC"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 256 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073M8
	bool "STM32U073M8"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 64 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073MB
	bool "STM32U073MB"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 128 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073MC
	bool "STM32U073MC"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 256 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073R8
	bool "STM32U073R8"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 64 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073RB
	bool "STM32U073RB"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 128 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U073RC
	bool "STM32U073RC"
	select STM32_STM32U073
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 256 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U083CC
	bool "STM32U083CC"
	select STM32_STM32U083
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 256 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U083MC
	bool "STM32U083MC"
	select STM32_STM32U083
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 256 Kb FLASH, 40 Kb SRAM

config ARCH_CHIP_STM32U083RC
	bool "STM32U083RC"
	select STM32_STM32U083
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32U0
	---help---
		STM32 U0 Cortex M0+, 256 Kb FLASH, 40 Kb SRAM

endchoice

endif

config STM32_STM32U0
	bool
	default n
	select STM32_HAVE_DMA1
	select STM32_HAVE_USART1
	select STM32_HAVE_USART2
	select STM32_HAVE_I2C1
	select STM32_HAVE_I2C2
	select STM32_HAVE_I2C3
	select STM32_HAVE_SPI1
	select STM32_HAVE_SPI2
	select STM32_HAVE_DMAMUX
	select STM32_HAVE_CRC
	select STM32_HAVE_PWR
	select STM32_HAVE_BKP
	select STM32_HAVE_BKPSRAM
	select STM32_HAVE_SYSCFG
	select STM32_HAVE_CRS
	select STM32_HAVE_HSI48
	select STM32_HAVE_LPUART1
	select STM32_HAVE_LPUART2
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM2
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM15
	select STM32_HAVE_TIM16
	select STM32_HAVE_LPTIM1
	select STM32_HAVE_LPTIM2
	select STM32_HAVE_IP_ADC_M0_V1
	select STM32_HAVE_IP_AES_M0_V1 if STM32_HAVE_AES
	select STM32_HAVE_IP_COMP_M0_V1 if STM32_HAVE_COMP
	select STM32_HAVE_IP_DAC_M0_V1 if STM32_HAVE_DAC1
	select STM32_HAVE_IP_DBGMCU_M0_V1
	select STM32_HAVE_IP_DMA_V1
	select STM32_HAVE_IP_DMA_V1_7CH_DMAMUX
	select STM32_HAVE_IP_EXTI_V2
	select STM32_HAVE_IP_FLASH_M0_V1
	select STM32_HAVE_IP_GPIO_M0_V1
	select STM32_HAVE_IP_HSI48_M0_V1
	select STM32_HAVE_IP_I2C_M0_V1
	select STM32_HAVE_IP_PWR_G0
	select STM32_HAVE_IP_RNG_M0_V1 if STM32_HAVE_RNG
	select STM32_HAVE_IP_RTCC_M0_V1
	select STM32_HAVE_IP_SPI_V2
	select STM32_HAVE_IP_TIMERS_M0_V1
	select STM32_HAVE_IP_USART_V4
	select STM32_HAVE_IP_WDG_M0_V1

config STM32_STM32U073
	bool
	default n
	select STM32_STM32U0
	select STM32_HAVE_DMA2
	select STM32_HAVE_USART3
	select STM32_HAVE_USART4
	select STM32_HAVE_LPUART3
	select STM32_HAVE_LPTIM3
	select STM32_HAVE_I2C4
	select STM32_HAVE_SPI3
	select STM32_HAVE_RNG
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_TSC
	select STM32_HAVE_LCD

config STM32_STM32U083
	bool
	default n
	select STM32_STM32U0
	select STM32_HAVE_DMA2
	select STM32_HAVE_USART3
	select STM32_HAVE_USART4
	select STM32_HAVE_LPUART3
	select STM32_HAVE_LPTIM3
	select STM32_HAVE_I2C4
	select STM32_HAVE_SPI3
	select STM32_HAVE_RNG
	select STM32_HAVE_AES
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_TSC
	select STM32_HAVE_LCD
