linux/drivers/pinctrl
Magnus Damm abc60d4837 pinctrl: sh-pfc: Rework PFC GPIO support
The sh-pfc pinctrl driver is currently handling SoC-specific
PFC hardware blocks on ARM64, ARM and SH architectures.

For older SoCs using SH cores and some 32-bit ARM SoCs the PFC
hardware also provides GPIO functionality. On the majority of
32-bit ARM SoCs from Renesas and so far all ARM64 SoCs the GPIO
feature is provided by separate hardware blocks.

So far GPIO support in the PFC driver has been compiled-in for
the majority of the SoCs, but with this patch applied the SoCs
with PFC support may select from one of the following:
 - CONFIG_PINCTRL_SH_PFC - Used if PFC lacks GPIO hardware
 - CONFIG_PINCTRL_SH_PFC_GPIO - Used if PFC includes GPIO support

This patch results in the following changes:
 - The GPIO functionality is only compiled-in on relevant SoCs
 - The number of lines of code is reduced

Build tested using the following configurations:
 - r8a7795 -> CONFIG_PINCTRL_SH_PFC_GPIO=n -> OK (ARM64)
 - r8a7790 -> CONFIG_PINCTRL_SH_PFC_GPIO=n -> OK (ARM)
 - r8a7790 + r8a7740 -> CONFIG_PINCTRL_SH_PFC_GPIO=y -> OK (ARM)
 - r8a7740 -> CONFIG_PINCTRL_SH_PFC_GPIO=y -> OK (ARM)
 - sh7751 -> CONFIG_PINCTRL_SH_PFC=n -> OK (SH rts7751r2d1)
 - sh7724 -> CONFIG_PINCTRL_SH_PFC_GPIO=y -> OK (SH ecovec24)

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
[geert: s/def_bool n/bool/]
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2016-02-18 09:30:58 +01:00
..
bcm GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
berlin pinctrl: berlin: guard sub-directory with CONFIG_PINCTRL_BERLIN 2015-12-01 10:39:26 +01:00
freescale pinctrl: freescale: add ZERO_OFFSET_VALID flag for vf610 pinctrl 2015-12-10 18:01:50 +01:00
intel pinctrl: intel: use gpiochip data pointer 2016-01-05 14:14:49 +01:00
mediatek GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
meson pinctrl: meson: use gpiochip data pointer 2016-01-05 14:14:50 +01:00
mvebu pinctrl: mvebu: complain about missing group after checking variant 2015-12-09 16:15:07 +01:00
nomadik pinctrl: abx500: use gpiochip data pointer 2016-01-05 14:14:51 +01:00
pxa pinctrl: pxa: pxa2xx: add pin control skeleton 2015-12-15 14:07:06 +01:00
qcom GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
samsung GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
sh-pfc pinctrl: sh-pfc: Rework PFC GPIO support 2016-02-18 09:30:58 +01:00
sirf GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
spear GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
sunxi GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
uniphier pinctrl: uniphier: rework UniPhier pinctrl entries in Kconfig 2015-12-01 10:36:28 +01:00
vt8500 pinctrl: vt8500-wmt: use gpiochip data pointer 2016-01-05 14:15:08 +01:00
core.c drivers/pinctrl: Add the concept of an "init" state 2015-10-27 11:24:23 +01:00
core.h pinctrl: Don't just pretend to protect pinctrl_maps, do it for real 2015-05-06 16:24:28 +02:00
devicetree.c pinctrl: simplify of_pinctrl_get() 2015-07-16 09:39:03 +02:00
devicetree.h
Kconfig Linux 4.4-rc5 2015-12-17 14:57:46 +01:00
Makefile pinctrl: activate pxa architecture 2015-12-10 16:14:03 +01:00
pinconf-generic.c pinctrl: update document for pinconf_generic_parse_dt_config 2015-12-01 11:11:05 +01:00
pinconf.c pinctrl: pinconf: remove needless loop 2015-10-31 22:13:07 +01:00
pinconf.h pinctrl: pinconf-generic: Allow driver to specify DT params 2015-01-11 22:32:19 +01:00
pinctrl-adi2-bf54x.c pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-adi2-bf60x.c added tabs instead of spaces 2015-07-16 09:39:01 +02:00
pinctrl-adi2.c GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
pinctrl-adi2.h pinctrl: pinctrl-adi: combine multiple groups of one function together 2014-02-25 10:49:13 +01:00
pinctrl-amd.c pinctrl: amd: use gpiochip data pointer 2016-01-05 14:14:52 +01:00
pinctrl-amd.h Fix inconsistent spinlock of AMD GPIO driver which can be 2015-04-07 11:36:49 +02:00
pinctrl-as3722.c pinctrl: as3722: use gpiochip data pointer 2016-01-05 14:14:53 +01:00
pinctrl-at91-pio4.c GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
pinctrl-at91.c GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
pinctrl-at91.h pinctrl: at91: use own header 2014-10-29 09:28:35 +01:00
pinctrl-coh901.c pinctrl: u300: use gpiochip data pointer 2016-01-05 14:14:54 +01:00
pinctrl-coh901.h
pinctrl-digicolor.c pinctrl: digicolor: use gpiochip data pointer 2016-01-05 14:14:55 +01:00
pinctrl-falcon.c staging: drivers: pinctrl: Fixed checkpatch.pl warnings 2015-01-21 11:02:26 +01:00
pinctrl-lantiq.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-lantiq.h pinctrl/lantiq: introduce new dedicated devicetree bindings 2015-11-30 13:12:07 +01:00
pinctrl-lpc18xx.c This is the bulk of pin control changes for the v4.3 development 2015-09-04 10:22:09 -07:00
pinctrl-palmas.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-pistachio.c pinctrl: pistachio: use gpiochip data pointer 2016-01-05 14:14:55 +01:00
pinctrl-rockchip.c GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
pinctrl-single.c pinctrl: Delete unnecessary checks 2015-11-17 11:49:50 +01:00
pinctrl-st.c pinctrl: st: use gpiochip data pointer 2016-01-05 14:14:57 +01:00
pinctrl-tb10x.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-tegra-xusb.c pinctrl-tegra: add missing of_node_put 2015-12-22 13:44:00 +01:00
pinctrl-tegra.c pinctrl-tegra: add missing of_node_put 2015-12-22 13:44:00 +01:00
pinctrl-tegra.h pinctrl: tegra: use signed bitfields for optional fields 2015-03-19 09:20:17 +01:00
pinctrl-tegra20.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra30.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra114.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra124.c pinctrl: tegra: some bits move between registers 2015-03-09 18:10:58 +01:00
pinctrl-tegra210.c pinctrl: tegra: add a driver for Tegra210 2015-03-09 18:10:59 +01:00
pinctrl-tz1090-pdc.c pinctrl: tz1090-pdc: Remove unneded semicolons 2015-10-02 04:06:46 -07:00
pinctrl-tz1090.c pinctrl: tz1090: Remove unneded semicolons 2015-10-02 04:06:46 -07:00
pinctrl-u300.c pinctrl: make pinctrl_register() return proper error code 2015-06-10 14:49:52 +02:00
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c GPIO bulk updates for the v4.5 kernel cycle: 2016-01-17 12:32:01 -08:00
pinctrl-zynq.c pinctrl: zynq: fix UTF-8 errors 2015-10-31 22:12:59 +01:00
pinmux.c pinctrl: join lines that can be a single line within 80 columns 2015-09-14 09:13:43 +02:00
pinmux.h