linux/drivers/gpio
Mark Featherston 03fe003547 gpio: ts4900: Do not set DAT and OE together
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>
2022-03-10 10:00:27 +01:00
..
gpio-74x164.c gpio: 74x164: Add SPI device ID table 2021-10-06 13:01:45 +02:00
gpio-74xx-mmio.c
gpio-104-dio-48e.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-104-idi-48.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-104-idio-16.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-adnp.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-adp5520.c gpio: adp5520: cleanup probe error path + remove platform_set_drvdata() 2021-05-21 15:29:53 +02:00
gpio-adp5588.c gpio: adp5588: Use irqchip template 2020-07-20 15:47:50 +02:00
gpio-aggregator.c gpio: aggregator: Fix calling into sleeping GPIO controllers 2022-02-02 11:53:46 +01:00
gpio-altera-a10sr.c gpio: altera-a10sr: remove platform_set_drvdata() + cleanup probe 2021-05-21 15:43:24 +02:00
gpio-altera.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-amd8111.c drivers: gpio: amd8111: use SPDX-License-Identifier 2020-12-08 09:41:32 +01:00
gpio-amd-fch.c gpio: amd-fch: correct logic of GPIO_LINE_DIRECTION 2020-09-28 12:22:04 +02:00
gpio-amdpt.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-arizona.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-aspeed-sgpio.c gpio updates for v5.17 2022-01-11 12:31:35 -08:00
gpio-aspeed.c gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock 2021-12-10 16:14:40 +01:00
gpio-ath79.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-bcm-kona.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-bd9571mwv.c gpio: bd9571mwv: remove platform_set_drvdata() + cleanup probe 2021-05-21 15:43:26 +02:00
gpio-bd71815.c gpio: Support ROHM BD71815 GPOs 2021-04-14 10:19:22 +01:00
gpio-bd71828.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-brcmstb.c gpio: brcmstb: Use local variable to access OF node 2021-12-23 17:08:53 +01:00
gpio-bt8xx.c drivers: gpio: bt8xx: prefer dev_err()/dev_warn() over of raw printk 2020-12-08 09:41:32 +01:00
gpio-cadence.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-clps711x.c
gpio-creg-snps.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-crystalcove.c gpio: crystalcove: remove platform_set_drvdata() + cleanup probe 2021-05-17 10:56:17 +03:00
gpio-cs5535.c gpio: cs5535: Simplify the return expression of cs5535_gpio_probe() 2020-12-12 01:37:46 +01:00
gpio-da9052.c gpio: da9052: remove platform_set_drvdata() + cleanup probe 2021-05-23 20:32:09 +02:00
gpio-da9055.c gpio: da9055: remove platform_set_drvdata() + cleanup probe 2021-05-21 14:45:57 +02:00
gpio-davinci.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-dln2.c gpio: dln2: Fix interrupts when replugging the device 2021-12-19 15:03:30 +01:00
gpio-dwapb.c gpio: dwapb: Switch to use fwnode instead of of_node 2022-01-03 11:06:18 +01:00
gpio-eic-sprd.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-em.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-ep93xx.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-exar.c gpio: exar: use devm action for freeing the IDA and drop remove() 2020-11-25 15:36:52 +01:00
gpio-f7188x.c gpio-f7188x: Add GPIO support for F81865 2020-05-05 18:22:26 +02:00
gpio-ftgpio010.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-ge.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-gpio-mm.c
gpio-grgpio.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-gw-pld.c gpio: Remove unused local OF node pointers 2021-12-22 10:05:26 +01:00
gpio-hisi.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-hlwd.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-htc-egpio.c
gpio-ich.c gpio: ich: Switch to be dependent on LPC_ICH 2021-05-05 16:07:41 +02:00
gpio-idt3243x.c gpio: idt3243x: Fix an ignored error return from platform_get_irq() 2022-01-20 09:05:46 +01:00
gpio-iop.c
gpio-it87.c gpio: it87: remove unused code 2021-05-05 16:07:41 +02:00
gpio-ixp4xx.c
gpio-janz-ttl.c
gpio-kempld.c
gpio-logicvc.c gpio: logicvc: Remove redundant error printing in logicvc_gpio_probe() 2021-05-12 13:35:39 +02:00
gpio-loongson1.c
gpio-loongson.c
gpio-lp873x.c
gpio-lp3943.c
gpio-lp87565.c mfd: lp87565: Fix typo in define names 2021-05-19 13:33:49 +01:00
gpio-lpc18xx.c
gpio-lpc32xx.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-madera.c
gpio-max730x.c gpio: max730x: Make __max730x_remove() return void 2021-10-13 19:52:26 +02:00
gpio-max732x.c gpio: max732x: Use irqchip template 2020-08-04 01:12:43 +02:00
gpio-max3191x.c gpio: max3191x: Use bitmap_free() to free bitmap 2022-01-03 10:43:00 +01:00
gpio-max7300.c gpio: max730x: Make __max730x_remove() return void 2021-10-13 19:52:26 +02:00
gpio-max7301.c gpio: max730x: Make __max730x_remove() return void 2021-10-13 19:52:26 +02:00
gpio-max77620.c gpio: max77620: drop unneeded MODULE_ALIAS 2021-09-22 12:12:09 +02:00
gpio-max77650.c
gpio-mb86s7x.c gpio: mb86s7x: Remove superfluous test for ACPI companion 2020-05-18 09:15:16 +02:00
gpio-mc33880.c gpio: mc33880: Drop if with an always false condition 2021-10-13 19:52:41 +02:00
gpio-menz127.c
gpio-merrifield.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-ml-ioh.c gpio: ml-ioh: Change whitespace to match gpio-pch.c 2021-12-01 15:10:26 +02:00
gpio-mlxbf2.c gpio updates for v5.16 2021-11-08 11:55:21 -08:00
gpio-mlxbf.c gpio: gpio-mlxbf: Tell the compiler that ACPI functions may not be used 2020-07-08 09:24:08 +02:00
gpio-mm-lantiq.c gpio: mm-lantiq: Fix small typo 2020-04-28 22:41:25 +02:00
gpio-mmio.c gpio: mmio: replace open-coded for_each_set_bit() 2020-07-16 15:07:18 +02:00
gpio-mockup.c gpio: mockup: Switch to use kasprintf_strarray() 2021-11-19 10:38:16 +02:00
gpio-moxtet.c treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
gpio-mpc8xxx.c gpio: mpc8xxx: Fix an ignored error return from platform_get_irq() 2022-01-20 09:05:57 +01:00
gpio-mpc5200.c
gpio-msc313.c gpio: msc313: Add support for SSD201 and SSD202D 2021-12-20 16:07:22 +01:00
gpio-mt7621.c gpio: Remove unused local OF node pointers 2021-12-22 10:05:26 +01:00
gpio-mvebu.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-mxc.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-mxs.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-octeon.c
gpio-omap.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-palmas.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-pca953x.c gpio: pca953x: Improve bias setting 2021-10-06 13:01:45 +02:00
gpio-pca9570.c gpio: pca9570: add GPO driver for PCA9570 2020-07-16 14:35:12 +02:00
gpio-pcf857x.c gpio: pcf857x: Fix missing first interrupt 2021-02-18 15:52:44 +01:00
gpio-pch.c gpio: pch: Cache &pdev->dev to reduce repetition 2021-12-01 15:10:26 +02:00
gpio-pci-idio-16.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-pcie-idio-24.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-pisosr.c gpio: pisosr: Simplify with dev_err_probe() 2020-08-28 20:15:51 +02:00
gpio-pl061.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-pmic-eic-sprd.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-pxa.c gpio: Setup parent device and get rid of unnecessary of_node assignment 2021-12-17 17:44:19 +01:00
gpio-raspberrypi-exp.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-rc5t583.c
gpio-rcar.c gpio: rcar: Propagate errors from devm_request_irq() 2022-01-05 09:57:34 +01:00
gpio-rda.c gpio: Remove unused local OF node pointers 2021-12-22 10:05:26 +01:00
gpio-rdc321x.c
gpio-realtek-otto.c gpio: realtek-otto: fix GPIO line IRQ offset 2021-10-30 16:58:58 +02:00
gpio-reg.c
gpio-regmap.c gpio: regmap: Switch to use fwnode instead of of_node 2021-12-23 17:14:19 +01:00
gpio-rockchip.c gpio: rockchip: Reset int_bothedge when changing trigger 2022-02-16 15:52:22 +01:00
gpio-sa1100.c
gpio-sama5d2-piobu.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-sch311x.c
gpio-sch.c gpio: sch: fix typo in a comment 2021-12-13 13:29:09 +02:00
gpio-sifive.c gpio: sifive: use the correct register to read output values 2022-02-08 10:43:15 +01:00
gpio-sim.c gpio: sim: Declare gpio_sim_hog_config_item_ops static 2022-03-08 09:41:21 +01:00
gpio-siox.c gpio: siox: explicitly support only threaded irqs 2020-09-09 12:59:15 +02:00
gpio-sl28cpld.c gpio: sl28cpld: convert comma to semicolon 2021-02-15 11:43:26 +01:00
gpio-sodaville.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-spear-spics.c gpio: spear-spics: remove platform_set_drvdata() + cleanup probe 2021-05-25 16:14:34 +02:00
gpio-sprd.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-sta2x11.c gpio: sta2x11: fix typo in a comment 2021-12-17 12:26:13 +01:00
gpio-stmpe.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-stp-xway.c gpio: stp-xway: automatically drive GPHY leds on ar10 and grx390 2020-08-18 21:32:28 +02:00
gpio-syscon.c gpio: gpio-syscon: Fix formatting issues which confuse kerneldoc 2020-07-08 09:24:08 +02:00
gpio-tb10x.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-tc3589x.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-tegra186.c gpio: tegra186: Add IRQ per bank for Tegra241 2022-03-07 15:25:27 +01:00
gpio-tegra.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-thunderx.c
gpio-timberdale.c
gpio-tpic2810.c
gpio-tps6586x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65086.c
gpio-tps65218.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-tps65910.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-tps65912.c gpio: tps65912: remove platform_set_drvdata() + cleanup probe 2021-05-24 20:58:46 +02:00
gpio-tps68470.c gpio: tps68470: remove platform_set_drvdata() + cleanup probe 2021-05-21 16:47:20 +02:00
gpio-tqmx86.c irqchip updates for Linux 5.15 2021-08-29 21:19:50 +02:00
gpio-ts4800.c
gpio-ts4900.c gpio: ts4900: Do not set DAT and OE together 2022-03-10 10:00:27 +01:00
gpio-ts5500.c gpio: ts5500: Use platform_get_irq() to get the interrupt 2022-01-05 09:57:06 +01:00
gpio-twl4030.c
gpio-twl6040.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-ucb1400.c
gpio-uniphier.c gpio updates for v5.16 2021-11-08 11:55:21 -08:00
gpio-vf610.c gpio: Get rid of duplicate of_node assignment in the drivers 2021-12-17 17:39:35 +01:00
gpio-viperboard.c gpio: viperboard: remove platform_set_drvdata() call in probe 2021-08-31 11:29:28 +02:00
gpio-virtio.c virtio: wrap config->reset calls 2022-01-14 18:50:52 -05:00
gpio-visconti.c gpio: visconti: remove platform_set_drvdata() + cleanup probe 2021-05-21 15:28:22 +02:00
gpio-vr41xx.c
gpio-vx855.c gpio: vx855: convert comma to semicolon 2021-02-15 11:43:29 +01:00
gpio-wcd934x.c gpio: wcd934x: Fix shift-out-of-bounds error 2021-05-27 09:51:35 +02:00
gpio-wcove.c gpio: wcove: Split error handling for CTRL and IRQ registers 2021-05-20 15:20:52 +03:00
gpio-winbond.c
gpio-wm831x.c gpio: Propagate firmware node from a parent device 2021-12-17 17:50:46 +01:00
gpio-wm8350.c gpio: wm8350: remove platform_set_drvdata() + cleanup probe 2021-05-25 16:21:28 +02:00
gpio-wm8994.c gpio: wm8994: remove platform_set_drvdata() + cleanup probe 2021-05-25 16:21:14 +02:00
gpio-ws16c48.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-xgene-sb.c gpio: xgene-sb: Drop extra check to call acpi_gpiochip_request_interrupts() 2020-05-18 09:16:31 +02:00
gpio-xgene.c gpio: xgene: simplify probe, return devm_gpiochip_add_data() directly 2021-05-23 20:30:26 +02:00
gpio-xgs-iproc.c gpio: xgs-iproc: fix parsing of ngpios property 2021-10-25 10:10:37 +02:00
gpio-xilinx.c gpio: xilinx: simplify getting .driver_data 2021-09-22 11:48:19 +02:00
gpio-xlp.c gpio: xlp: Fix build errors from Netlogic XLP removal 2021-12-03 16:00:40 +01:00
gpio-xra1403.c gpio: xra1403: remove unneeded spi_set_drvdata() 2020-11-30 17:36:36 +01:00
gpio-xtensa.c
gpio-zevio.c
gpio-zynq.c gpio: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:38 +01:00
gpio-zynqmp-modepin.c gpio: modepin: Add driver support for modepin GPIO controller 2021-09-23 10:09:58 +02:00
gpiolib-acpi.c gpiolib: acpi: Convert ACPI value of debounce to microseconds 2022-03-07 15:25:27 +01:00
gpiolib-acpi.h gpiolib: Introduce acpi_gpio_dev_init() and call it from core 2021-03-26 14:56:18 +01:00
gpiolib-cdev.c gpiolib: Never return internal error codes to user space 2022-02-08 10:34:15 +01:00
gpiolib-cdev.h gpiolib: fix sysfs when cdev is not selected 2020-11-05 15:35:40 +01:00
gpiolib-devres.c gpiolib: constify passed device_node pointer 2021-08-05 21:21:58 +02:00
gpiolib-legacy.c
gpiolib-of.c gpiolib: of: make fwnode take precedence in struct gpio_chip 2021-12-17 12:26:13 +01:00
gpiolib-of.h gpiolib: Bind gpio_device to a driver to enable fw_devlink=on by default 2021-01-27 16:04:10 +01:00
gpiolib-sysfs.c gpiolib: Never return internal error codes to user space 2022-02-08 10:34:15 +01:00
gpiolib-sysfs.h gpiolib: move gpiolib-sysfs function declarations into their own header 2020-07-12 10:22:00 +02:00
gpiolib.c gpiolib: acpi: Convert ACPI value of debounce to microseconds 2022-03-07 15:25:27 +01:00
gpiolib.h gpiolib: Never return internal error codes to user space 2022-02-08 10:34:15 +01:00
Kconfig gpio updates for v5.17 2022-01-11 12:31:35 -08:00
Makefile gpio updates for v5.17 2022-01-11 12:31:35 -08:00
TODO gpio: intel-mid: Remove driver for deprecated platform 2021-02-15 11:43:32 +01:00