linux/drivers/gpio
Linus Walleij 813e7d36f2 gpio: ixp4xx: Add driver for the IXP4xx GPIO
This adds a driver for the IXP4xx GPIO block found in
the Intel XScale IXP4xx systems.

The GPIO part of this block is pretty straight-forward and
just uses the generic MMIO GPIO library.

The irqchip side of this driver is hierarchical where
the main irqchip will receive a processed level trigger
in response to the edge detector of the GPIO block,
so for this reason the v2 version of the irqdomain API
is used (as well as in the parent IXP4xx irqchip) and
masking, unmasking and setting up the type on IRQ
happens on several levels.

Currently this GPIO controller will grab the parent
irqdomain using a special function, but as the platform
move toward device tree probing, this will not be needed:
we can just look up the parent irqdomain from the device
tree.

Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2019-04-23 16:02:13 +02:00
..
gpio-74x164.c The is the bulk of GPIO changes for the v4.16 kernel cycle. 2018-01-31 12:25:27 -08:00
gpio-74xx-mmio.c gpio: 74xx-mmio: Use of_device_get_match_data() 2018-05-16 14:35:24 +02:00
gpio-104-dio-48e.c gpio: 104-dio-48e: Mask read inputs for get_multiple 2018-11-05 08:54:41 +01:00
gpio-104-idi-48.c gpio: 104-idi-48e: Mask the read inputs for get_multiple 2018-11-05 08:54:41 +01:00
gpio-104-idio-16.c gpio: 104-idio-16: Implement get_multiple callback 2018-03-26 10:10:18 +02:00
gpio-adnp.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
gpio-adp5520.c drivers: gpio: Update MODULE AUTHOR email address 2018-08-29 13:30:25 +02:00
gpio-adp5588.c gpio: adp5588.c: Switch to events system 2019-02-09 11:33:37 +01:00
gpio-altera-a10sr.c gpio: altera-a10sr: Trivial coding style fix 2019-02-14 15:14:38 +01:00
gpio-altera.c gpio: altera: Fixup block comment style 2019-01-28 14:59:58 +01:00
gpio-amd8111.c gpio: amd8111: Include proper header 2018-01-13 22:22:49 +01:00
gpio-amd-fch.c gpio: amd-fch: Set proper output level for direction_output 2019-03-08 14:11:30 +01:00
gpio-amdpt.c
gpio-arizona.c gpio: arizona: Include proper header 2018-01-13 22:47:48 +01:00
gpio-aspeed.c gpio: aspeed: remove duplicated statement 2018-12-21 11:14:11 +01:00
gpio-ath79.c gpio: fix meaningless return expression 2018-07-29 23:34:54 +02:00
gpio-bcm-kona.c gpio-bcm-kona: use new req/relres and dis/enable_irq funcs 2018-09-10 08:57:36 +02:00
gpio-bd9571mwv.c
gpio-brcmstb.c gpio: brcmstb: allow 0 width GPIO banks 2018-08-30 11:04:50 +02:00
gpio-bt8xx.c gpio: bt8xx: Include proper header 2018-01-13 22:56:52 +01:00
gpio-cadence.c gpio: Add Cadence GPIO driver 2018-12-21 11:41:00 +01:00
gpio-clps711x.c
gpio-creg-snps.c GPIO: add single-register GPIO via CREG driver 2018-10-10 09:21:06 +02:00
gpio-crystalcove.c gpio: crystalcove: Convert to use SPDX identifier 2019-02-08 15:55:40 +02:00
gpio-cs5535.c gpio: cs5535: Include proper header 2018-01-14 01:56:24 +01:00
gpio-da9052.c gpio: da905x: Include proper header 2018-01-14 02:00:10 +01:00
gpio-da9055.c gpio: da905x: Include proper header 2018-01-14 02:00:10 +01:00
gpio-davinci.c gpio: davinci: use devm_platform_ioremap_resource() 2019-02-21 13:05:52 +01:00
gpio-dln2.c gpio: dln2: Include proper header 2018-03-19 01:50:07 +01:00
gpio-dwapb.c gpio: gpio-dwapb: simplify getting .driver_data 2018-11-05 08:54:41 +01:00
gpio-eic-sprd.c gpio updates for v5.1 2019-02-17 21:59:33 +01:00
gpio-em.c gpio: em: Don't shadow error code of gpiochip_lock_as_irq() 2018-08-06 23:46:55 +02:00
gpio-ep93xx.c gpio: ep93xx: fix test for end of loop 2018-09-10 08:48:24 +02:00
gpio-exar.c gpio: exar: Use correct property prefix and document bindings 2017-08-01 13:43:55 +02:00
gpio-f7188x.c gpio-f7188x: add support Fintek F81804 & F81966 2019-01-22 15:48:44 +01:00
gpio-ftgpio010.c gpio: ftgpio: Register per-instance irqchip 2019-02-25 10:24:07 +01:00
gpio-ge.c gpio: ge: Fix build warning 2018-05-16 14:35:24 +02:00
gpio-gpio-mm.c gpio: gpio-mm: Mask read inputs for get_multiple 2018-11-05 08:54:41 +01:00
gpio-grgpio.c drivers/gpio/gpio-grgpio.c: Remove duplicate header 2018-11-19 15:09:22 +01:00
gpio-gw-pld.c gpio: Add a Gateworks PLD GPIO driver 2019-02-09 11:33:37 +01:00
gpio-hlwd.c gpio: hlwd: Implement edge trigger emulation 2019-01-21 14:34:45 +01:00
gpio-htc-egpio.c gpio: htc-egpio: Remove set but not used variable 'bit' 2018-10-01 12:27:19 +02:00
gpio-ich.c gpio: ich: Convert to use SPDX identifier 2018-12-07 17:34:07 +02:00
gpio-intel-mid.c gpio: intel-mid: Convert to use SPDX identifier 2018-12-07 17:34:07 +02:00
gpio-iop.c gpio: iop: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE 2017-12-02 22:42:21 +01:00
gpio-it87.c gpio: it87: Add support for IT8613 2018-08-10 23:19:17 +02:00
gpio-ixp4xx.c gpio: ixp4xx: Add driver for the IXP4xx GPIO 2019-04-23 16:02:13 +02:00
gpio-janz-ttl.c gpio: janz-ttl: Use BIT() macro 2018-03-19 01:50:30 +01:00
gpio-kempld.c gpio: kempld: Include the right header 2018-03-19 01:50:31 +01:00
gpio-ks8695.c gpio: ks8695: Change to use DEFINE_SHOW_ATTRIBUTE macro 2018-12-07 11:10:14 +01:00
gpio-loongson1.c gpio: loongson1: fix bgpio usage 2017-10-25 11:25:38 +02:00
gpio-loongson.c gpio: loongson: Use BIT() macros 2018-05-16 14:35:24 +02:00
gpio-lp873x.c gpio: lp873x: Include the right header 2018-05-16 14:35:24 +02:00
gpio-lp3943.c gpio: lp3943: Include the right header 2018-05-16 14:35:24 +02:00
gpio-lp87565.c
gpio-lpc18xx.c gpio: lpc18xx: fix GPIO controller driver build as a module 2018-12-10 09:10:46 +01:00
gpio-lpc32xx.c gpio: lpc32xx: Include the right header 2018-05-16 14:35:24 +02:00
gpio-lynxpoint.c intel-gpio for v4.21-1 2018-12-14 14:27:41 +01:00
gpio-madera.c gpio: madera: Add missing const 2019-02-14 15:14:37 +01:00
gpio-max730x.c gpio: max730x: Include the right header 2018-05-16 14:35:24 +02:00
gpio-max732x.c gpio: max732x: add error handling for i2c_new_dummy 2018-06-18 07:55:30 +02:00
gpio-max3191x.c gpiolib: Pass array info to get/set array functions 2018-09-13 11:16:54 +02:00
gpio-max7300.c
gpio-max7301.c gpio: max7301: fix driver for use with CONFIG_VMAP_STACK 2018-12-21 09:23:45 +01:00
gpio-max77620.c regmap: regmap-irq/gpio-max77620: add level-irq support 2018-12-19 18:35:45 +00:00
gpio-mb86s7x.c gpio: mb86s70: Revert "Return error if requesting an already assigned gpio" 2017-10-31 13:13:34 +01:00
gpio-mc9s08dz60.c gpio: mc9s08dz60: Include the right header 2018-05-16 14:35:24 +02:00
gpio-mc33880.c gpio: mc33880: Include the right header 2018-05-16 14:35:24 +02:00
gpio-menz127.c gpio: Fix wrong rounding in gpio-menz127 2018-06-18 07:55:30 +02:00
gpio-merrifield.c gpio: merrifield: Convert to use SPDX identifier 2018-12-07 17:34:08 +02:00
gpio-ml-ioh.c PCI: Move Rohm Vendor ID to generic list 2019-02-01 17:24:52 -06:00
gpio-mm-lantiq.c gpio: mm-lantiq: Include the right header 2018-05-16 14:35:24 +02:00
gpio-mmio.c gpio: Use SPDX header for core library 2018-09-25 09:08:48 +02:00
gpio-mockup.c gpio: mockup: rework debugfs interface 2019-02-19 17:42:29 +01:00
gpio-mpc8xxx.c gpio: mpc8xxx: Do not reverse bits using bgpio 2017-10-25 11:25:40 +02:00
gpio-mpc5200.c
gpio-msic.c gpio: msic: Convert to use SPDX identifier 2019-02-08 15:55:41 +02:00
gpio-mt7621.c gpio: MT7621: use a per instance irq_chip structure 2019-02-08 12:30:15 +01:00
gpio-mvebu.c gpio: mvebu: implement get_direction 2019-01-10 16:19:11 +01:00
gpio-mxc.c gpio: mxc: add check to return defer probe if clock tree NOT ready 2019-02-25 13:42:46 +01:00
gpio-mxs.c gpio: mxs: read pin level directly instead of using .get 2018-12-21 11:29:57 +01:00
gpio-octeon.c gpio: octeon: Include the right header 2018-05-24 14:22:04 +02:00
gpio-omap.c gpio: gpio-omap: fix level interrupt idling 2019-03-08 14:11:30 +01:00
gpio-palmas.c gpio: palmas: Include the right header 2018-05-24 14:25:13 +02:00
gpio-pca953x.c gpio: pca953x: Use PCA_LATCH_INT 2019-03-08 14:11:30 +01:00
gpio-pcf857x.c gpio updates for v5.1 2019-02-17 21:59:33 +01:00
gpio-pch.c PCI: Move Rohm Vendor ID to generic list 2019-02-01 17:24:52 -06:00
gpio-pci-idio-16.c gpio: pci-idio-16: Mask read inputs for get_multiple 2018-11-05 08:54:42 +01:00
gpio-pcie-idio-24.c gpio: pcie-idio-24: Mask read inputs for get_multiple 2018-11-05 08:54:42 +01:00
gpio-pisosr.c gpio-pisosr: add support for get_multiple 2018-07-29 21:55:33 +02:00
gpio-pl061.c gpio: pl061: Move irq_chip definition inside struct pl061 2018-11-05 08:54:42 +01:00
gpio-pmic-eic-sprd.c gpio: sprd: Change to use SoC compatible string 2019-02-21 13:18:49 +01:00
gpio-pxa.c gpio: pxa: avoid attempting to set pin direction via pinctrl on MMP2 2019-02-14 10:06:03 +01:00
gpio-raspberrypi-exp.c gpio: raspberrypi-exp: decrease refcount on firmware dt node 2018-12-17 15:28:30 +01:00
gpio-rc5t583.c gpio: rc5t583: Include the right header 2018-07-02 16:00:49 +02:00
gpio-rcar.c gpio: rcar: select General Output Register to set output states 2019-01-21 14:59:50 +01:00
gpio-rdc321x.c gpio: rdc321x: Include the right header 2018-07-02 16:00:49 +02:00
gpio-reg.c gpio: gpio-reg: fix build 2017-12-22 15:24:31 +01:00
gpio-sa1100.c gpio: sa1100: Include the right header 2018-07-02 16:00:49 +02:00
gpio-sama5d2-piobu.c gpio: sama5d2-piobu: Set proper output level for direction_output 2019-01-11 10:34:37 +01:00
gpio-sch311x.c gpio: sch311x: clean an indentation issue, remove extraneous space 2018-11-05 08:54:42 +01:00
gpio-sch.c gpio: sch: Convert to use SPDX identifier 2018-12-07 17:34:08 +02:00
gpio-siox.c gpio: new driver to work with a 8x12 siox 2018-09-28 09:30:42 +02:00
gpio-sodaville.c gpio: sodaville: Convert to use SPDX identifier 2018-12-07 17:34:08 +02:00
gpio-spear-spics.c gpio: spear-spics: Include the right header 2018-07-02 16:00:49 +02:00
gpio-sprd.c gpio: Add GPIO driver for Spreadtrum SC9860 platform 2018-03-02 11:00:43 +01:00
gpio-sta2x11.c gpio: sta2x11: Inline regs macro 2018-07-02 16:00:49 +02:00
gpio-stmpe.c gpio: stmpe: Include the right header 2018-07-02 16:00:49 +02:00
gpio-stp-xway.c gpio: stp-xway: Include the right header 2018-07-02 16:00:49 +02:00
gpio-syscon.c gpio: syscon: Fix possible NULL ptr usage 2018-10-10 10:33:11 +02:00
gpio-tb10x.c gpio: tb10x: Use GENERIC_GPIO 2018-08-29 08:53:37 +02:00
gpio-tc3589x.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
gpio-tegra186.c gpio: tegra186: Use TEGRA186_ prefix for GPIO names 2019-02-14 15:14:38 +01:00
gpio-tegra.c gpio: tegra: Fix offset of pinctrl calls 2019-02-19 21:48:20 +01:00
gpio-thunderx.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
gpio-timberdale.c gpio: timberdale: Include the right header 2018-08-10 23:04:27 +02:00
gpio-tpic2810.c
gpio-tps6586x.c gpio: tps65xxx: Use SPDX license tag 2018-09-04 08:22:47 +02:00
gpio-tps65086.c gpio: tps65xxx: Use SPDX license tag 2018-09-04 08:22:47 +02:00
gpio-tps65218.c
gpio-tps65910.c gpio: tps65xxx: Use SPDX license tag 2018-09-04 08:22:47 +02:00
gpio-tps65912.c gpio: tps65xxx: Use SPDX license tag 2018-09-04 08:22:47 +02:00
gpio-tps68470.c gpio: tps68470: Update to SPDX license identifier 2018-02-23 15:26:42 +01:00
gpio-tqmx86.c gpio: tqmx86: Set proper output level for direction_output 2019-02-21 13:19:52 +01:00
gpio-ts4800.c
gpio-ts4900.c gpio: ts4900: Use of_device_get_match_data() 2018-05-16 14:35:24 +02:00
gpio-ts5500.c gpio: ts5500: Delete platform data handling 2018-09-04 08:22:47 +02:00
gpio-twl4030.c gpio: twl4030: Implement .get_direction() 2018-09-10 08:48:51 +02:00
gpio-twl6040.c gpio: twl6040: Implement .get_direction() 2018-09-10 08:49:22 +02:00
gpio-ucb1400.c
gpio-uniphier.c gpio: uniphier: convert to SPDX License Identifier 2018-12-07 13:40:28 +01:00
gpio-vf610.c gpio: vf610: Mask all GPIO interrupts 2019-01-28 15:28:43 +01:00
gpio-viperboard.c gpio: viperboard: Cut down on boilerplate 2018-09-17 10:55:24 -07:00
gpio-vr41xx.c gpio: vr41xx: Delete vr41xx_gpio_pullupdown() callback 2018-09-17 10:55:24 -07:00
gpio-vx855.c gpio: vx855: Cut down on boilerplate 2018-09-17 10:55:24 -07:00
gpio-wcove.c gpio: wcove: Convert to use SPDX identifier 2019-02-08 15:55:41 +02:00
gpio-winbond.c gpio: winbond: Add driver 2018-01-09 14:51:00 +01:00
gpio-wm831x.c gpio: wm8xxx: Cut down on boilerplate 2018-09-17 10:55:24 -07:00
gpio-wm8350.c gpio: wm8xxx: Cut down on boilerplate 2018-09-17 10:55:24 -07:00
gpio-wm8994.c gpio: wm8xxx: Cut down on boilerplate 2018-09-17 10:55:24 -07:00
gpio-ws16c48.c gpio: ws16c48: Mask read inputs for get_multiple 2018-11-05 08:54:42 +01:00
gpio-xgene-sb.c gpio: xgene-sb: Don't shadow error code of gpiochip_lock_as_irq() 2018-08-06 23:46:55 +02:00
gpio-xgene.c
gpio-xilinx.c gpio: xilinx: Use the right include 2018-08-10 23:19:17 +02:00
gpio-xlp.c gpio: xlp: Cut down on boilerplate 2018-09-17 10:55:24 -07:00
gpio-xra1403.c gpio: xra1403: Switch to a fixed upper bound for registers 2018-04-27 01:06:21 +02:00
gpio-xtensa.c gpio: xtensa: Cut down on boilerplate 2018-09-17 10:55:24 -07:00
gpio-zevio.c gpio: zevio: Include the right header 2018-09-04 08:22:47 +02:00
gpio-zx.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
gpio-zynq.c gpio: zynq: properly support runtime PM for GPIO used as interrupts 2019-02-13 10:36:54 +01:00
gpiolib-acpi.c This is the bulk of GPIO changes for the v5.1 cycle: 2019-03-08 10:09:53 -08:00
gpiolib-devprop.c Accept partial 'gpio-line-names' property. 2018-10-01 13:15:06 +02:00
gpiolib-devres.c gpio: Add devm_gpiod_unhinge() 2018-12-11 01:04:23 +00:00
gpiolib-legacy.c gpio: Use SPDX header for core library 2018-09-25 09:08:48 +02:00
gpiolib-of.c This is the bulk of GPIO changes for the v5.1 cycle: 2019-03-08 10:09:53 -08:00
gpiolib-sysfs.c gpio: Use SPDX header for core library 2018-09-25 09:08:48 +02:00
gpiolib.c gpio updates for v5.1 2019-02-17 21:59:33 +01:00
gpiolib.h gpio: add core support for pull-up/pull-down configuration 2019-02-13 09:10:14 +01:00
Kconfig gpio: ixp4xx: Add driver for the IXP4xx GPIO 2019-04-23 16:02:13 +02:00
Makefile gpio: ixp4xx: Add driver for the IXP4xx GPIO 2019-04-23 16:02:13 +02:00
TODO gpio: Add global TODO file for GPIO 2018-11-05 08:54:40 +01:00