# Espressif's Interrupt Allocator driver for Xtensa SoCs

# Copyright (c) 2021 Espressif Systems (Shanghai) Co., Ltd.
# SPDX-License-Identifier: Apache-2.0

config INTC_ESP32
	bool "Interrupt allocator for Xtensa-based Espressif SoCs"
	default y if SOC_ESP32 || SOC_ESP32S2
	help
	  Enable custom interrupt allocator for Espressif SoCs based on Xtensa
	  architecture.

config INTC_ESP32_DECISIONS_LOG
	bool "Espressif's interrupt allocator logging"
	depends on INTC_ESP32
	select LOG
	help
	  Enable this option to visualize information on decisions made by the
	  interrupt allocator. This has no impact on the interrupt allocator usage
	  but may be valuable for debugging purposes. When enabled, messages are
	  print to the serial console.
