# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config SOC_FAMILY_SIFIVE_FREEDOM
	bool

if SOC_FAMILY_SIFIVE_FREEDOM

config SOC_FAMILY
	string
	default "sifive_freedom"

source "soc/riscv/sifive_freedom/*/Kconfig.soc"

endif # SOC_FAMILY_SIFIVE_FREEDOM
