# Copyright (c) 2023 Antmicro <www.antmicro.com>
# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_EFM32GG12B=y
CONFIG_BOARD_EFM32GG_SLTB009A=y
CONFIG_ARM_MPU=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_GPIO=y
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=72000000
CONFIG_CMU_HFCLK_HFRCO=y
