# SPDX-License-Identifier: GPL-2.0
config SOC_RENESAS
	bool "Renesas SoC driver support" if COMPILE_TEST && !ARCH_RENESAS
	default y if ARCH_RENESAS
	select SOC_BUS

if SOC_RENESAS

config ARCH_RCAR_GEN1
	bool
	select PM
	select PM_GENERIC_DOMAINS
	select RENESAS_INTC_IRQPIN
	select RST_RCAR
	select SYS_SUPPORTS_SH_TMU

config ARCH_RCAR_GEN2
	bool
	select HAVE_ARM_ARCH_TIMER
	select PM
	select PM_GENERIC_DOMAINS
	select RENESAS_IRQC
	select RST_RCAR
	select SYS_SUPPORTS_SH_CMT

config ARCH_RCAR_GEN3
	bool
	select PM
	select PM_GENERIC_DOMAINS
	select RENESAS_IRQC
	select RST_RCAR
	select SYS_SUPPORTS_SH_CMT
	select SYS_SUPPORTS_SH_TMU

config ARCH_RMOBILE
	bool
	select PM
	select PM_GENERIC_DOMAINS
	select SYS_SUPPORTS_SH_CMT
	select SYS_SUPPORTS_SH_TMU
	select SYSC_RMOBILE

config ARCH_RZN1
	bool
	select ARM_AMBA

if ARM

#comment "Renesas ARM SoCs System Type"

config ARCH_EMEV2
	bool "Emma Mobile EV2"
	select HAVE_ARM_SCU if SMP
	select SYS_SUPPORTS_EM_STI

config ARCH_R7S72100
	bool "RZ/A1H (R7S72100)"
	select PM
	select PM_GENERIC_DOMAINS
	select SYS_SUPPORTS_SH_MTU2
	select RENESAS_OSTM

config ARCH_R7S9210
	bool "RZ/A2 (R7S9210)"
	select PM
	select PM_GENERIC_DOMAINS
	select RENESAS_OSTM

config ARCH_R8A73A4
	bool "R-Mobile APE6 (R8A73A40)"
	select ARCH_RMOBILE
	select ARM_ERRATA_798181 if SMP
	select HAVE_ARM_ARCH_TIMER
	select RENESAS_IRQC

config ARCH_R8A7740
	bool "R-Mobile A1 (R8A77400)"
	select ARCH_RMOBILE
	select RENESAS_INTC_IRQPIN

config ARCH_R8A7743
	bool "RZ/G1M (R8A77430)"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select SYSC_R8A7743

config ARCH_R8A7744
	bool "RZ/G1N (R8A77440)"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select SYSC_R8A7743

config ARCH_R8A7745
	bool "RZ/G1E (R8A77450)"
	select ARCH_RCAR_GEN2
	select SYSC_R8A7745

config ARCH_R8A77470
	bool "RZ/G1C (R8A77470)"
	select ARCH_RCAR_GEN2
	select SYSC_R8A77470

config ARCH_R8A7778
	bool "R-Car M1A (R8A77781)"
	select ARCH_RCAR_GEN1

config ARCH_R8A7779
	bool "R-Car H1 (R8A77790)"
	select ARCH_RCAR_GEN1
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select SYSC_R8A7779

config ARCH_R8A7790
	bool "R-Car H2 (R8A77900)"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select I2C
	select SYSC_R8A7790

config ARCH_R8A7791
	bool "R-Car M2-W (R8A77910)"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select I2C
	select SYSC_R8A7791

config ARCH_R8A7792
	bool "R-Car V2H (R8A77920)"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select SYSC_R8A7792

config ARCH_R8A7793
	bool "R-Car M2-N (R8A7793)"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select I2C
	select SYSC_R8A7791

config ARCH_R8A7794
	bool "R-Car E2 (R8A77940)"
	select ARCH_RCAR_GEN2
	select SYSC_R8A7794

config ARCH_R9A06G032
	bool "RZ/N1D (R9A06G032)"
	select ARCH_RZN1

config ARCH_SH73A0
	bool "SH-Mobile AG5 (R8A73A00)"
	select ARCH_RMOBILE
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select RENESAS_INTC_IRQPIN

endif # ARM

if ARM64

config ARCH_R8A774A1
	bool "Renesas RZ/G2M SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A774A1
	help
	  This enables support for the Renesas RZ/G2M SoC.

config ARCH_R8A774C0
	bool "Renesas RZ/G2E SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A774C0
	help
	  This enables support for the Renesas RZ/G2E SoC.

config ARCH_R8A7795
	bool "Renesas R-Car H3 SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A7795
	help
	  This enables support for the Renesas R-Car H3 SoC.

config ARCH_R8A7796
	bool "Renesas R-Car M3-W SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A7796
	help
	  This enables support for the Renesas R-Car M3-W SoC.

config ARCH_R8A77965
	bool "Renesas R-Car M3-N SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77965
	help
	  This enables support for the Renesas R-Car M3-N SoC.

config ARCH_R8A77970
	bool "Renesas R-Car V3M SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77970
	help
	  This enables support for the Renesas R-Car V3M SoC.

config ARCH_R8A77980
	bool "Renesas R-Car V3H SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77980
	help
	  This enables support for the Renesas R-Car V3H SoC.

config ARCH_R8A77990
	bool "Renesas R-Car E3 SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77990
	help
	  This enables support for the Renesas R-Car E3 SoC.

config ARCH_R8A77995
	bool "Renesas R-Car D3 SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77995
	help
	  This enables support for the Renesas R-Car D3 SoC.

endif # ARM64

# SoC
config SYSC_R8A7743
	bool "RZ/G1M System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7745
	bool "RZ/G1E System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A77470
	bool "RZ/G1C System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A774A1
	bool "RZ/G2M System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A774C0
	bool "RZ/G2E System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7779
	bool "R-Car H1 System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7790
	bool "R-Car H2 System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7791
	bool "R-Car M2-W/N System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7792
	bool "R-Car V2H System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7794
	bool "R-Car E2 System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7795
	bool "R-Car H3 System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A7796
	bool "R-Car M3-W System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A77965
	bool "R-Car M3-N System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A77970
	bool "R-Car V3M System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A77980
	bool "R-Car V3H System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A77990
	bool "R-Car E3 System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A77995
	bool "R-Car D3 System Controller support" if COMPILE_TEST
	select SYSC_RCAR

# Family
config RST_RCAR
	bool "R-Car Reset Controller support" if COMPILE_TEST

config SYSC_RCAR
	bool "R-Car System Controller support" if COMPILE_TEST

config SYSC_RMOBILE
	bool "R-Mobile System Controller support" if COMPILE_TEST

endif # SOC_RENESAS
