# Kconfig - TI LM3S6965 platform configuration options

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

if SOC_TI_LM3S6965

config SOC
	default ti_lm3s6965

config NUM_IRQS
	int
	# must be >= the highest interrupt number used
	# - include the UART interrupts
	default 34

config SYS_CLOCK_HW_CYCLES_PER_SEC
	int
	default 12000000

if UART_STELLARIS

config UART_STELLARIS_PORT_0
	def_bool y

config UART_STELLARIS_PORT_1
	def_bool y

config UART_STELLARIS_PORT_2
	def_bool y

endif # UART_STELLARIS

config BLUETOOTH_UART_ON_DEV_NAME
	default "UART_1" if BLUETOOTH_UART

config UART_PIPE_ON_DEV_NAME
	default "UART_1" if UART_PIPE

config BLUETOOTH_MONITOR_ON_DEV_NAME
	default "UART_2" if  BLUETOOTH_DEBUG_MONITOR

endif
