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

if BOARD_MEC15XXEVB_ASSY6853

config BOARD
	default "mec15xxevb_assy6853"

config ESPI_XEC
	default y
	depends on ESPI

if RTOS_TIMER

# XEC RTOS timer HW frequency is fixed at 32768
# The driver requires tickless mode and ticks per
# second to be 32768 for accurate operation.

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 32768

config SYS_CLOCK_TICKS_PER_SEC
	default 32768

endif # RTOS_TIMER

if !RTOS_TIMER

# If RTOS timer is not enabled we use ARM Cortex-M
# SYSTICK. SYSTICK frequency is 48MHz divided by
# SOC_MEC1501_PROC_CLK_DIV.
#

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 48000000

config SYS_CLOCK_TICKS_PER_SEC
	default 1000

endif # RTOS_TIMER

if PS2

config PS2_XEC_0
	default y

config PS2_XEC_1
	default y

endif # PS2

if SPI

config SPI_XEC_QMSPI
	default y

if SPI_XEC_QMSPI

config SPI_0
	default y

config SPI_0_OP_MODES
	default 1

endif # SPI_XEC_QMSPI

endif # SPI

config TACH_XEC
	default y
	depends on SENSOR

# power management stuff
if SYS_POWER_MANAGEMENT

config SYS_PM_MIN_RESIDENCY_SLEEP_1
	default 1000

config SYS_PM_MIN_RESIDENCY_DEEP_SLEEP_1
	default 2000

endif # SYS_POWER_MANAGEMENT

endif # BOARD_MEC15XXEVB_ASSY6853
