linux/drivers/gpio
Linus Walleij 80057cb417 gpio-mmio: Use the new .get_multiple() callback
It is possible to read all lines of a generic MMIO GPIO chip
with a single register read so support this if we are in
native endianness.

Add an especially quirky callback to read multiple lines for
the variants that require you to read values from the
output registers if and only if the line is set as output.
We managed to do that with a maximum of two register reads,
and just one read if the requested lines are all input or all
output.

Cc: Anton Vorontsov <anton@enomsg.org>
Cc: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2017-10-30 08:35:32 +01:00
..
devres.c gpio: devres: Improve kerneldoc 2017-08-14 15:01:13 +02:00
gpio-74x164.c gpio: 74x164: Introduce 'enable-gpios' property 2017-08-14 16:24:02 +02:00
gpio-74xx-mmio.c
gpio-104-dio-48e.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
gpio-104-idi-48.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
gpio-104-idio-16.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
gpio-adnp.c gpio: set explicit nesting on drivers 2016-11-25 15:12:27 +01:00
gpio-adp5520.c
gpio-adp5588.c gpio: adp5588: move header file out of I2C realm 2017-05-29 13:36:45 +02:00
gpio-altera-a10sr.c gpio: altera-a10sr: constify gpio_chip structure 2017-08-14 15:01:12 +02:00
gpio-altera.c gpio: Convert to using %pOF instead of full_name 2017-08-14 15:01:12 +02:00
gpio-amd8111.c
gpio-amdpt.c
gpio-arizona.c gpio: arizona: Add support for GPIOs that need to be maintained 2017-05-29 11:09:01 +02:00
gpio-aspeed.c gpio: mark expected switch fall-throughs 2017-10-19 22:32:40 +02:00
gpio-ath79.c gpio: mark expected switch fall-throughs 2017-10-19 22:32:40 +02:00
gpio-axp209.c gpio: axp209: use correct register for GPIO input status 2016-11-24 16:19:02 +01:00
gpio-bcm-kona.c gpio: bcm-kona: make use of raw_spinlock variants 2017-03-16 21:52:07 +01:00
gpio-bd9571mwv.c gpio: Add ROHM BD9571MWV-M PMIC GPIO driver 2017-04-28 09:47:46 +02:00
gpio-brcmstb.c gpio: brcmstb: Do not use gc->pin2mask() 2017-10-25 11:25:39 +02:00
gpio-bt8xx.c
gpio-clps711x.c gpio: clps711x: Remove board support 2016-06-08 10:49:58 +02:00
gpio-crystalcove.c gpio: crystalcove: Do not write regular gpio registers for virtual GPIOs 2017-05-23 10:02:01 +02:00
gpio-cs5535.c
gpio-da9052.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-da9055.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-davinci.c gpio: davinci: Handle the return value of davinci_gpio_irq_setup function 2017-08-14 15:03:39 +02:00
gpio-dln2.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-dwapb.c gpio: dwapb: fix bgpio usage 2017-10-25 11:25:10 +02:00
gpio-em.c
gpio-ep93xx.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-etraxfs.c gpio: etraxfs: make use of raw_spinlock variants 2017-03-16 21:52:08 +01: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 a missing break 2017-04-28 10:09:16 +02:00
gpio-ftgpio010.c gpio: gemini: rename to match Faraday IP 2017-03-22 09:40:55 +01:00
gpio-ge.c gpio: Convert to using %pOF instead of full_name 2017-08-14 15:01:12 +02:00
gpio-gpio-mm.c Annotate hardware config module parameters in drivers/gpio/ 2017-04-20 12:02:32 +01:00
gpio-grgpio.c gpio: grgpio: Do not use gc->pin2mask() 2017-10-25 11:25:38 +02:00
gpio-htc-egpio.c gpio: htc-egpio: read output value from cache 2016-11-13 11:50:22 +01:00
gpio-ich.c
gpio-ingenic.c gpio: Add gpio-ingenic driver 2017-05-22 17:18:19 +02:00
gpio-intel-mid.c gpio: intel-mid: Fix build warning when !CONFIG_PM 2017-01-26 10:00:20 +01:00
gpio-iop.c gpio: iop: Use generic GPIO MMIO functions for driver 2016-09-12 15:28:18 +02:00
gpio-it87.c gpio: it87: add support for IT8772F Super I/O. 2017-08-14 15:03:38 +02:00
gpio-janz-ttl.c
gpio-kempld.c
gpio-ks8695.c
gpio-loongson1.c gpio: loongson1: fix bgpio usage 2017-10-25 11:25:38 +02:00
gpio-loongson.c
gpio-lp873x.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-lp3943.c
gpio-lp87565.c gpio: lp87565: Set proper output level and direction for direction_output 2017-07-31 15:26:57 +02:00
gpio-lpc18xx.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-lpc32xx.c gpio: lpc32xx: remove unused platform data file 2016-09-12 14:23:37 +02:00
gpio-lynxpoint.c gpio: lynxpoint: avoid potential warning on error path 2016-06-23 11:07:14 +02:00
gpio-max730x.c gpio: max730x: set gpiochip data pointer before using it 2016-08-10 15:40:44 +02:00
gpio-max732x.c gpio: max732x: move header file out of I2C realm 2017-05-23 11:33:59 +02:00
gpio-max3191x.c gpio: Add driver for Maxim MAX3191x industrial serializer 2017-10-19 22:40:07 +02:00
gpio-max7300.c
gpio-max7301.c
gpio-max77620.c gpio: max77620: Make regmap_irq_chip const 2017-08-14 16:06:24 +02:00
gpio-mb86s7x.c gpio: mb86s7x: Handle return value of clk_prepare_enable. 2017-08-14 15:03:38 +02:00
gpio-mc9s08dz60.c
gpio-mc33880.c
gpio-menz127.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-merrifield.c gpio: merrifield: Remove unused header 2017-06-16 11:13:11 +02:00
gpio-ml-ioh.c gpio: ml-ioh: use devres for irq generic chip 2017-08-21 00:06:35 +02:00
gpio-mm-lantiq.c gpio: update my email address 2016-12-30 09:18:10 +01:00
gpio-mmio.c gpio-mmio: Use the new .get_multiple() callback 2017-10-30 08:35:32 +01:00
gpio-mockup.c gpio: mockup: remove unused variable gc 2017-08-31 15:21:07 +02: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: fix error return code in platform_msic_gpio_probe() 2017-08-14 15:03:38 +02:00
gpio-mvebu.c gpio: mvebu: Fix cause computation in irq handler 2017-08-14 15:00:43 +02:00
gpio-mxc.c gpio: mxc: use devres for irq generic chip 2017-08-21 00:09:33 +02:00
gpio-mxs.c gpio: mxs: use devres for irq generic chip 2017-08-21 00:10:00 +02:00
gpio-octeon.c
gpio-omap.c gpio: omap : Add missing clk_unprepare(). 2017-08-14 15:03:38 +02:00
gpio-palmas.c gpio: palmas: fix implicit assumption module.h is present 2016-09-15 13:57:43 +02:00
gpio-pca953x.c gpio: pca953x: remove incorrect le16_to_cpu calls 2017-08-14 15:01:12 +02:00
gpio-pcf857x.c gpio: pcf857x: move header file out of I2C realm 2017-05-23 11:35:02 +02:00
gpio-pch.c gpio: pch: use devres for irq generic chip 2017-08-21 00:08:52 +02:00
gpio-pci-idio-16.c gpio: pci-idio-16: make use of raw_spinlock variants 2017-03-28 11:13:59 +02:00
gpio-pisosr.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-pl061.c gpio: pl061: constify amba_id 2017-08-31 13:57:57 +02:00
gpio-pxa.c gpio: pxa: remove gpio_to_irq() from hw irq handlers 2017-08-14 15:01:12 +02:00
gpio-rc5t583.c
gpio-rcar.c gpio: rcar: Use of_device_get_match_data() helper 2017-10-08 02:16:42 +02:00
gpio-rdc321x.c gpio: remove redundant owner assignments of drivers 2016-06-07 09:35:16 +02:00
gpio-reg.c gpio: gpio-reg: add irq mapping for gpio-reg users 2017-03-24 14:05:00 +01:00
gpio-sa1100.c gpio: sa1100: implement get_direction method 2017-03-24 14:04:37 +01:00
gpio-sch311x.c gpio: remove redundant owner assignments of drivers 2016-06-07 09:35:16 +02:00
gpio-sch.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-sodaville.c gpio: sodaville: use resource management for irqs 2017-03-15 11:16:36 +01:00
gpio-spear-spics.c gpio: spear-spics: drop unused MODULE_ tags from non-modular code 2016-08-23 11:23:41 +02:00
gpio-sta2x11.c gpio: sta2x11: use devres for irq generic chip 2017-08-21 00:06:04 +02:00
gpio-stmpe.c gpio: mark expected switch fall-throughs 2017-10-19 22:32:40 +02:00
gpio-stp-xway.c gpio: update my email address 2016-12-30 09:18:10 +01:00
gpio-syscon.c gpio: syscon: Change the compatibility string 2016-06-08 10:48:17 +02:00
gpio-tb10x.c gpio: tb10x: Handle return value of devm_kasprintf 2017-09-21 14:14:17 +02:00
gpio-tc3589x.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-tegra.c gpio: tegra: Use unsigned int where possible 2017-08-14 15:03:38 +02:00
gpio-thunderx.c gpio: thunderx: remove unused .map() hook from irq_domain_ops 2017-09-22 15:31:55 +02:00
gpio-timberdale.c
gpio-tpic2810.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-tps6586x.c gpio: remove redundant owner assignments of drivers 2016-06-07 09:35:16 +02:00
gpio-tps65086.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-tps65218.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-tps65910.c gpio: remove redundant owner assignments of drivers 2016-06-07 09:35:16 +02:00
gpio-tps65912.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-tps68470.c gpio: Add support for TPS68470 GPIOs 2017-08-14 15:37:38 +02:00
gpio-ts4800.c gpio: ts4800: Fix module autoload 2016-10-21 14:55:07 +02:00
gpio-ts4900.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-ts5500.c
gpio-twl4030.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
gpio-twl6040.c gpio: twl6040: remove unneeded forward declaration 2017-08-23 10:20:16 +02:00
gpio-tz1090-pdc.c
gpio-tz1090.c gpio: Convert to using %pOF instead of full_name 2017-08-14 15:01:12 +02:00
gpio-ucb1400.c
gpio-uniphier.c gpio: uniphier: add UniPhier GPIO controller driver 2017-10-23 10:37:31 +02:00
gpio-vf610.c gpio: vf610: add imx7ulp support 2017-08-14 15:03:39 +02:00
gpio-viperboard.c gpio: remove redundant owner assignments of drivers 2016-06-07 09:35:16 +02:00
gpio-vr41xx.c
gpio-vx855.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-wcove.c Merge (most of) tag 'mfd-next-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd 2017-07-07 13:30:05 -07:00
gpio-wm831x.c gpio: wm831x: Add basic device tree support 2017-03-23 11:45:55 +00:00
gpio-wm8350.c gpio: constify gpio_chip structures 2016-09-13 10:35:56 +02:00
gpio-wm8994.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-ws16c48.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
gpio-xgene-sb.c gpio: xgene-sb: Tidy up fwnode usage 2017-09-19 09:39:24 +02:00
gpio-xgene.c gpio: xgene: mark PM functions as __maybe_unused 2017-03-06 14:35:22 +01:00
gpio-xilinx.c gpio: Convert to using %pOF instead of full_name 2017-08-14 15:01:12 +02:00
gpio-xlp.c gpio: xlp: Update for ARCH_THUNDER2 2017-03-16 21:52:10 +01:00
gpio-xra1403.c gpio: xra1403: Add EXAR XRA1403 SPI GPIO expander driver 2017-05-22 17:48:41 +02:00
gpio-xtensa.c
gpio-zevio.c gpio: zevio: make gpio_chip const 2017-08-23 09:21:54 +02:00
gpio-zx.c gpio: zx: make use of raw_spinlock variants 2017-03-16 21:52:10 +01:00
gpio-zynq.c gpio: zynq: Fix driver function parameters alignment 2017-08-14 16:01:06 +02:00
gpiolib-acpi.c gpio: acpi: Fixup kerneldoc 2017-08-14 15:01:13 +02:00
gpiolib-devprop.c gpio: gpiolib-devprop: Check chip->parent pointer before dereferencing 2016-10-25 20:23:19 +02:00
gpiolib-legacy.c Revert "gpiolib: Split GPIO flags parsing and GPIO configuration" 2016-07-04 16:51:29 +02:00
gpiolib-of.c gpio: Fix loose spelling 2017-10-20 09:37:32 +02:00
gpiolib-sysfs.c This is the bulk of the GPIO changes for the v4.14 cycle: 2017-09-05 11:49:48 -07:00
gpiolib.c gpio: Fix loose spelling 2017-10-20 09:37:32 +02:00
gpiolib.h gpio: Fix loose spelling 2017-10-20 09:37:32 +02:00
Kconfig gpio: uniphier: add UniPhier GPIO controller driver 2017-10-23 10:37:31 +02:00
Makefile gpio: uniphier: add UniPhier GPIO controller driver 2017-10-23 10:37:31 +02:00