mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:44:45 +01:00
The Renesas RZ/T2H (R9A09G077) and Renesas RZ/N2H (R9A09G087) SoCs have IRQ-capable pins handled by the ICU, which forwards them to the GIC. The ICU supports 16 IRQ lines, the pins map to these lines arbitrarily, and the mapping is not configurable. Add a GPIO IRQ chip to the pin controller that can be used to configure these pins as IRQ lines. The pin controller places the requested pins into IRQ function, disabling GPIO mode. A hierarchical IRQ domain is used to forward other functionality to the parent IRQ domain, the ICU. The ICU does level translation and then forwards other functionality to the GIC. Wakeup capability is implemented by placing the entire pin controller on the wakeup path if any pins are requested to be wakeup-capable. Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com> Reviewed-by: Linus Walleij <linusw@kernel.org> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://patch.msgid.link/20260109143910.645628-2-cosmin-gabriel.tanislav.xa@renesas.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
331 lines
9.9 KiB
Text
331 lines
9.9 KiB
Text
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Renesas SH and SH Mobile PINCTRL drivers
|
|
#
|
|
|
|
menu "Renesas pinctrl drivers"
|
|
|
|
config PINCTRL_RENESAS
|
|
bool "Renesas SoC pin control support" if COMPILE_TEST && !(ARCH_RENESAS || SUPERH)
|
|
default y if ARCH_RENESAS || SUPERH
|
|
select PINCTRL_PFC_EMEV2 if ARCH_EMEV2
|
|
select PINCTRL_PFC_R8A73A4 if ARCH_R8A73A4
|
|
select PINCTRL_PFC_R8A7740 if ARCH_R8A7740
|
|
select PINCTRL_PFC_R8A7742 if ARCH_R8A7742
|
|
select PINCTRL_PFC_R8A7743 if ARCH_R8A7743
|
|
select PINCTRL_PFC_R8A7744 if ARCH_R8A7744
|
|
select PINCTRL_PFC_R8A7745 if ARCH_R8A7745
|
|
select PINCTRL_PFC_R8A77470 if ARCH_R8A77470
|
|
select PINCTRL_PFC_R8A774A1 if ARCH_R8A774A1
|
|
select PINCTRL_PFC_R8A774B1 if ARCH_R8A774B1
|
|
select PINCTRL_PFC_R8A774C0 if ARCH_R8A774C0
|
|
select PINCTRL_PFC_R8A774E1 if ARCH_R8A774E1
|
|
select PINCTRL_PFC_R8A7778 if ARCH_R8A7778
|
|
select PINCTRL_PFC_R8A7779 if ARCH_R8A7779
|
|
select PINCTRL_PFC_R8A7790 if ARCH_R8A7790
|
|
select PINCTRL_PFC_R8A7791 if ARCH_R8A7791
|
|
select PINCTRL_PFC_R8A7792 if ARCH_R8A7792
|
|
select PINCTRL_PFC_R8A7793 if ARCH_R8A7793
|
|
select PINCTRL_PFC_R8A7794 if ARCH_R8A7794
|
|
select PINCTRL_PFC_R8A77951 if ARCH_R8A77951
|
|
select PINCTRL_PFC_R8A77960 if ARCH_R8A77960
|
|
select PINCTRL_PFC_R8A77961 if ARCH_R8A77961
|
|
select PINCTRL_PFC_R8A77965 if ARCH_R8A77965
|
|
select PINCTRL_PFC_R8A77970 if ARCH_R8A77970
|
|
select PINCTRL_PFC_R8A77980 if ARCH_R8A77980
|
|
select PINCTRL_PFC_R8A77990 if ARCH_R8A77990
|
|
select PINCTRL_PFC_R8A77995 if ARCH_R8A77995
|
|
select PINCTRL_PFC_R8A779A0 if ARCH_R8A779A0
|
|
select PINCTRL_PFC_R8A779F0 if ARCH_R8A779F0
|
|
select PINCTRL_PFC_R8A779G0 if ARCH_R8A779G0
|
|
select PINCTRL_PFC_R8A779H0 if ARCH_R8A779H0
|
|
select PINCTRL_RZG2L if ARCH_RZG2L
|
|
select PINCTRL_RZV2M if ARCH_R9A09G011
|
|
select PINCTRL_RZG2L if ARCH_R9A09G047
|
|
select PINCTRL_RZG2L if ARCH_R9A09G056
|
|
select PINCTRL_RZG2L if ARCH_R9A09G057
|
|
select PINCTRL_RZT2H if ARCH_R9A09G077
|
|
select PINCTRL_RZT2H if ARCH_R9A09G087
|
|
select PINCTRL_PFC_SH7203 if CPU_SUBTYPE_SH7203
|
|
select PINCTRL_PFC_SH7264 if CPU_SUBTYPE_SH7264
|
|
select PINCTRL_PFC_SH7269 if CPU_SUBTYPE_SH7269
|
|
select PINCTRL_PFC_SH73A0 if ARCH_SH73A0
|
|
select PINCTRL_PFC_SH7720 if CPU_SUBTYPE_SH7720
|
|
select PINCTRL_PFC_SH7722 if CPU_SUBTYPE_SH7722
|
|
select PINCTRL_PFC_SH7723 if CPU_SUBTYPE_SH7723
|
|
select PINCTRL_PFC_SH7724 if CPU_SUBTYPE_SH7724
|
|
select PINCTRL_PFC_SH7734 if CPU_SUBTYPE_SH7734
|
|
select PINCTRL_PFC_SH7757 if CPU_SUBTYPE_SH7757
|
|
select PINCTRL_PFC_SH7785 if CPU_SUBTYPE_SH7785
|
|
select PINCTRL_PFC_SH7786 if CPU_SUBTYPE_SH7786
|
|
select PINCTRL_PFC_SHX3 if CPU_SUBTYPE_SHX3
|
|
help
|
|
This enables pin control drivers for Renesas SuperH and ARM platforms
|
|
|
|
config PINCTRL_SH_PFC
|
|
bool
|
|
select GENERIC_PINCONF
|
|
select PINMUX
|
|
select PINCONF
|
|
help
|
|
This enables common pin control functionality for EMMA Mobile, R-Car,
|
|
R-Mobile, RZ/G, SH, and SH-Mobile platforms.
|
|
|
|
config PINCTRL_SH_PFC_GPIO
|
|
bool
|
|
select GPIOLIB
|
|
select PINCTRL_SH_PFC
|
|
help
|
|
This enables pin control and GPIO drivers for SH/SH Mobile platforms
|
|
|
|
config PINCTRL_SH_FUNC_GPIO
|
|
bool
|
|
select PINCTRL_SH_PFC_GPIO
|
|
help
|
|
This enables legacy function GPIOs for SH platforms
|
|
|
|
config PINCTRL_PFC_EMEV2
|
|
bool "pin control support for Emma Mobile EV2" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A73A4
|
|
bool "pin control support for R8A73A4 (R-Mobile APE6)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC_GPIO
|
|
|
|
config PINCTRL_PFC_R8A7740
|
|
bool "pin control support for R8A7740 (R-Mobile A1)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC_GPIO
|
|
|
|
config PINCTRL_PFC_R8A7742
|
|
bool "pin control support for R8A7742 (RZ/G1H)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7743
|
|
bool "pin control support for R8A7743 (RZ/G1M)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7744
|
|
bool "pin control support for R8A7744 (RZ/G1N)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7745
|
|
bool "pin control support for R8A7745 (RZ/G1E)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77470
|
|
bool "pin control support for R8A77470 (RZ/G1C)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A774A1
|
|
bool "pin control support for R8A774A1 (RZ/G2M)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A774B1
|
|
bool "pin control support for R8A774B1 (RZ/G2N)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A774C0
|
|
bool "pin control support for R8A774C0 (RZ/G2E)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A774E1
|
|
bool "pin control support for R8A774E1 (RZ/G2H)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7778
|
|
bool "pin control support for R8A7778 (R-Car M1A)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7779
|
|
bool "pin control support for R8A7779 (R-Car H1)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7790
|
|
bool "pin control support for R8A7790 (R-Car H2)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7791
|
|
bool "pin control support for R8A7791 (R-Car M2-W)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7792
|
|
bool "pin control support for R8A7792 (R-Car V2H)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7793
|
|
bool "pin control support for R8A7793 (R-Car M2-N)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A7794
|
|
bool "pin control support for R8A7794 (R-Car E2)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77951
|
|
bool "pin control support for R8A77951 (R-Car H3 ES2.0+)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77960
|
|
bool "pin control support for R8A77960 (R-Car M3-W)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77961
|
|
bool "pin control support for R8A77961 (R-Car M3-W+)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77965
|
|
bool "pin control support for R8A77965 (R-Car M3-N)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77970
|
|
bool "pin control support for R8A77970 (R-Car V3M)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77980
|
|
bool "pin control support for R8A77980 (R-Car V3H)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77990
|
|
bool "pin control support for R8A77990 (R-Car E3)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A77995
|
|
bool "pin control support for R8A77995 (R-Car D3)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A779A0
|
|
bool "pin control support for R8A779A0 (R-Car V3U)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A779F0
|
|
bool "pin control support for R8A779F0 (R-Car S4-8)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A779G0
|
|
bool "pin control support for R8A779G0 (R-Car V4H)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_R8A779H0
|
|
bool "pin control support for R8A779H0 (R-Car V4M)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC
|
|
|
|
config PINCTRL_PFC_SH7203
|
|
bool "pin control support for SH7203" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7264
|
|
bool "pin control support for SH7264" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7269
|
|
bool "pin control support for SH7269" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH73A0
|
|
bool "pin control support for SH73A0 (SH-Mobile AG5)" if COMPILE_TEST
|
|
select PINCTRL_SH_PFC_GPIO
|
|
select REGULATOR
|
|
|
|
config PINCTRL_PFC_SH7720
|
|
bool "pin control support for SH7720" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7722
|
|
bool "pin control support for SH7722" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7723
|
|
bool "pin control support for SH7723 (SH-Mobile R2)" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7724
|
|
bool "pin control support for SH7724 (SH-Mobile R2R)" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7734
|
|
bool "pin control support for SH7734" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7757
|
|
bool "pin control support for SH7757" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7785
|
|
bool "pin control support for SH7785" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SH7786
|
|
bool "pin control support for SH7786" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_PFC_SHX3
|
|
bool "pin control support for SH-X3" if COMPILE_TEST
|
|
select PINCTRL_SH_FUNC_GPIO
|
|
|
|
config PINCTRL_RZA1
|
|
bool "pin control support for RZ/A1"
|
|
depends on OF
|
|
depends on ARCH_R7S72100 || COMPILE_TEST
|
|
select GENERIC_PINCONF
|
|
select GENERIC_PINCTRL_GROUPS
|
|
select GENERIC_PINMUX_FUNCTIONS
|
|
select GPIOLIB
|
|
help
|
|
This selects pinctrl driver for Renesas RZ/A1 platforms.
|
|
|
|
config PINCTRL_RZA2
|
|
bool "pin control support for RZ/A2"
|
|
depends on OF
|
|
depends on ARCH_R7S9210 || COMPILE_TEST
|
|
select GENERIC_PINCTRL_GROUPS
|
|
select GENERIC_PINMUX_FUNCTIONS
|
|
select GPIOLIB
|
|
help
|
|
This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms.
|
|
|
|
config PINCTRL_RZG2L
|
|
bool "pin control support for RZ/{G2L,G2UL,V2L}" if COMPILE_TEST
|
|
depends on OF
|
|
select GPIOLIB
|
|
select GPIOLIB_IRQCHIP
|
|
select GENERIC_PINCTRL_GROUPS
|
|
select GENERIC_PINMUX_FUNCTIONS
|
|
select GENERIC_PINCONF
|
|
select IRQ_DOMAIN_HIERARCHY
|
|
help
|
|
This selects GPIO and pinctrl driver for Renesas RZ/{G2L,G2UL,V2L}
|
|
platforms.
|
|
|
|
config PINCTRL_RZN1
|
|
bool "pin control support for RZ/N1"
|
|
depends on OF
|
|
depends on ARCH_RZN1 || COMPILE_TEST
|
|
select GENERIC_PINCONF
|
|
select PINMUX
|
|
help
|
|
This selects pinctrl driver for Renesas RZ/N1 devices.
|
|
|
|
config PINCTRL_RZT2H
|
|
bool "pin control support for RZ/N2H and RZ/T2H" if COMPILE_TEST
|
|
depends on 64BIT && OF
|
|
select GPIOLIB
|
|
select GPIOLIB_IRQCHIP
|
|
select GENERIC_PINCTRL_GROUPS
|
|
select GENERIC_PINMUX_FUNCTIONS
|
|
select GENERIC_PINCONF
|
|
select IRQ_DOMAIN_HIERARCHY
|
|
help
|
|
This selects GPIO and pinctrl driver for Renesas RZ/T2H
|
|
platforms.
|
|
|
|
config PINCTRL_RZV2M
|
|
bool "pin control support for RZ/V2M" if COMPILE_TEST
|
|
depends on OF
|
|
select GPIOLIB
|
|
select GENERIC_PINCTRL_GROUPS
|
|
select GENERIC_PINMUX_FUNCTIONS
|
|
select GENERIC_PINCONF
|
|
help
|
|
This selects GPIO and pinctrl driver for Renesas RZ/V2M
|
|
platforms.
|
|
|
|
endmenu
|