# Microchip MEC1501HSZ MCU

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

if SOC_MEC1501_HSZ

config SOC
	default "mec1501hsz"

if SERIAL

config UART_NS16550
	default y

endif # SERIAL

if PINMUX

config PINMUX_XEC
	default y

endif # PINMUX

config GPIO
	default y

if ADC

config ADC_XEC
	default y

endif # ADC

if GPIO

config GPIO_XEC
	default y

endif # GPIO

if I2C

config I2C_XEC
	default y

endif # I2C

if ESPI

config ESPI_XEC
	default y

endif #ESPI

if COUNTER

config COUNTER_XEC
	default y

endif # COUNTER

if PS2

config PS2_XEC
	default y

endif # PS2

if PWM

config PWM_XEC
	default y

endif # PWM

if KSCAN

config KSCAN_XEC
	default y

endif # KSCAN

if SPI

config SPI_XEC_QMSPI
	default y

endif # SPI

if SOC_POWER_MANAGEMENT

config SYS_POWER_MANAGEMENT
	default y

config SYS_POWER_SLEEP_STATES
	default y

config HAS_SYS_POWER_STATE_SLEEP_1
	default y

config SYS_POWER_DEEP_SLEEP_STATES
	default y

config HAS_SYS_POWER_STATE_DEEP_SLEEP_1
	default y

config DEVICE_POWER_MANAGEMENT
	default n

endif # SOC_POWER_MANAGEMENT

endif # SOC_MEC1501_HSZ
