# Silicon Labs EFR32FG13P platform configuration options

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

config GPIO_GECKO
	default y
	depends on GPIO

config UART_GECKO
	default y
	depends on SERIAL

config I2C_GECKO
	default y
	depends on I2C

config SOC_FLASH_GECKO
	default y
	depends on FLASH

config SPI_GECKO
	default y
	depends on SPI
