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

if ARCH_CHIP_STM32G0

choice
	prompt "ST STM32G0 Chip Selection"
	default ARCH_CHIP_STM32G071RB
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G070CB
	bool "STM32G070CB"
	select STM32_STM32G070
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G070KB
	bool "STM32G070KB"
	select STM32_STM32G070
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G070RB
	bool "STM32G070RB"
	select STM32_STM32G070
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071EB
	bool "STM32G071EB"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071G8
	bool "STM32G071G8"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071GB
	bool "STM32G071GB"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071G8XN
	bool "STM32G071G8XN"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071GBXN
	bool "STM32G071GBXN"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071K8
	bool "STM32G071K8"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071KB
	bool "STM32G071KB"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071K8XN
	bool "STM32G071K8XN"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071KBXN
	bool "STM32G071KBXN"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071C8
	bool "STM32G071C8"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071CB
	bool "STM32G071CB"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071R8
	bool "STM32G071R8"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_8
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G071RB
	bool "STM32G071RB"
	select STM32_STM32G071
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1KB
	bool "STM32G0B1KB"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1CB
	bool "STM32G0B1CB"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1RB
	bool "STM32G0B1RB"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1MB
	bool "STM32G0B1MB"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1VB
	bool "STM32G0B1VB"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_B
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1KC
	bool "STM32G0B1KC"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1CC
	bool "STM32G0B1CC"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1RC
	bool "STM32G0B1RC"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1MC
	bool "STM32G0B1MC"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1VC
	bool "STM32G0B1VC"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_C
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1KE
	bool "STM32G0B1KE"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_E
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1CE
	bool "STM32G0B1CE"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_E
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1RE
	bool "STM32G0B1RE"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_E
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1NE
	bool "STM32G0B1NE"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_E
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1ME
	bool "STM32G0B1ME"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_E
	depends on ARCH_CHIP_STM32G0

config ARCH_CHIP_STM32G0B1VE
	bool "STM32G0B1VE"
	select STM32_STM32G0B1
	select STM32_FLASH_CONFIG_E
	depends on ARCH_CHIP_STM32G0

endchoice

endif

config STM32_STM32G0
	bool
	default n
	select STM32_HAVE_DMA1
	select STM32_HAVE_USART1
	select STM32_HAVE_USART2
	select STM32_HAVE_I2C1
	select STM32_HAVE_SPI1
	select STM32_HAVE_DMAMUX
	select STM32_HAVE_IP_ADC_M0_V1
	select STM32_HAVE_CRC
	select STM32_HAVE_PWR
	select STM32_HAVE_BKP
	select STM32_HAVE_BKPSRAM
	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_FDCAN_MCAN_M0_V1
	select STM32_HAVE_IP_FLASH_M0_V1
	select STM32_HAVE_IP_FLASH_M0_G0C0
	select STM32_HAVE_IP_GPIO_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
	select STM32_HAVE_IP_USBDEV_M0_V1 if STM32_HAVE_USBDEV
	select STM32_HAVE_TIM1
	select STM32_HAVE_TIM3
	select STM32_HAVE_TIM14
	select STM32_HAVE_TIM16
	select STM32_HAVE_TIM17
	select STM32_HAVE_I2C2
	select ARCH_HAVE_PROGMEM

config STM32_STM32G030
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G03X

config STM32_STM32G031
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G03X
	select STM32_HAVE_LPUART1

config STM32_STM32G03X
	bool
	default n

config STM32_STM32G041
	bool
	default n
	select STM32_STM32G0
	select STM32_HAVE_RNG
	select STM32_HAVE_AES
	select STM32_HAVE_LPUART1

config STM32_STM32G050
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G05X

config STM32_STM32G051
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G05X
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_TIM15
	select STM32_HAVE_LPUART1

config STM32_STM32G05X
	bool
	default n
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7

config STM32_STM32G061
	bool
	default n
	select STM32_STM32G0
	select STM32_HAVE_RNG
	select STM32_HAVE_AES
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM15
	select STM32_HAVE_LPUART1

config STM32_STM32G070
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G07X

config STM32_STM32G071
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G07X
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_CEC
	select STM32_HAVE_LPUART1

config STM32_STM32G07X
	bool
	default n
	select STM32_HAVE_USART3
	select STM32_HAVE_USART4
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM15
	select STM32_HAVE_UCPD1
	select STM32_HAVE_UCPD2

config STM32_STM32G081
	bool
	default n
	select STM32_STM32G0
	select STM32_HAVE_USART3
	select STM32_HAVE_USART4
	select STM32_HAVE_RNG
	select STM32_HAVE_AES
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM15
	select STM32_HAVE_UCPD1
	select STM32_HAVE_UCPD2
	select STM32_HAVE_CEC
	select STM32_HAVE_LPUART1

config STM32_STM32G0B0
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G0BX

config STM32_STM32G0B1
	bool
	default n
	select STM32_STM32G0
	select STM32_STM32G0BX
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_COMP3
	select STM32_HAVE_FDCAN1
	select STM32_HAVE_FDCAN2
	select STM32_HAVE_CEC

config STM32_STM32G0BX
	bool
	default n
	select STM32_HAVE_DMA2
	select STM32_HAVE_USART3
	select STM32_HAVE_USART4
	select STM32_HAVE_USART5
	select STM32_HAVE_USART6
	select STM32_HAVE_LPUART1
	select STM32_HAVE_LPUART2
	select STM32_HAVE_CRS
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM15
	select STM32_HAVE_I2C3
	select STM32_HAVE_SPI3
	select STM32_HAVE_I2S2
	select STM32_HAVE_USBDEV
	select STM32_HAVE_UCPD1
	select STM32_HAVE_UCPD2
	select STM32_HAVE_HSI48

config STM32_STM32G0C1
	bool
	default n
	select STM32_STM32G0
	select STM32_HAVE_DMA2
	select STM32_HAVE_USART3
	select STM32_HAVE_USART4
	select STM32_HAVE_USART5
	select STM32_HAVE_USART6
	select STM32_HAVE_CRS
	select STM32_HAVE_RNG
	select STM32_HAVE_AES
	select STM32_HAVE_DAC1
	select STM32_HAVE_COMP1
	select STM32_HAVE_COMP2
	select STM32_HAVE_COMP3
	select STM32_HAVE_TIM4
	select STM32_HAVE_TIM6
	select STM32_HAVE_TIM7
	select STM32_HAVE_TIM15
	select STM32_HAVE_I2C3
	select STM32_HAVE_SPI3
	select STM32_HAVE_I2S2
	select STM32_HAVE_LPUART2
	select STM32_HAVE_USBDEV
	select STM32_HAVE_UCPD1
	select STM32_HAVE_UCPD2
	select STM32_HAVE_FDCAN1
	select STM32_HAVE_FDCAN2
	select STM32_HAVE_CEC
	select STM32_HAVE_HSI48
