# Kconfig - LPCXpresso54114 board
#
# Copyright (c) 2017, NXP
#
# SPDX-License-Identifier: Apache-2.0
#

if BOARD_LPCXPRESSO54114_M0

config BOARD
	default "lpcxpresso54114_m0"

if USART_MCUX_LPC
config USART_MCUX_LPC_0
	def_bool n if UART_CONSOLE

endif # USART_MCUX_LPC

config PINMUX
	def_bool n

if PINMUX_MCUX_LPC

config PINMUX_MCUX_LPC_PORT0
	def_bool n

config PINMUX_MCUX_LPC_PORT1
	def_bool n
endif # PINMUX_MCUX_LPC

if GPIO_MCUX_LPC

config GPIO_MCUX_LPC_PORT0
	def_bool n

config GPIO_MCUX_LPC_PORT1
	def_bool n

endif # GPIO_MCUX_LPC

endif # BOARD_LPCXPRESSO54114_M0
