linux/drivers/gpio
Mark Featherston 54fd6b2eb1 gpio: ts4900: Do not set DAT and OE together
[ Upstream commit 03fe003547975680fdb9ff5ab0e41cb68276c4f2 ]

This works around an issue with the hardware where both OE and
DAT are exposed in the same register. If both are updated
simultaneously, the harware makes no guarantees that OE or DAT
will actually change in any given order and may result in a
glitch of a few ns on a GPIO pin when changing direction and value
in a single write.

Setting direction to input now only affects OE bit. Setting
direction to output updates DAT first, then OE.

Fixes: 9c6686322d ("gpio: add Technologic I2C-FPGA gpio support")
Signed-off-by: Mark Featherston <mark@embeddedTS.com>
Signed-off-by: Kris Bahnsen <kris@embeddedTS.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-03-16 13:21:46 +01:00
..
gpio-74x164.c
gpio-74xx-mmio.c
gpio-104-dio-48e.c
gpio-104-idi-48.c
gpio-104-idio-16.c
gpio-adnp.c
gpio-adp5520.c
gpio-adp5588.c
gpio-altera-a10sr.c
gpio-altera.c
gpio-amd8111.c
gpio-amd-fch.c
gpio-amdpt.c
gpio-arizona.c
gpio-aspeed.c gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock 2022-01-27 09:19:43 +01:00
gpio-ath79.c
gpio-bcm-kona.c
gpio-bd9571mwv.c
gpio-bd70528.c
gpio-brcmstb.c
gpio-bt8xx.c
gpio-cadence.c gpio: cadence: Add missing MODULE_DEVICE_TABLE 2021-06-03 08:59:08 +02:00
gpio-clps711x.c
gpio-creg-snps.c
gpio-crystalcove.c
gpio-cs5535.c
gpio-da9052.c
gpio-da9055.c
gpio-davinci.c
gpio-dln2.c
gpio-dwapb.c
gpio-eic-sprd.c
gpio-em.c
gpio-ep93xx.c
gpio-exar.c
gpio-f7188x.c
gpio-ftgpio010.c
gpio-ge.c
gpio-gpio-mm.c
gpio-grgpio.c
gpio-gw-pld.c
gpio-hlwd.c
gpio-htc-egpio.c
gpio-ich.c
gpio-intel-mid.c
gpio-iop.c
gpio-it87.c
gpio-ixp4xx.c
gpio-janz-ttl.c
gpio-kempld.c
gpio-loongson1.c
gpio-loongson.c
gpio-lp873x.c
gpio-lp3943.c
gpio-lp87565.c
gpio-lpc18xx.c
gpio-lpc32xx.c
gpio-lynxpoint.c
gpio-madera.c
gpio-max730x.c
gpio-max732x.c
gpio-max3191x.c
gpio-max7300.c
gpio-max7301.c
gpio-max77620.c
gpio-max77650.c
gpio-mb86s7x.c
gpio-mc9s08dz60.c
gpio-mc33880.c
gpio-menz127.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
gpio-merrifield.c
gpio-ml-ioh.c
gpio-mlxbf.c
gpio-mm-lantiq.c
gpio-mmio.c
gpio-mockup.c
gpio-moxtet.c
gpio-mpc8xxx.c
gpio-mpc5200.c
gpio-msic.c
gpio-mt7621.c
gpio-mvebu.c
gpio-mxc.c
gpio-mxs.c
gpio-octeon.c
gpio-omap.c gpio: omap: Save and restore sysconfig 2021-04-28 13:19:14 +02:00
gpio-palmas.c
gpio-pca953x.c gpio: pca953x: Improve bias setting 2021-10-20 11:40:15 +02:00
gpio-pcf857x.c
gpio-pch.c
gpio-pci-idio-16.c
gpio-pcie-idio-24.c gpio: pcie-idio-24: Enable PEX8311 interrupts 2020-11-18 19:20:31 +01:00
gpio-pisosr.c
gpio-pl061.c
gpio-pmic-eic-sprd.c
gpio-pxa.c gpio: pxa: Fix return value of pxa_gpio_probe() 2020-06-03 08:21:21 +02:00
gpio-raspberrypi-exp.c
gpio-rc5t583.c
gpio-rcar.c
gpio-rdc321x.c
gpio-reg.c
gpio-sa1100.c
gpio-sama5d2-piobu.c
gpio-sch311x.c
gpio-sch.c
gpio-siox.c
gpio-sodaville.c
gpio-spear-spics.c
gpio-sprd.c
gpio-sta2x11.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
gpio-stmpe.c
gpio-stp-xway.c
gpio-syscon.c
gpio-tb10x.c gpio: Remove dev_err() usage after platform_get_irq() 2019-08-05 13:25:34 +02:00
gpio-tc3589x.c
gpio-tegra186.c gpio: tegra186: Fix chip_data type confusion 2022-03-02 11:41:17 +01:00
gpio-tegra.c
gpio-thunderx.c
gpio-timberdale.c
gpio-tpic2810.c
gpio-tps6586x.c
gpio-tps65086.c
gpio-tps65218.c
gpio-tps65910.c gpio: tps65xxx: Use SPDX license tag 2018-09-04 08:22:47 +02:00
gpio-tps65912.c
gpio-tps68470.c
gpio-tqmx86.c gpio: tqmx86: really make IRQ optional 2021-08-12 13:20:57 +02:00
gpio-ts4800.c
gpio-ts4900.c gpio: ts4900: Do not set DAT and OE together 2022-03-16 13:21:46 +01:00
gpio-ts5500.c
gpio-twl4030.c
gpio-twl6040.c
gpio-ucb1400.c
gpio-uniphier.c gpio: uniphier: Fix void functions to remove return value 2021-09-30 10:09:23 +02:00
gpio-vf610.c
gpio-viperboard.c
gpio-vr41xx.c
gpio-vx855.c
gpio-wcove.c
gpio-winbond.c
gpio-wm831x.c
gpio-wm8350.c
gpio-wm8994.c
gpio-ws16c48.c
gpio-xgene-sb.c
gpio-xgene.c
gpio-xilinx.c
gpio-xlp.c gpio: xlp: Pass irqchip when adding gpiochip 2019-08-15 09:55:07 +02:00
gpio-xra1403.c
gpio-xtensa.c
gpio-zevio.c
gpio-zx.c
gpio-zynq.c gpio: zynq: Check return value of pm_runtime_get_sync 2021-07-20 16:10:44 +02:00
gpiolib-acpi.c gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use 2022-01-27 09:19:41 +01:00
gpiolib-acpi.h
gpiolib-devprop.c
gpiolib-devres.c
gpiolib-legacy.c
gpiolib-of.c
gpiolib-of.h
gpiolib-sysfs.c
gpiolib.c gpio: fix locking open drain IRQ lines 2020-06-03 08:21:28 +02:00
gpiolib.h
Kconfig gpio: AMD8111 and TQMX86 require HAS_IOPORT_MAP 2021-07-07 08:22:58 -04:00
Makefile
sgpio-aspeed.c
TODO