# Kconfig - Intel_S1000 configuration
#
# Copyright (c) 2017 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

config CAVS_ICTL
	bool "CAVS Interrupt Logic"
	depends on MULTI_LEVEL_INTERRUPTS
	help
	  These are 4 in number supporting a max of 32 interrupts each.

config CAVS_ISR_TBL_OFFSET
	int "Offset in the SW ISR Table"
	default 0
	depends on CAVS_ICTL
	help
	  This indicates the offset in the SW_ISR_TABLE beginning from where
	  the ISRs for CAVS Interrupt Controller are assigned.

config CAVS_ICTL_0_NAME
	string "CAVS 0 Driver name"
	depends on CAVS_ICTL
	default "CAVS_0"

config CAVS_ICTL_0_OFFSET
	int "Parent interrupt number to which CAVS_0 maps"
	default 0
	depends on CAVS_ICTL

config CAVS_ICTL_1_NAME
	string "CAVS 1 Driver name"
	depends on CAVS_ICTL
	default "CAVS_1"

config CAVS_ICTL_1_OFFSET
	int "Parent interrupt number to which CAVS_1 maps"
	default 0
	depends on CAVS_ICTL

config CAVS_ICTL_2_NAME
	string "CAVS 2 Driver name"
	depends on CAVS_ICTL
	default "CAVS_2"

config CAVS_ICTL_2_OFFSET
	int "Parent interrupt number to which CAVS_2 maps"
	default 0
	depends on CAVS_ICTL

config CAVS_ICTL_3_NAME
	string "CAVS 3 Driver name"
	depends on CAVS_ICTL
	default "CAVS_3"

config CAVS_ICTL_3_OFFSET
	int "Parent interrupt number to which CAVS_3 maps"
	default 0
	depends on CAVS_ICTL

config CAVS_ICTL_INIT_PRIORITY
	int "CAVS ICTL Init priority"
	default 60
	depends on CAVS_ICTL
	help
	  Cavs Interrupt Logic initialization priority.
