# Kconfig - ATOM SoC configuration options

#
# Copyright (c) 2014-2015 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_ATOM

config SOC
	default "atom"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 150000000 if LOAPIC_TIMER
	default 25000000  if HPET_TIMER

config CLFLUSH_DETECT
	def_bool y if CACHE_FLUSHING

if UART_NS16550

config UART_NS16550_PCI
	def_bool n

config UART_NS16550_PORT_0
	def_bool y

if UART_NS16550_PORT_0

config UART_NS16550_PORT_0_OPTIONS
	default 0

endif # UART_NS16550_PORT_0

config UART_NS16550_PORT_1
	def_bool y

if UART_NS16550_PORT_1

config UART_NS16550_PORT_1_OPTIONS
	default 0

endif # UART_NS16550_PORT_1

endif # UART_NS16550

if BT_UART

if UART_PIPE

config UART_PIPE_ON_DEV_NAME
	default "UART_1"

endif

config BT_MONITOR_ON_DEV_NAME
	default "UART_1" if BT_DEBUG_MONITOR
endif

endif
