# SPDX-License-Identifier: GPL-2.0
menuconfig SOC_RENESAS
	bool "Renesas SoC driver support" if COMPILE_TEST && !ARCH_RENESAS
	default y if ARCH_RENESAS
	select GPIOLIB
	select PINCTRL
	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_RCAR_GEN4
	bool
	select ARCH_RCAR_GEN3

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_RZG2L
	bool
	select PM
	select PM_GENERIC_DOMAINS
	select RENESAS_RZG2L_IRQC

config ARCH_RZN1
	bool
	select PM
	select PM_GENERIC_DOMAINS
	select ARM_AMBA

if ARM && ARCH_RENESAS

#comment "Renesas ARM SoCs System Type"

config ARCH_EMEV2
	bool "ARM32 Platform support for Emma Mobile EV2"
	select HAVE_ARM_SCU if SMP
	select SYS_SUPPORTS_EM_STI

config ARCH_R8A7794
	bool "ARM32 Platform support for R-Car E2"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_814220
	select SYSC_R8A7794

config ARCH_R8A7779
	bool "ARM32 Platform support for R-Car H1"
	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 "ARM32 Platform support for R-Car H2"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select ARM_ERRATA_814220
	select I2C
	select SYSC_R8A7790

config ARCH_R8A7778
	bool "ARM32 Platform support for R-Car M1A"
	select ARCH_RCAR_GEN1
	select ARM_ERRATA_754322

config ARCH_R8A7793
	bool "ARM32 Platform support for R-Car M2-N"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select I2C
	select SYSC_R8A7791

config ARCH_R8A7791
	bool "ARM32 Platform support for R-Car M2-W"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select I2C
	select SYSC_R8A7791

config ARCH_R8A7792
	bool "ARM32 Platform support for R-Car V2H"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select SYSC_R8A7792

config ARCH_R8A7740
	bool "ARM32 Platform support for R-Mobile A1"
	select ARCH_RMOBILE
	select ARM_ERRATA_754322
	select RENESAS_INTC_IRQPIN

config ARCH_R8A73A4
	bool "ARM32 Platform support for R-Mobile APE6"
	select ARCH_RMOBILE
	select ARM_ERRATA_798181 if SMP
	select ARM_ERRATA_814220
	select HAVE_ARM_ARCH_TIMER
	select RENESAS_IRQC

config ARCH_R7S72100
	bool "ARM32 Platform support for RZ/A1H"
	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 "ARM32 Platform support for RZ/A2"
	select PM
	select PM_GENERIC_DOMAINS
	select RENESAS_OSTM
	select RENESAS_RZA1_IRQC

config ARCH_R8A77470
	bool "ARM32 Platform support for RZ/G1C"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_814220
	select SYSC_R8A77470

config ARCH_R8A7745
	bool "ARM32 Platform support for RZ/G1E"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_814220
	select SYSC_R8A7745

config ARCH_R8A7742
	bool "ARM32 Platform support for RZ/G1H"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select ARM_ERRATA_814220
	select SYSC_R8A7742

config ARCH_R8A7743
	bool "ARM32 Platform support for RZ/G1M"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select SYSC_R8A7743

config ARCH_R8A7744
	bool "ARM32 Platform support for RZ/G1N"
	select ARCH_RCAR_GEN2
	select ARM_ERRATA_798181 if SMP
	select SYSC_R8A7743

config ARCH_R9A06G032
	bool "ARM32 Platform support for RZ/N1D"
	select ARCH_RZN1
	select ARM_ERRATA_814220

config ARCH_SH73A0
	bool "ARM32 Platform support for SH-Mobile AG5"
	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_R8A77995
	bool "ARM64 Platform support for R-Car D3"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77995
	help
	  This enables support for the Renesas R-Car D3 SoC.
	  This includes different gradings like R-Car D3e.

config ARCH_R8A77990
	bool "ARM64 Platform support for R-Car E3"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77990
	help
	  This enables support for the Renesas R-Car E3 SoC.
	  This includes different gradings like R-Car E3e.

config ARCH_R8A77951
	bool "ARM64 Platform support for R-Car H3 ES2.0+"
	select ARCH_RCAR_GEN3
	select SYSC_R8A7795
	help
	  This enables support for the Renesas R-Car H3 SoC (revisions 2.0 and
	  later).
	  This includes different gradings like R-Car H3e, H3e-2G, and H3Ne.

config ARCH_R8A77965
	bool "ARM64 Platform support for R-Car M3-N"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77965
	help
	  This enables support for the Renesas R-Car M3-N SoC.
	  This includes different gradings like R-Car M3Ne and M3Ne-2G.

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

config ARCH_R8A77961
	bool "ARM64 Platform support for R-Car M3-W+"
	select ARCH_RCAR_GEN3
	select SYSC_R8A77961
	help
	  This enables support for the Renesas R-Car M3-W+ SoC.
	  This includes different gradings like R-Car M3e and M3e-2G.

config ARCH_R8A779F0
	bool "ARM64 Platform support for R-Car S4-8"
	select ARCH_RCAR_GEN4
	select SYSC_R8A779F0
	help
	  This enables support for the Renesas R-Car S4-8 SoC.

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

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

config ARCH_R8A779A0
	bool "ARM64 Platform support for R-Car V3U"
	select ARCH_RCAR_GEN4
	select SYSC_R8A779A0
	help
	  This enables support for the Renesas R-Car V3U SoC.

config ARCH_R8A779G0
	bool "ARM64 Platform support for R-Car V4H"
	select ARCH_RCAR_GEN4
	select SYSC_R8A779G0
	help
	  This enables support for the Renesas R-Car V4H SoC.

config ARCH_R8A779H0
	bool "ARM64 Platform support for R-Car V4M"
	select ARCH_RCAR_GEN4
	select SYSC_R8A779H0
	help
	  This enables support for the Renesas R-Car V4M SoC.

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

config ARCH_R8A774E1
	bool "ARM64 Platform support for RZ/G2H"
	select ARCH_RCAR_GEN3
	select SYSC_R8A774E1
	help
	  This enables support for the Renesas RZ/G2H SoC.

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

config ARCH_R8A774B1
	bool "ARM64 Platform support for RZ/G2N"
	select ARCH_RCAR_GEN3
	select SYSC_R8A774B1
	help
	  This enables support for the Renesas RZ/G2N SoC.

config ARCH_R9A07G043
	bool "ARM64 Platform support for RZ/G2UL"
	select ARCH_RZG2L
	help
	  This enables support for the Renesas RZ/G2UL SoC variants.

config ARCH_R9A07G044
	bool "ARM64 Platform support for RZ/G2L"
	select ARCH_RZG2L
	help
	  This enables support for the Renesas RZ/G2L SoC variants.

config ARCH_R9A07G054
	bool "ARM64 Platform support for RZ/V2L"
	select ARCH_RZG2L
	help
	  This enables support for the Renesas RZ/V2L SoC variants.

config ARCH_R9A08G045
	bool "ARM64 Platform support for RZ/G3S"
	select ARCH_RZG2L
	help
	  This enables support for the Renesas RZ/G3S SoC variants.

config ARCH_R9A09G011
	bool "ARM64 Platform support for RZ/V2M"
	select PM
	select PM_GENERIC_DOMAINS
	select PWC_RZV2M
	help
	  This enables support for the Renesas RZ/V2M SoC.

endif # ARM64

if RISCV

config ARCH_R9A07G043
	bool "RISC-V Platform support for RZ/Five"
	depends on NONPORTABLE
	depends on !DMA_DIRECT_REMAP
	depends on RISCV_ALTERNATIVE
	depends on !RISCV_ISA_ZICBOM
	depends on RISCV_SBI
	select ARCH_RZG2L
	select AX45MP_L2_CACHE
	select DMA_GLOBAL_POOL
	select ERRATA_ANDES
	select ERRATA_ANDES_CMO
	help
	  This enables support for the Renesas RZ/Five SoC.

endif # RISCV

config PWC_RZV2M
	bool "Renesas RZ/V2M PWC support" if COMPILE_TEST

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

endif # SOC_RENESAS
