# Copyright (c) 2022 Laird Connectivity
# SPDX-License-Identifier: Apache-2.0

if BOARD_MG100

config MODEM
	default NETWORKING

config MODEM_HL7800
	default NETWORKING

config NORDIC_QSPI_NOR
	default BOOTLOADER_MCUBOOT

config NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE
	default 4096 if NORDIC_QSPI_NOR

config REGULATOR
	default DISK_DRIVER_SDMMC

config BT_CTLR
	default BT

endif # BOARD_MG100
