# Silicon Labs EFM32JG12B configuration options

# Copyright (c) 2019 Lemonbeat GmbH
# SPDX-License-Identifier: Apache-2.0

config GPIO_GECKO
	default y
	depends on GPIO

if SERIAL

config UART_GECKO
	default y

config LEUART_GECKO
	default y

endif # 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

config PWM_GECKO
	default y
	depends on PWM
