# 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_EXTI16_IRQ_PRI
	int "EXTI16 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X
	default 0
	help
	 IRQ priority of EXTI16 interrupt

config EXTI_STM32_EXTI17_IRQ_PRI
	int "EXTI17 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X
	default 0
	help
	 IRQ priority of EXTI17 interrupt

config EXTI_STM32_EXTI18_IRQ_PRI
	int "EXTI18 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X
	default 0
	help
	 IRQ priority of EXTI18 interrupt

config EXTI_STM32_EXTI21_IRQ_PRI
	int "EXTI21 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X
	default 0
	help
	 IRQ priority of EXTI21 interrupt

config EXTI_STM32_EXTI22_IRQ_PRI
	int "EXTI22 IRQ priority"
	depends on EXTI_STM32
	depends on SOC_SERIES_STM32F4X
	default 0
	help
	 IRQ priority of EXTI22 interrupt

endif # SOC_FAMILY_STM32
