# LPCXpresso55S69 board

# Copyright (c) 2019, NXP
# SPDX-License-Identifier: Apache-2.0

if BOARD_LPCXPRESSO55S69_CPU0 || BOARD_LPCXPRESSO55S69_CPU1

config BOARD
	default "lpcxpresso55S69_cpu0" if BOARD_LPCXPRESSO55S69_CPU0
	default "lpcxpresso55S69_cpu1" if BOARD_LPCXPRESSO55S69_CPU1

if PINMUX_MCUX_LPC

config PINMUX_MCUX_LPC_PORT0
	default y

config PINMUX_MCUX_LPC_PORT1
	default y

endif # PINMUX_MCUX_LPC

if GPIO_MCUX_LPC

config GPIO_MCUX_LPC_PORT0
	default y

config GPIO_MCUX_LPC_PORT1
	default y

endif # GPIO_MCUX_LPC

config SPI_8
	default y
	depends on SPI

config FXOS8700_DRDY_INT1
	default y
	depends on FXOS8700_TRIGGER

endif # BOARD_LPCXPRESSO55S69_CPU0 || BOARD_LPCXPRESSO55S69_CPU1
