#
# Copyright (c) 2014 Wind River Systems, Inc.
# Copyright (c) 2018 Synopsys, Inc. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_ARC_IOT

config SOC
	string
	default "snps_arc_iot"

config CPU_EM4_FPUS
	def_bool y

config NUM_IRQ_PRIO_LEVELS
	# This processor supports 4 priority levels:
	# 0 for Fast Interrupts (FIRQs) and 1-3 for Regular Interrupts (IRQs).
	default 4

config ARC_MPU_VER
	default 2

config NUM_IRQS
	# must be > the highest interrupt number used
	default 95

config RGF_NUM_BANKS
	default 2

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 144000000

config HARVARD
	default y

config ARC_FIRQ
	default y

if SERIAL

config UART_NS16550
	default y

endif # SERIAL

if UART_CONSOLE

config UART_NS16550_PORT_0
	default y

endif # UART_CONSOLE

endif # ARC_IOT
