if ARCH_RENESAS

# Renesas ARM SoCs R-Car Gen3/Gen4 (64bit)
config RCAR_64
	bool
	select ARM64
	select CMD_CACHE
	select OF_BOARD_SETUP
	select PHY
	select PINCONF
	select PINCTRL
	select POSITION_INDEPENDENT
	imply CMD_FS_UUID
	imply CMD_GPT
	imply CMD_MMC_SWRITE if MMC
	imply CMD_UUID
	imply OF_UPSTREAM
	imply SUPPORT_EMMC_RPMB if MMC

choice
	prompt "Target Renesas SoC select"
	default RCAR_32

config RCAR_32
	bool "Renesas ARM SoCs R-Car Gen1/Gen2 (32bit)"
	select CPU_V7A

config RCAR_GEN3
	bool "Renesas ARM SoCs R-Car Gen3 (64bit)"
	select RCAR_64
	select SUPPORT_SPL
	select PINCTRL_PFC
	imply SPL
	imply SPL_BOARD_INIT
	imply SPL_GZIP
	imply SPL_LIBCOMMON_SUPPORT
	imply SPL_LIBGENERIC_SUPPORT
	imply SPL_SERIAL
	imply SPL_SYS_MALLOC_SIMPLE
	imply SPL_TINY_MEMSET
	imply SPL_USE_TINY_PRINTF
	imply SPL_YMODEM_SUPPORT

config RCAR_GEN4
	bool "Renesas ARM SoCs R-Car Gen4 (64bit)"
	select RCAR_64
	select PINCTRL_PFC

config RZA1
	prompt "Renesas ARM SoCs RZ/A1 (32bit)"
	select CPU_V7A

config RZN1
	prompt "Renesas ARM SoCs RZ/N1 (32bit)"
	select CPU_V7A
	select ARMV7_SET_CORTEX_SMPEN if !SPL
	select SPL_ARMV7_SET_CORTEX_SMPEN if SPL
	select CLK
	select CLK_RENESAS
	select CLK_R9A06G032
	select DM
	select DM_ETH
	select DM_SERIAL
	select PINCTRL
	select PINCONF
	select REGMAP
	select SYSRESET
	select SYSRESET_SYSCON
	imply CMD_DM

config RZG2L
	prompt "Renesas RZ/G2L Family ARM SoCs"
	select GICV3
	select RCAR_64
	imply CLK_RZG2L
	imply MULTI_DTB_FIT
	imply MULTI_DTB_FIT_USER_DEFINED_AREA
	imply PINCTRL_RZG2L
	imply RENESAS_SDHI
	imply RZG2L_GPIO
	imply SCIF_CONSOLE
	imply SYS_I2C_RZ_RIIC
	imply SYS_MALLOC_F
	help
	  Enable support for the Renesas RZ/G2L family of SoCs. Currently
	  support is only included for the RZ/G2L itself (based on the R9A07G044
	  SoC). Support for additional SoCs in this family (RZ/G2LC, RZ/G2UL,
	  RZ/V2L & RZ/Five) is not yet available.

endchoice

config SYS_SOC
	default "renesas" if ARCH_RENESAS

source "arch/arm/mach-renesas/Kconfig.32"
source "arch/arm/mach-renesas/Kconfig.64"
source "arch/arm/mach-renesas/Kconfig.rza1"
source "arch/arm/mach-renesas/Kconfig.rzn1"
source "arch/arm/mach-renesas/Kconfig.rzg2l"

endif
