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

if BOARD_INTEL_S1000_CRB

config BOARD
	default "intel_s1000_crb"

config CAVS_ICTL_0_OFFSET
	default 6
config CAVS_ICTL_1_OFFSET
	default 10
config CAVS_ICTL_2_OFFSET
	default 13
config CAVS_ICTL_3_OFFSET
	default 16

config DW_ICTL_OFFSET
	default 7

config 2ND_LVL_INTR_00_OFFSET
	default CAVS_ICTL_0_OFFSET
config 2ND_LVL_INTR_01_OFFSET
	default CAVS_ICTL_1_OFFSET
config 2ND_LVL_INTR_02_OFFSET
	default CAVS_ICTL_2_OFFSET
config 2ND_LVL_INTR_03_OFFSET
	default CAVS_ICTL_3_OFFSET
config 3RD_LVL_INTR_00_OFFSET
	default DW_ICTL_OFFSET

config MAX_IRQ_PER_AGGREGATOR
	default 32
config NUM_2ND_LEVEL_AGGREGATORS
	default 4
config NUM_3RD_LEVEL_AGGREGATORS
	default 1
config 2ND_LVL_ISR_TBL_OFFSET
	default 21
config 3RD_LVL_ISR_TBL_OFFSET
	default 149

config CAVS_ISR_TBL_OFFSET
	default 2ND_LVL_ISR_TBL_OFFSET
config DW_ISR_TBL_OFFSET
	default 3RD_LVL_ISR_TBL_OFFSET

config HEAP_MEM_POOL_SIZE
	default 1024
	depends on DMA_DW

config TEXT_SECTION_OFFSET
	default 0x100
	depends on BOOTLOADER_MCUBOOT

if USB
config USB_DW
	default y

config USB_DW_USB_2_0
	default y

config USB_REQUEST_BUFFER_SIZE
	default 128
	depends on USB_DEVICE_HID

config USB_REQUEST_BUFFER_SIZE
	default 4096
	depends on USB_DFU_CLASS

config USB_DEVICE_STACK
	default y

config USB_DEVICE_VID
	default "0x8087"

config USB_DEVICE_PID
	default "0x0B1A"

config USB_DEVICE_MANUFACTURER
	default "Intel(R) Corporation"

config USB_DEVICE_PRODUCT
	default "Sue Creek (S1000) ASIC"

endif # USB

if SERIAL

config UART_INTERRUPT_DRIVEN
	default y

endif # SERIAL

if I2C

config I2C_DW
	default y

endif

config DMA_DW
	default y
	depends on DMA

config I2S_CAVS
	default y
	depends on I2S

if AUDIO
config AUDIO_CODEC
	default y

config AUDIO_TLV320DAC
	default y

config AUDIO_DMIC
	default y

config AUDIO_INTEL_DMIC
	default y

endif

config INTEL_GNA
	default y
	depends on NEURAL_NET_ACCEL

if GPIO

config GPIO_DW
	default y

config GPIO_DW_0
	default y

endif

if FLASH

config SPI
	default y

config SPI_NOR
	default y

config FLASH_HAS_PAGE_LAYOUT
	default y

config FLASH_PAGE_LAYOUT
	default y

endif

if SPI

config SPI_DW
	default y

config SPI_0
	default y

endif

config PINMUX_INTEL_S1000
	default y
	depends on PINMUX

endif # BOARD_INTEL_S1000_CRB
