Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pinctrl: renesas: Reintroduce SH_PFC for common sh-pfc code

Most, but not all, Renesas pin control drivers use the "sh-pfc" pin
control framework. As of commit 8449bfa9e6a9f7ec ("pinctrl: sh-pfc:
Collect Renesas related CONFIGs in one place"), the code for this
framework is always built when Renesas SoC pin control support is
enabled, regardless of whether the enabled pin control drivers need it
or not.

Fix this by reintroducing the CONFIG_SH_PFC symbol to control inclusion
of the "sh-pfc" framework and its dependencies, and selecting it when
needed.

This reduces kernel size of a typical RZ/A1 or RZ/A2 kernel by more than
6 resp. 11 KiB.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20200909131534.12897-4-geert+renesas@glider.be

+43 -11
+42 -10
drivers/pinctrl/renesas/Kconfig
··· 8 8 config PINCTRL_RENESAS 9 9 bool "Renesas SoC pin control support" if COMPILE_TEST && !(ARCH_RENESAS || SUPERH) 10 10 default y if ARCH_RENESAS || SUPERH 11 - select PINMUX 12 - select PINCONF 13 - select GENERIC_PINCONF 14 11 select PINCTRL_PFC_EMEV2 if ARCH_EMEV2 15 12 select PINCTRL_PFC_R8A73A4 if ARCH_R8A73A4 16 13 select PINCTRL_PFC_R8A7740 if ARCH_R8A7740 ··· 52 55 help 53 56 This enables pin control drivers for Renesas SuperH and ARM platforms 54 57 55 - config PINCTRL_SH_PFC_GPIO 56 - select GPIOLIB 58 + config PINCTRL_SH_PFC 57 59 bool 60 + select GENERIC_PINCONF 61 + select PINMUX 62 + select PINCONF 63 + help 64 + This enables common pin control functionality for EMMA Mobile, R-Car, 65 + R-Mobile, RZ/G, SH, and SH-Mobile platforms. 66 + 67 + config PINCTRL_SH_PFC_GPIO 68 + bool 69 + select GPIOLIB 70 + select PINCTRL_SH_PFC 58 71 help 59 72 This enables pin control and GPIO drivers for SH/SH Mobile platforms 60 73 61 74 config PINCTRL_SH_FUNC_GPIO 62 - select PINCTRL_SH_PFC_GPIO 63 75 bool 76 + select PINCTRL_SH_PFC_GPIO 64 77 help 65 78 This enables legacy function GPIOs for SH platforms 66 79 67 80 config PINCTRL_PFC_EMEV2 68 81 bool "pin control support for Emma Mobile EV2" if COMPILE_TEST 82 + select PINCTRL_SH_PFC 69 83 70 84 config PINCTRL_PFC_R8A77995 71 85 bool "pin control support for R-Car D3" if COMPILE_TEST 86 + select PINCTRL_SH_PFC 72 87 73 88 config PINCTRL_PFC_R8A7794 74 89 bool "pin control support for R-Car E2" if COMPILE_TEST 90 + select PINCTRL_SH_PFC 75 91 76 92 config PINCTRL_PFC_R8A77990 77 93 bool "pin control support for R-Car E3" if COMPILE_TEST 94 + select PINCTRL_SH_PFC 78 95 79 96 config PINCTRL_PFC_R8A7779 80 97 bool "pin control support for R-Car H1" if COMPILE_TEST 98 + select PINCTRL_SH_PFC 81 99 82 100 config PINCTRL_PFC_R8A7790 83 101 bool "pin control support for R-Car H2" if COMPILE_TEST 102 + select PINCTRL_SH_PFC 84 103 85 104 config PINCTRL_PFC_R8A77950 86 105 bool "pin control support for R-Car H3 ES1.x" if COMPILE_TEST 106 + select PINCTRL_SH_PFC 87 107 88 108 config PINCTRL_PFC_R8A77951 89 109 bool "pin control support for R-Car H3 ES2.0+" if COMPILE_TEST 110 + select PINCTRL_SH_PFC 90 111 91 112 config PINCTRL_PFC_R8A7778 92 113 bool "pin control support for R-Car M1A" if COMPILE_TEST 114 + select PINCTRL_SH_PFC 93 115 94 116 config PINCTRL_PFC_R8A7793 95 117 bool "pin control support for R-Car M2-N" if COMPILE_TEST 118 + select PINCTRL_SH_PFC 96 119 97 120 config PINCTRL_PFC_R8A7791 98 121 bool "pin control support for R-Car M2-W" if COMPILE_TEST 122 + select PINCTRL_SH_PFC 99 123 100 124 config PINCTRL_PFC_R8A77965 101 125 bool "pin control support for R-Car M3-N" if COMPILE_TEST 126 + select PINCTRL_SH_PFC 102 127 103 128 config PINCTRL_PFC_R8A77960 104 129 bool "pin control support for R-Car M3-W" if COMPILE_TEST 130 + select PINCTRL_SH_PFC 105 131 106 132 config PINCTRL_PFC_R8A77961 107 133 bool "pin control support for R-Car M3-W+" if COMPILE_TEST 134 + select PINCTRL_SH_PFC 108 135 109 136 config PINCTRL_PFC_R8A7792 110 137 bool "pin control support for R-Car V2H" if COMPILE_TEST 138 + select PINCTRL_SH_PFC 111 139 112 140 config PINCTRL_PFC_R8A77980 113 141 bool "pin control support for R-Car V3H" if COMPILE_TEST 142 + select PINCTRL_SH_PFC 114 143 115 144 config PINCTRL_PFC_R8A77970 116 145 bool "pin control support for R-Car V3M" if COMPILE_TEST 146 + select PINCTRL_SH_PFC 117 147 118 148 config PINCTRL_PFC_R8A7740 119 149 bool "pin control support for R-Mobile A1" if COMPILE_TEST ··· 154 130 bool "pin control support for RZ/A1" 155 131 depends on OF 156 132 depends on ARCH_R7S72100 || COMPILE_TEST 157 - select GPIOLIB 133 + select GENERIC_PINCONF 158 134 select GENERIC_PINCTRL_GROUPS 159 135 select GENERIC_PINMUX_FUNCTIONS 160 - select GENERIC_PINCONF 136 + select GPIOLIB 161 137 help 162 138 This selects pinctrl driver for Renesas RZ/A1 platforms. 163 139 ··· 165 141 bool "pin control support for RZ/A2" 166 142 depends on OF 167 143 depends on ARCH_R7S9210 || COMPILE_TEST 168 - select GPIOLIB 169 144 select GENERIC_PINCTRL_GROUPS 170 145 select GENERIC_PINMUX_FUNCTIONS 171 - select GENERIC_PINCONF 146 + select GPIOLIB 172 147 help 173 148 This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms. 174 149 175 150 config PINCTRL_PFC_R8A77470 176 151 bool "pin control support for RZ/G1C" if COMPILE_TEST 152 + select PINCTRL_SH_PFC 177 153 178 154 config PINCTRL_PFC_R8A7745 179 155 bool "pin control support for RZ/G1E" if COMPILE_TEST 156 + select PINCTRL_SH_PFC 180 157 181 158 config PINCTRL_PFC_R8A7742 182 159 bool "pin control support for RZ/G1H" if COMPILE_TEST 160 + select PINCTRL_SH_PFC 183 161 184 162 config PINCTRL_PFC_R8A7743 185 163 bool "pin control support for RZ/G1M" if COMPILE_TEST 164 + select PINCTRL_SH_PFC 186 165 187 166 config PINCTRL_PFC_R8A7744 188 167 bool "pin control support for RZ/G1N" if COMPILE_TEST 168 + select PINCTRL_SH_PFC 189 169 190 170 config PINCTRL_PFC_R8A774C0 191 171 bool "pin control support for RZ/G2E" if COMPILE_TEST 172 + select PINCTRL_SH_PFC 192 173 193 174 config PINCTRL_PFC_R8A774E1 194 175 bool "pin control support for RZ/G2H" if COMPILE_TEST 176 + select PINCTRL_SH_PFC 195 177 196 178 config PINCTRL_PFC_R8A774A1 197 179 bool "pin control support for RZ/G2M" if COMPILE_TEST 180 + select PINCTRL_SH_PFC 198 181 199 182 config PINCTRL_PFC_R8A774B1 200 183 bool "pin control support for RZ/G2N" if COMPILE_TEST 184 + select PINCTRL_SH_PFC 201 185 202 186 config PINCTRL_RZN1 203 187 bool "pin control support for RZ/N1"
+1 -1
drivers/pinctrl/renesas/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - obj-$(CONFIG_PINCTRL_RENESAS) += core.o pinctrl.o 2 + obj-$(CONFIG_PINCTRL_SH_PFC) += core.o pinctrl.o 3 3 obj-$(CONFIG_PINCTRL_SH_PFC_GPIO) += gpio.o 4 4 obj-$(CONFIG_PINCTRL_PFC_EMEV2) += pfc-emev2.o 5 5 obj-$(CONFIG_PINCTRL_PFC_R8A73A4) += pfc-r8a73a4.o