if ARCH_RMOBILE

# 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 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_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 "rmobile" if ARCH_RMOBILE

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

endif
