menu "SoC selection"

config SOC_MICROCHIP_POLARFIRE
	bool "Microchip PolarFire SoCs"
	select MCHP_CLK_MPFS
	select SIFIVE_PLIC
	help
	  This enables support for Microchip PolarFire SoC platforms.

config SOC_SIFIVE
	bool "SiFive SoCs"
	select SERIAL_SIFIVE if TTY
	select SERIAL_SIFIVE_CONSOLE if TTY
	select CLK_SIFIVE
	select CLK_SIFIVE_PRCI
	select SIFIVE_PLIC
	select ERRATA_SIFIVE if !XIP_KERNEL
	help
	  This enables support for SiFive SoC platform hardware.

config SOC_STARFIVE
	bool "StarFive SoCs"
	select PINCTRL
	select RESET_CONTROLLER
	select SIFIVE_PLIC
	select ARM_AMBA
	help
	  This enables support for StarFive SoC platform hardware.

config SOC_VIRT
	bool "QEMU Virt Machine"
	select CLINT_TIMER if RISCV_M_MODE
	select POWER_RESET
	select POWER_RESET_SYSCON
	select POWER_RESET_SYSCON_POWEROFF
	select GOLDFISH
	select RTC_DRV_GOLDFISH if RTC_CLASS
	select SIFIVE_PLIC
	select PM_GENERIC_DOMAINS if PM
	select PM_GENERIC_DOMAINS_OF if PM && OF
	select RISCV_SBI_CPUIDLE if CPU_IDLE && RISCV_SBI
	help
	  This enables support for QEMU Virt Machine.

config SOC_CANAAN
	bool "Canaan Kendryte K210 SoC"
	depends on !MMU
	select CLINT_TIMER if RISCV_M_MODE
	select SERIAL_SIFIVE if TTY
	select SERIAL_SIFIVE_CONSOLE if TTY
	select SIFIVE_PLIC
	select ARCH_HAS_RESET_CONTROLLER
	select PINCTRL
	select COMMON_CLK
	select COMMON_CLK_K210
	help
	  This enables support for Canaan Kendryte K210 SoC platform hardware.

if SOC_CANAAN

config SOC_CANAAN_K210_DTB_BUILTIN
	bool "Builtin device tree for the Canaan Kendryte K210"
	depends on SOC_CANAAN
	default y
	select OF
	select BUILTIN_DTB
	help
	  Build a device tree for the Kendryte K210 into the Linux image.
	  This option should be selected if no bootloader is being used.
	  If unsure, say Y.

config SOC_CANAAN_K210_DTB_SOURCE
	string "Source file for the Canaan Kendryte K210 builtin DTB"
	depends on SOC_CANAAN
	depends on SOC_CANAAN_K210_DTB_BUILTIN
	default "k210_generic"
	help
	  Base name (without suffix, relative to arch/riscv/boot/dts/canaan)
	  for the DTS file that will be used to produce the DTB linked into the
	  kernel.

endif # SOC_CANAAN

endmenu # "SoC selection"
