# Kconfig - 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
	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
	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
	default 0
	help
	 IRQ priority of EXTI15:4 interrupt

if SOC_SERIES_STM32F0X!=y && SOC_SERIES_STM32L0X!=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

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_STM32F0X!=y && SOC_SERIES_STM32L0X!=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
	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
