# STM32 EXTI configuration

# Copyright (c) 2016 Open-RnD Sp. z o.o.
# SPDX-License-Identifier: Apache-2.0

if SOC_FAMILY_STM32

config EXTI_STM32
	bool "External Interrupt/Event Controller (EXTI) Driver for STM32 family of MCUs"
	default y if SOC_FAMILY_STM32
	help
	  Enable EXTI driver for STM32 line of MCUs

config EXTI_STM32_EXTI1_0_IRQ_PRI
	int "EXTI1:0 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F0X || SOC_SERIES_STM32L0X || SOC_SERIES_STM32G0X
	default 0
	help
	  IRQ priority of EXTI1:0 interrupt

config EXTI_STM32_EXTI3_2_IRQ_PRI
	int "EXTI3:2 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F0X || SOC_SERIES_STM32L0X || SOC_SERIES_STM32G0X
	default 0
	help
	  IRQ priority of EXTI3:2 interrupt

config EXTI_STM32_EXTI15_4_IRQ_PRI
	int "EXTI15:4 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F0X || SOC_SERIES_STM32L0X || SOC_SERIES_STM32G0X
	default 0
	help
	  IRQ priority of EXTI15:4 interrupt

if SOC_SERIES_STM32F0X!=y && SOC_SERIES_STM32L0X!=y && SOC_SERIES_STM32G0X!=y

config EXTI_STM32_EXTI0_IRQ_PRI
	int "EXTI0 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI0 interrupt

config EXTI_STM32_EXTI1_IRQ_PRI
	int "EXTI1 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI1 interrupt

config EXTI_STM32_EXTI2_IRQ_PRI
	int "EXTI2 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI2 interrupt

config EXTI_STM32_EXTI3_IRQ_PRI
	int "EXTI3 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI3 interrupt

config EXTI_STM32_EXTI4_IRQ_PRI
	int "EXTI4 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI4 interrupt

if SOC_SERIES_STM32MP1X || SOC_SERIES_STM32L5X || SOC_SERIES_STM32U5X

config EXTI_STM32_EXTI5_IRQ_PRI
	int "EXTI5 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI5 interrupt

config EXTI_STM32_EXTI6_IRQ_PRI
	int "EXTI6 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI6 interrupt

config EXTI_STM32_EXTI7_IRQ_PRI
	int "EXTI7 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI7 interrupt

config EXTI_STM32_EXTI8_IRQ_PRI
	int "EXTI8 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI8 interrupt

config EXTI_STM32_EXTI9_IRQ_PRI
	int "EXTI9 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI9 interrupt

config EXTI_STM32_EXTI10_IRQ_PRI
	int "EXTI10 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI10 interrupt

config EXTI_STM32_EXTI11_IRQ_PRI
	int "EXTI11 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI11 interrupt

config EXTI_STM32_EXTI12_IRQ_PRI
	int "EXTI12 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI12 interrupt

config EXTI_STM32_EXTI13_IRQ_PRI
	int "EXTI13 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI13 interrupt

config EXTI_STM32_EXTI14_IRQ_PRI
	int "EXTI14 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI14 interrupt

config EXTI_STM32_EXTI15_IRQ_PRI
	int "EXTI15 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI15 interrupt

endif # SOC_SERIES_STM32MP1X

if SOC_SERIES_STM32MP1X!=y && SOC_SERIES_STM32L5X!=y && SOC_SERIES_STM32U5X!=y

config EXTI_STM32_EXTI9_5_IRQ_PRI
	int "EXTI9:5 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI9:5 interrupt

config EXTI_STM32_EXTI15_10_IRQ_PRI
	int "EXTI15:10 IRQ priority"
	depends on EXTI_STM32
	default 0
	help
	  IRQ priority of EXTI15:10 interrupt

endif # SOC_SERIES_STM32MP1X!=y && SOC_SERIES_STM32L5X!=y

endif # SOC_SERIES_STM32F0X!=y && SOC_SERIES_STM32L0X!=y && SOC_SERIES_STM32G0X!=y

config EXTI_STM32_PVD_IRQ_PRI
	int "RVD Through IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X || SOC_SERIES_STM32G0X
	default 0
	help
	  IRQ priority of RVD Through interrupt

config EXTI_STM32_OTG_FS_WKUP_IRQ_PRI
	int "USB OTG FS Wake Up IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X
	default 0
	help
	  IRQ priority of USB OTG FS Wake interrupt

config EXTI_STM32_TAMP_STAMP_IRQ_PRI
	int "Tamper and Timestamp IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X
	default 0
	help
	  IRQ priority of Tamper and Timestamp interrupt

config EXTI_STM32_RTC_WKUP_IRQ_PRI
	int "RTC Wake Up IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X
	default 0
	help
	  IRQ priority of RTC Wake Up interrupt

config EXTI_STM32_LPTIM1_IRQ_PRI
	int "LPTIM1 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F7X
	default 0
	help
	  IRQ priority of LPTIM1 interrupt

endif # SOC_FAMILY_STM32
