mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
Renesas R-Car MFIS offers multiple features but most importantly mailboxes and hwspinlocks. Because they share a common register space and a common register unprotection mechanism, a single driver was chosen to handle all dependencies. (MFD and auxiliary bus have been tried as well, but they failed because of circular dependencies.) In this first step, the driver implements common register access and a mailbox controller. hwspinlock support will be added incrementally, once the subsystem allows out-of-directory drivers. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Jassi Brar <jassisinghbrar@gmail.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://patch.msgid.link/20260402112709.13002-3-wsa+renesas@sang-engineering.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
511 lines
12 KiB
Plaintext
511 lines
12 KiB
Plaintext
# 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
|
|
select SYS_SUPPORTS_SH_TMU
|
|
|
|
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_RCAR_GEN5
|
|
bool
|
|
select ARCH_RCAR_GEN4
|
|
|
|
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
|
|
select RZN1_IRQMUX if GPIO_DWAPB
|
|
|
|
if ARM && ARCH_RENESAS
|
|
|
|
#comment "Renesas ARM SoCs System Type"
|
|
|
|
config ARCH_EMEV2
|
|
bool "ARM32 Platform support for Emma Mobile EV2"
|
|
default ARCH_RENESAS
|
|
select HAVE_ARM_SCU if SMP
|
|
select SYS_SUPPORTS_EM_STI
|
|
|
|
config ARCH_R7S72100
|
|
bool "ARM32 Platform support for R7S72100 (RZ/A1H)"
|
|
default ARCH_RENESAS
|
|
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 R7S9210 (RZ/A2)"
|
|
default ARCH_RENESAS
|
|
select PM
|
|
select PM_GENERIC_DOMAINS
|
|
select RENESAS_OSTM
|
|
select RENESAS_RZA1_IRQC
|
|
|
|
config ARCH_R8A73A4
|
|
bool "ARM32 Platform support for R8A73A4 (R-Mobile APE6)"
|
|
default ARCH_RENESAS
|
|
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 "ARM32 Platform support for R8A7740 (R-Mobile A1)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RMOBILE
|
|
select ARM_ERRATA_754322
|
|
select RENESAS_INTC_IRQPIN
|
|
|
|
config ARCH_R8A7742
|
|
bool "ARM32 Platform support for R8A7742 (RZ/G1H)"
|
|
default ARCH_RENESAS
|
|
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 R8A7743 (RZ/G1M)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_798181 if SMP
|
|
select SYSC_R8A7743
|
|
|
|
config ARCH_R8A7744
|
|
bool "ARM32 Platform support for R8A7744 (RZ/G1N)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_798181 if SMP
|
|
select SYSC_R8A7743
|
|
|
|
config ARCH_R8A7745
|
|
bool "ARM32 Platform support for R8A7745 (RZ/G1E)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_814220
|
|
select SYSC_R8A7745
|
|
|
|
config ARCH_R8A77470
|
|
bool "ARM32 Platform support for R8A77470 (RZ/G1C)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_814220
|
|
select SYSC_R8A77470
|
|
|
|
config ARCH_R8A7778
|
|
bool "ARM32 Platform support for R8A7778 (R-Car M1A)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN1
|
|
select ARM_ERRATA_754322
|
|
|
|
config ARCH_R8A7779
|
|
bool "ARM32 Platform support for R8A7779 (R-Car H1)"
|
|
default ARCH_RENESAS
|
|
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 R8A7790 (R-Car H2)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_798181 if SMP
|
|
select ARM_ERRATA_814220
|
|
select I2C
|
|
select SYSC_R8A7790
|
|
|
|
config ARCH_R8A7791
|
|
bool "ARM32 Platform support for R8A7791 (R-Car M2-W)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_798181 if SMP
|
|
select I2C
|
|
select SYSC_R8A7791
|
|
|
|
config ARCH_R8A7792
|
|
bool "ARM32 Platform support for R8A7792 (R-Car V2H)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_798181 if SMP
|
|
select SYSC_R8A7792
|
|
|
|
config ARCH_R8A7793
|
|
bool "ARM32 Platform support for R8A7793 (R-Car M2-N)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_798181 if SMP
|
|
select I2C
|
|
select SYSC_R8A7791
|
|
|
|
config ARCH_R8A7794
|
|
bool "ARM32 Platform support for R8A7794 (R-Car E2)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN2
|
|
select ARM_ERRATA_814220
|
|
select SYSC_R8A7794
|
|
|
|
config ARCH_R9A06G032
|
|
bool "ARM32 Platform support for R9A06G032 (RZ/N1D)"
|
|
default ARCH_RENESAS
|
|
select ARCH_RZN1
|
|
select ARM_ERRATA_814220
|
|
|
|
config ARCH_SH73A0
|
|
bool "ARM32 Platform support for SH73A0 (SH-Mobile AG5)"
|
|
default ARCH_RENESAS
|
|
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 "ARM64 Platform support for R8A774A1 (RZ/G2M)"
|
|
default y if ARCH_RENESAS
|
|
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 R8A774B1 (RZ/G2N)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RCAR_GEN3
|
|
select SYSC_R8A774B1
|
|
help
|
|
This enables support for the Renesas RZ/G2N SoC.
|
|
|
|
config ARCH_R8A774C0
|
|
bool "ARM64 Platform support for R8A774C0 (RZ/G2E)"
|
|
default y if ARCH_RENESAS
|
|
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 R8A774E1 (RZ/G2H)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RCAR_GEN3
|
|
select SYSC_R8A774E1
|
|
help
|
|
This enables support for the Renesas RZ/G2H SoC.
|
|
|
|
config ARCH_R8A77951
|
|
bool "ARM64 Platform support for R8A77951 (R-Car H3 ES2.0+)"
|
|
default y if ARCH_RENESAS
|
|
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_R8A77960
|
|
bool "ARM64 Platform support for R8A77960 (R-Car M3-W)"
|
|
default y if ARCH_RENESAS
|
|
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 R8A77961 (R-Car M3-W+)"
|
|
default y if ARCH_RENESAS
|
|
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_R8A77965
|
|
bool "ARM64 Platform support for R8A77965 (R-Car M3-N)"
|
|
default y if ARCH_RENESAS
|
|
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_R8A77970
|
|
bool "ARM64 Platform support for R8A77970 (R-Car V3M)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RCAR_GEN3
|
|
select SYSC_R8A77970
|
|
help
|
|
This enables support for the Renesas R-Car V3M SoC.
|
|
|
|
config ARCH_R8A77980
|
|
bool "ARM64 Platform support for R8A77980 (R-Car V3H)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RCAR_GEN3
|
|
select SYSC_R8A77980
|
|
help
|
|
This enables support for the Renesas R-Car V3H SoC.
|
|
|
|
config ARCH_R8A77990
|
|
bool "ARM64 Platform support for R8A77990 (R-Car E3)"
|
|
default y if ARCH_RENESAS
|
|
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_R8A77995
|
|
bool "ARM64 Platform support for R8A77995 (R-Car D3)"
|
|
default y if ARCH_RENESAS
|
|
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_R8A779A0
|
|
bool "ARM64 Platform support for R8A779A0 (R-Car V3U)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RCAR_GEN4
|
|
select SYSC_R8A779A0
|
|
help
|
|
This enables support for the Renesas R-Car V3U SoC.
|
|
|
|
config ARCH_R8A779F0
|
|
bool "ARM64 Platform support for R8A779F0 (R-Car S4-8)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RCAR_GEN4
|
|
select SYSC_R8A779F0
|
|
help
|
|
This enables support for the Renesas R-Car S4-8 SoC.
|
|
|
|
config ARCH_R8A779G0
|
|
bool "ARM64 Platform support for R8A779G0 (R-Car V4H)"
|
|
default y if ARCH_RENESAS
|
|
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 R8A779H0 (R-Car V4M)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RCAR_GEN4
|
|
select SYSC_R8A779H0
|
|
help
|
|
This enables support for the Renesas R-Car V4M SoC.
|
|
|
|
config ARCH_R8A78000
|
|
bool "ARM64 Platform support for R8A78000 (R-Car X5H)"
|
|
default y if ARCH_RENESAS
|
|
default ARCH_RENESAS
|
|
select ARCH_RCAR_GEN5
|
|
help
|
|
This enables support for the Renesas R-Car X5H SoC.
|
|
|
|
config ARCH_R9A07G043
|
|
bool "ARM64 Platform support for R9A07G043U (RZ/G2UL)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RZG2L
|
|
help
|
|
This enables support for the Renesas RZ/G2UL SoC variants.
|
|
|
|
config ARCH_R9A07G044
|
|
bool "ARM64 Platform support for R9A07G044 (RZ/G2L)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RZG2L
|
|
help
|
|
This enables support for the Renesas RZ/G2L SoC variants.
|
|
|
|
config ARCH_R9A07G054
|
|
bool "ARM64 Platform support for R9A07G054 (RZ/V2L)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RZG2L
|
|
help
|
|
This enables support for the Renesas RZ/V2L SoC variants.
|
|
|
|
config ARCH_R9A08G045
|
|
bool "ARM64 Platform support for R9A08G045 (RZ/G3S)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RZG2L
|
|
select SYSC_R9A08G045
|
|
help
|
|
This enables support for the Renesas RZ/G3S SoC variants.
|
|
|
|
config ARCH_R9A08G046
|
|
bool "ARM64 Platform support for R9A08G046 (RZ/G3L)"
|
|
default y if ARCH_RENESAS
|
|
select ARCH_RZG2L
|
|
select SYSC_R9A08G046
|
|
help
|
|
This enables support for the Renesas RZ/G3L SoC variants.
|
|
|
|
config ARCH_R9A09G011
|
|
bool "ARM64 Platform support for R9A09G011 (RZ/V2M)"
|
|
default y if ARCH_RENESAS
|
|
select PM
|
|
select PM_GENERIC_DOMAINS
|
|
select PWC_RZV2M
|
|
help
|
|
This enables support for the Renesas RZ/V2M SoC.
|
|
|
|
config ARCH_R9A09G047
|
|
bool "ARM64 Platform support for R9A09G047 (RZ/G3E)"
|
|
default y if ARCH_RENESAS
|
|
select SYS_R9A09G047
|
|
help
|
|
This enables support for the Renesas RZ/G3E SoC variants.
|
|
|
|
config ARCH_R9A09G056
|
|
bool "ARM64 Platform support for R9A09G056 (RZ/V2N)"
|
|
default y if ARCH_RENESAS
|
|
select SYS_R9A09G056
|
|
help
|
|
This enables support for the Renesas RZ/V2N SoC variants.
|
|
|
|
config ARCH_R9A09G057
|
|
bool "ARM64 Platform support for R9A09G057 (RZ/V2H(P))"
|
|
default y if ARCH_RENESAS
|
|
select RENESAS_RZV2H_ICU
|
|
select SYS_R9A09G057
|
|
help
|
|
This enables support for the Renesas RZ/V2H(P) SoC variants.
|
|
|
|
config ARCH_R9A09G077
|
|
bool "ARM64 Platform support for R9A09G077 (RZ/T2H)"
|
|
default y if ARCH_RENESAS
|
|
select RENESAS_RZT2H_ICU
|
|
help
|
|
This enables support for the Renesas RZ/T2H SoC variants.
|
|
|
|
config ARCH_R9A09G087
|
|
bool "ARM64 Platform support for R9A09G087 (RZ/N2H)"
|
|
default y if ARCH_RENESAS
|
|
select RENESAS_RZT2H_ICU
|
|
help
|
|
This enables support for the Renesas RZ/N2H SoC variants.
|
|
|
|
endif # ARM64
|
|
|
|
if RISCV
|
|
|
|
config ARCH_R9A07G043
|
|
bool "RISC-V Platform support for R9A07G043F (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 CACHEMAINT_FOR_DMA
|
|
select DMA_GLOBAL_POOL
|
|
select ERRATA_ANDES
|
|
select ERRATA_ANDES_CMO
|
|
help
|
|
This enables support for the Renesas RZ/Five SoC.
|
|
|
|
endif # RISCV
|
|
|
|
config RCAR_MFIS
|
|
tristate "Renesas R-Car MFIS driver"
|
|
depends on ARCH_RENESAS || COMPILE_TEST
|
|
depends on MAILBOX
|
|
help
|
|
Select this option to enable the Renesas R-Car MFIS core driver for
|
|
the MFIS device found on SoCs like R-Car. On families like Gen5, this
|
|
is needed to communicate with the SCP.
|
|
|
|
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
|
|
|
|
config RZN1_IRQMUX
|
|
bool "Renesas RZ/N1 GPIO IRQ multiplexer support" if COMPILE_TEST
|
|
|
|
config SYSC_RZ
|
|
bool "System controller for RZ SoCs" if COMPILE_TEST
|
|
select MFD_SYSCON
|
|
|
|
config SYSC_R9A08G045
|
|
bool "Renesas System controller support for R9A08G045 (RZ/G3S)" if COMPILE_TEST
|
|
select SYSC_RZ
|
|
|
|
config SYSC_R9A08G046
|
|
bool "Renesas System controller support for R9A08G046 (RZ/G3L)" if COMPILE_TEST
|
|
select SYSC_RZ
|
|
|
|
config SYS_R9A09G047
|
|
bool "Renesas System controller support for R9A09G047 (RZ/G3E)" if COMPILE_TEST
|
|
select SYSC_RZ
|
|
|
|
config SYS_R9A09G056
|
|
bool "Renesas System controller support for R9A09G056 (RZ/V2N)" if COMPILE_TEST
|
|
select SYSC_RZ
|
|
|
|
config SYS_R9A09G057
|
|
bool "Renesas System controller support for R9A09G057 (RZ/V2H)" if COMPILE_TEST
|
|
select SYSC_RZ
|
|
|
|
endif # SOC_RENESAS
|