menu "SoC selection"

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

config ARCH_RENESAS
	bool "Renesas RISC-V SoCs"
	help
	  This enables support for the RISC-V based Renesas SoCs.

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 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
	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 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 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"
