# Silicon Labs EFR32MG12P platform configuration options

# Copyright (c) 2018 Diego Sueiro
# 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

config LEUART_GECKO
	default y

endif # SERIAL

if I2C

config I2C_GECKO
	default y

endif # I2C

if FLASH

config SOC_FLASH_GECKO
	default y

endif # FLASH
