# Silicon Labs EFR32FG1P platform configuration options

# Copyright (c) 2018 Christian Taedcke
# SPDX-License-Identifier: Apache-2.0

if GPIO || LOG_BACKEND_SWO

config GPIO_GECKO
	default y

endif # GPIO || LOG_BACKEND_SWO

if SERIAL

config UART_GECKO
	default y

endif # SERIAL

if I2C

config I2C_GECKO
	default y

endif # I2C

if FLASH

config SOC_FLASH_GECKO
	default y

endif # FLASH
