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

if SOC_GD32VF103

config SOC
	default "gd32vf103"

config KERNEL_ENTRY
	default "__nuclei_start"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	# This value should be the CPU frequency divided by 4.
	# The CPU frequency is set to the maximum value of 108MHz by default.
	default 27000000

config RISCV_SOC_MCAUSE_EXCEPTION_MASK
	default $(dt_node_int_prop_hex,/cpus/cpu@0,mcause-exception-mask)

config RISCV_SOC_INTERRUPT_INIT
	default y

config RISCV_HAS_CPU_IDLE
	default y

config RISCV_GP
	default y

config RISCV_HAS_PLIC
	default n

config NUM_IRQS
	default 87 if  NUCLEI_ECLIC
	default 16 if !NUCLEI_ECLIC

config 2ND_LEVEL_INTERRUPTS
	default y

config PINCTRL
	default y

config RESET
	default y

config CLOCK_CONTROL
	default y

endif # GD32VF103
