# 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 && ARCH_RENESAS

#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 ARM_ERRATA_754322
	select PM
	select PM_GENERIC_DOMAINS
	select RENESAS_OSTM
	select RENESAS_RZA1_IRQC
	select SYS_SUPPORTS_SH_MTU2

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

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

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

config ARCH_R8A7742
	bool "RZ/G1H (R8A77420)"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select ARM_ERRATA_814220
	select SYSC_R8A7742

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 ARM_ERRATA_814220
	select SYSC_R8A7745

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

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

config ARCH_R8A7779
	bool "R-Car H1 (R8A77790)"
	select ARCH_RCAR_GEN1
	select ARM_ERRATA_754322
	select ARM_GLOBAL_TIMER
	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 ARM_ERRATA_814220
	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 ARM_ERRATA_814220
	select SYSC_R8A7794

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

config ARCH_SH73A0
	bool "SH-Mobile AG5 (R8A73A00)"
	select ARCH_RMOBILE
	select ARM_ERRATA_754322
	select ARM_GLOBAL_TIMER
	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_R8A774B1
	bool "Renesas RZ/G2N SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A774B1
	help
	  This enables support for the Renesas RZ/G2N 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_R8A77950
	bool "Renesas R-Car H3 ES1.x SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A7795
	help
	  This enables support for the Renesas R-Car H3 SoC (revision 1.x).

config ARCH_R8A77951
	bool "Renesas R-Car H3 ES2.0+ SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A7795
	help
	  This enables support for the Renesas R-Car H3 SoC (revisions 2.0 and
	  later).

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

config ARCH_R8A77961
	bool "Renesas R-Car M3-W+ SoC Platform"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77961
	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_R8A7742
	bool "RZ/G1H System Controller support" if COMPILE_TEST
	select SYSC_RCAR

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_R8A774B1
	bool "RZ/G2N 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_R8A77960
	bool "R-Car M3-W System Controller support" if COMPILE_TEST
	select SYSC_RCAR

config SYSC_R8A77961
	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
