# Intel CAVS SoC family default configuration options
#
# Copyright (c) 2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

source "soc/xtensa/intel_adsp/*/Kconfig.defconfig.series"

# Lower priority defaults come AFTER the series-specific ones set above

config XTENSA_CACHED_REGION
	default 5

config XTENSA_UNCACHED_REGION
	default 4

if INTEL_ADSP_CAVS

config DMA_CAVS_GPDMA
	default y
	depends on DMA

config DMA_CAVS_HDA
	default y
	depends on DMA

config XTENSA_CCOUNT_HZ
	default 400000000 if SOC_SERIES_INTEL_CAVS_V25
	default 200000000

endif # INTEL_ADSP_CAVS
