# Copyright (c) 2016 Intel Corporation Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

config SOC_SERIES_QUARK_SE
	bool "Quark SE Series MCU"
	select SOC_FAMILY_QUARK
	select CPU_MINUTEIA
	select IOAPIC
	select LOAPIC
	select LOAPIC_TIMER
	select XIP
	select SYS_POWER_LOW_POWER_STATE_SUPPORTED
	select SYS_POWER_DEEP_SLEEP_SUPPORTED
	select BOOTLOADER_CONTEXT_RESTORE_SUPPORTED
	select HAS_QMSI
	help
	 Enable support for Quark SE
