# Sipeed Longan Nano Lite board Configuration
#
# Copyright (c) 2021 Tokita, Hiroshi <tokita.hiroshi@gmail.com>
#
# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_GD32VF103=y
CONFIG_SOC_GD32VF103=y
CONFIG_BOARD_LONGAN_NANO_LITE=y

CONFIG_GD32_HXTAL_8MHZ=y
CONFIG_RISCV_MACHINE_TIMER=y

CONFIG_SERIAL=y
CONFIG_UART_INTERRUPT_DRIVEN=y

CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y

CONFIG_GPIO=y
