linux/drivers/pinctrl
Mika Westerberg 919eb4756e pinctrl: intel: Add support for variable size pad groups
The Intel GPIO hardware has a concept of pad groups, which means 1 to 32
pads occupying their own GPI_IS, GPI_IE, PAD_OWN and so on registers. The
existing hardware has the same amount of pads in each pad group (except the
last one) so it is possible to use community->gpp_size to calculate start
offset of each register.

With the next generation SoCs the pad group size is not always the same
anymore which means we cannot use community->gpp_size for register offset
calculations directly.

To support variable size pad groups we introduce struct intel_padgroup that
can be filled in by the client drivers according the hardware pad group
layout. The core driver will always use these when it performs calculations
for pad register offsets. The core driver will automatically populate pad
groups based on community->gpp_size if the driver does not provide any.
This makes sure the existing drivers still work as expected.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Chuah, Kim Tatt <kim.tatt.chuah@intel.com>
Signed-off-by: Tan Jui Nee <jui.nee.tan@intel.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2017-06-09 13:01:35 +02:00
..
aspeed pinctrl: aspeed: g5: Add pinconf support 2017-04-24 14:55:50 +02:00
bcm pinctrl: bcm: cleanup Broadcom license headers 2017-06-09 11:09:43 +02:00
berlin Pin control bulk changes for the v4.11 kernel cycle: 2017-02-21 16:34:22 -08:00
freescale pinctrl: imx: add soc specific mux_mode mask and shift property 2017-05-22 11:05:19 +02:00
intel pinctrl: intel: Add support for variable size pad groups 2017-06-09 13:01:35 +02:00
mediatek pinctrl: mediatek: reuse pinctrl driver for mt7623 2017-05-22 10:39:25 +02:00
meson pinctrl: meson: add interrupts to pinctrl data 2017-06-09 09:28:20 +02:00
mvebu pinctrl: armada-37xx: Add irqchip support 2017-05-22 10:39:24 +02:00
nomadik pinctrl: nomadik: split up and comments MC0 pins 2016-11-18 09:54:32 +01:00
pxa pinctrl: pxa: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 00:03:04 +02:00
qcom This is the bulk of pin control changes for the v4.12 cycle: 2017-05-02 17:59:33 -07:00
samsung This is the bulk of pin control changes for the v4.12 cycle: 2017-05-02 17:59:33 -07:00
sh-pfc pinctrl: sh-pfc: r8a7794: Add R8A7745 support 2017-05-16 13:53:15 +02:00
sirf pinctrl: sirf: atlas7: make use of raw_spinlock variants 2017-03-16 16:39:15 +01:00
spear pinctrl: spear: make bool drivers explicitly non-modular 2017-02-13 14:25:55 +01:00
stm32 pinctrl: stm32: remove useless check 2017-06-09 10:03:23 +02:00
sunxi pinctrl: sunxi: Add support for A83T R_PIO 2017-06-09 11:20:32 +02:00
tegra pinctrl: tegra: clean up modular vs. non-modular distinctions 2017-05-29 10:24:42 +02:00
ti pinctrl: core: Fix pinctrl_register_and_init() with pinctrl_enable() 2017-04-07 01:08:08 +02:00
uniphier This is the bulk of pin control changes for the v4.12 cycle: 2017-05-02 17:59:33 -07:00
vt8500 pinctrl: Widen the generic pinconf argument from 16 to 24 bits 2017-01-26 15:22:32 +01:00
zte pinctrl: zte: fix group_desc initialization 2017-05-29 10:16:16 +02:00
Kconfig pinctrl: mcp23s08: improve I2C Kconfig dependency 2017-05-31 01:58:36 +02:00
Makefile Merge branch 'mcp23s08' into devel 2017-05-23 09:52:08 +02:00
core.c pinctrl: When claiming hog, skip maps not served by same device 2017-05-22 17:05:44 +02:00
core.h pinctrl: core: Fix regression caused by delayed work for hogs 2017-01-13 16:25:17 +01:00
devicetree.c pinctrl: core: Make dt_free_map optional 2017-01-09 19:41:07 +01:00
devicetree.h pinctrl: core: Use delayed work for hogs 2017-01-03 09:26:16 +01:00
pinconf-generic.c pinctrl: generic: Add bi-directional and output-enable 2017-04-11 11:01:33 +02:00
pinconf.c pinctrl: Add spaces for better code readability 2017-05-22 10:39:24 +02:00
pinconf.h pinctrl: Allow configuration of pins from gpiolib based drivers 2017-01-26 15:23:01 +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 pinctrl: adi2: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:20 +02: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: Update contact information for AMD pinctrl/amd 2017-05-22 10:39:24 +02:00
pinctrl-amd.h pinctrl: amd: make use of raw_spinlock variants 2017-03-16 16:39:15 +01:00
pinctrl-artpec6.c pinctrl: artpec6: Fix return value check in artpec6_pmx_probe() 2017-04-28 09:40:52 +02:00
pinctrl-as3722.c pinctrl: as3722: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:21 +02:00
pinctrl-at91-pio4.c pinctrl: at91-pio4: handle suspend to ram 2017-04-07 14:32:51 +02:00
pinctrl-at91.c pinctrl: at91: add support for OUTPUT config 2016-10-31 09:16:46 +01:00
pinctrl-at91.h pinctrl: at91: use own header 2014-10-29 09:28:35 +01:00
pinctrl-coh901.c pinctrl: coh901: fix initconst annotation 2016-02-15 20:40:52 +01:00
pinctrl-coh901.h
pinctrl-da850-pupd.c Merge branch 'ib-pinctrl-genprops' into devel 2017-01-26 15:27:54 +01:00
pinctrl-digicolor.c Revert "pinctrl: digicolor: add missing platform_set_drvdata() call" 2016-06-23 09:50:05 +02:00
pinctrl-falcon.c pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-ingenic.c pinctrl: add a pinctrl driver for the Ingenic jz47xx SoCs 2017-05-22 17:17:23 +02:00
pinctrl-lantiq.c pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-lantiq.h pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-lpc18xx.c pinctrl: Widen the generic pinconf argument from 16 to 24 bits 2017-01-26 15:22:32 +01:00
pinctrl-max77620.c pinctrl: Widen the generic pinconf argument from 16 to 24 bits 2017-01-26 15:22:32 +01:00
pinctrl-mcp23s08.c pinctrl: mcp23s08: drop comment about missing irq support 2017-05-23 09:51:08 +02:00
pinctrl-oxnas.c pinctrl: oxnas: Add support for OX820 2016-10-24 16:30:14 +02:00
pinctrl-palmas.c pinctrl: Widen the generic pinconf argument from 16 to 24 bits 2017-01-26 15:22:32 +01:00
pinctrl-pic32.c pinctrl: pic32: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:24 +02:00
pinctrl-pic32.h pinctrl: pinctrl-pic32: Add PIC32 pin control driver 2016-02-05 23:54:47 +01:00
pinctrl-pistachio.c pinctrl: pistachio: fix mfio pll_lock pinmux 2016-08-22 15:28:35 +02:00
pinctrl-rockchip.c pinctrl: rockchip: Add iomux-route switching support for rk3399 2017-05-29 14:28:25 +02:00
pinctrl-single.c pinctrl: single: use of_device_get_match_data() to get soc data 2017-05-29 10:18:46 +02:00
pinctrl-st.c pinctrl: st: add irq_request/release_resources callbacks 2017-03-23 10:10:39 +01:00
pinctrl-sx150x.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
pinctrl-tb10x.c pinctrl: tb10x: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:25 +02:00
pinctrl-tz1090-pdc.c pinctrl: tz1090-pdc: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:26 +02:00
pinctrl-tz1090.c pinctrl: tz1090 Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:26 +02:00
pinctrl-u300.c pinctrl: u300: make u300_pmx_registers static 2016-06-13 09:27:43 +02:00
pinctrl-utils.c pinctrl: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map 2016-04-01 15:06:36 +02:00
pinctrl-utils.h pinctrl: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map 2016-04-01 15:06:36 +02:00
pinctrl-xway.c pinctrl: xway: fix copy/paste error in xrx200_grps 2017-05-29 18:46:42 +02:00
pinctrl-zynq.c pinctrl: zynq: Add a 8 bit wide nand option 2016-11-04 15:19:00 +01:00
pinmux.c pinctrl: pinmux: Fix kerneldoc for pinmux_generic_add_function() 2017-04-07 11:52:09 +02:00
pinmux.h pinctrl: core: Add generic pinctrl functions for managing groups 2017-01-03 09:26:18 +01:00