# LPCXpresso55S06 board

# Copyright (c) 2022 metraTec
# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0

if BOARD_LPCXPRESSO55S06

if BOOTLOADER_MCUBOOT
choice MCUBOOT_BOOTLOADER_MODE
	# Board only supports MCUBoot via "upgrade only" method:
	default MCUBOOT_BOOTLOADER_MODE_OVERWRITE_ONLY
endchoice
endif #BOOTLOADER_MCUBOOT

endif # BOARD_LPCXPRESSO55S06
