1
linux/drivers/gpio
Andrew Jeffery 5ae4cb94b3 gpio: aspeed: Add debounce support
Each GPIO in the Aspeed GPIO controller can choose one of four input
debounce states: to disable debouncing for an input, or select from one
of three programmable debounce timer values. Each GPIO in a
four-bank-set is assigned one bit in each of two debounce configuration
registers dedicated to the set, and selects a debounce state by
configuring the two bits to select one of the four options.

The limitation on debounce timer values is managed by mapping offsets
onto a configured timer value and keeping count of the number of users
a timer has. Timer values are configured on a first-come-first-served
basis.

A small twist in the hardware design is that the debounce configuration
register numbering is reversed with respect to the binary representation
of the debounce timer of interest (i.e. debounce register 1 represents
bit 1, and debounce register 2 represents bit 0 of the timer numbering).

Tested on an AST2500EVB with additional inspection under QEMU's
romulus-bmc machine.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2017-04-24 14:49:53 +02:00
..
devres.c gpiolib: Fix spelling of 'successful' 2017-03-14 10:51:28 +01:00
gpio-74x164.c
gpio-74xx-mmio.c
gpio-104-dio-48e.c gpio: 104-dio-48e: make use of raw_spinlock variants 2017-03-16 21:52:07 +01:00
gpio-104-idi-48.c gpio: 104-idi-48: make use of raw_spinlock variants 2017-03-28 14:55:08 +02:00
gpio-104-idio-16.c gpio: 104-idio-16: make use of raw_spinlock variants 2017-03-28 11:12:36 +02: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-altera-a10sr.c gpio: altera-a10sr: Drop unnecessary gpiochip_remove 2016-10-25 13:58:42 +02:00
gpio-altera.c gpio: altera: make use of raw_spinlock variants 2017-03-16 21:52:06 +01:00
gpio-amd8111.c
gpio-amdpt.c
gpio-arizona.c gpio: arizona: Correct handling for reading input GPIOs 2017-04-07 12:14:04 +02:00
gpio-aspeed.c gpio: aspeed: Add debounce support 2017-04-24 14:49:53 +02:00
gpio-ath79.c gpio: ath79: make use of raw_spinlock variants 2017-03-16 21:52:08 +01: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-brcmstb.c
gpio-bt8xx.c
gpio-clps711x.c
gpio-crystalcove.c gpio: set explicit nesting on drivers 2016-11-25 15:12:27 +01:00
gpio-cs5535.c
gpio-da9052.c
gpio-da9055.c
gpio-davinci.c gpio: davinci: use devm_irq_alloc_descs() 2017-03-15 11:16:36 +01: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: Add support for next generation of X-Gene SoC 2017-03-06 14:34:53 +01: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: Set proper output level in exar_direction_output 2017-03-15 11:16:31 +01:00
gpio-f7188x.c gpio: f7188x: Add F71889A GPIO support. 2017-04-07 12:26:42 +02:00
gpio-ftgpio010.c gpio: gemini: rename to match Faraday IP 2017-03-22 09:40:55 +01:00
gpio-ge.c
gpio-gpio-mm.c gpio: gpio-mm: Add support for GPIO names 2017-02-01 16:05:28 +01:00
gpio-grgpio.c
gpio-htc-egpio.c gpio: htc-egpio: read output value from cache 2016-11-13 11:50:22 +01:00
gpio-ich.c
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-it87.c
gpio-janz-ttl.c
gpio-kempld.c
gpio-ks8695.c
gpio-loongson1.c gpio: loongson1: remove redundant return value check 2016-09-23 15:10:00 +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-lpc18xx.c
gpio-lpc32xx.c
gpio-lynxpoint.c
gpio-max730x.c
gpio-max732x.c gpio: simplify adding threaded interrupts 2016-11-25 15:12:27 +01:00
gpio-max7300.c
gpio-max7301.c
gpio-max77620.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-mb86s7x.c gpio: mb86s7x: use builtin_platform_driver 2016-11-22 10:16:17 +01:00
gpio-mc9s08dz60.c
gpio-mc33880.c
gpio-mcp23s08.c gpio: mcp23s08: use regmap 2017-01-30 15:57:46 +01:00
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: Don't use GPIOF_DIR_IN / GPIOF_DIR_OUT 2017-03-23 14:06:46 +01:00
gpio-ml-ioh.c gpio: ml-ioh: use resource management for irqs 2017-03-15 11:16:34 +01:00
gpio-mm-lantiq.c gpio: update my email address 2016-12-30 09:18:10 +01:00
gpio-mmio.c gpio: mmio: add support for NI 169445 NAND GPIO 2017-03-23 09:49:06 +01:00
gpio-mockup.c gpio: mockup: use devm_irq_alloc_descs() 2017-03-15 11:16:32 +01:00
gpio-mpc8xxx.c gpio: mpc8xxx: Correct irq handler function 2016-10-24 02:20:40 +02:00
gpio-mpc5200.c
gpio-msic.c
gpio-mvebu.c gpio: mvebu: Add limited PWM support 2017-04-24 11:16:25 +02:00
gpio-mxc.c gpio: mxc: use devm_irq_alloc_descs() 2017-03-15 11:16:37 +01:00
gpio-mxs.c gpio: mxs: use devm_irq_alloc_descs() 2017-03-15 11:16:37 +01:00
gpio-octeon.c
gpio-omap.c gpio: omap: use devm_irq_alloc_descs() 2017-03-15 11:16:33 +01:00
gpio-palmas.c
gpio-pca953x.c gpio: pca953x: Expand comment for "reset" GPIO in ACPI case 2017-03-23 10:42:44 +01:00
gpio-pcf857x.c gpio: simplify adding threaded interrupts 2016-11-25 15:12:27 +01:00
gpio-pch.c gpio: pch: use resource management for irqs 2017-03-15 11:16:33 +01: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-pl061.c gpio: pl061: make use of raw_spinlock variants 2017-03-16 21:52:09 +01:00
gpio-pxa.c gpio: pxa: use devm_irq_alloc_descs() 2017-03-15 11:16:35 +01:00
gpio-rc5t583.c
gpio-rcar.c gpio: rcar: Fine-grained Runtime PM support 2016-12-28 01:33:02 +01:00
gpio-rdc321x.c
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-sch.c
gpio-sodaville.c gpio: sodaville: use resource management for irqs 2017-03-15 11:16:36 +01:00
gpio-spear-spics.c
gpio-sta2x11.c gpio: sta2x11: use resource management for irqs 2017-03-15 11:16:38 +01:00
gpio-stmpe.c Bulk GPIO changes for the v4.10 kernel cycle: 2016-12-13 07:54:57 -08:00
gpio-stp-xway.c gpio: update my email address 2016-12-30 09:18:10 +01:00
gpio-syscon.c
gpio-tb10x.c
gpio-tc3589x.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-tegra.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-timberdale.c
gpio-tpic2810.c
gpio-tps6586x.c
gpio-tps65086.c
gpio-tps65218.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-tps65910.c
gpio-tps65912.c
gpio-ts4800.c gpio: ts4800: Fix module autoload 2016-10-21 14:55:07 +02:00
gpio-ts4900.c
gpio-ts5500.c
gpio-twl4030.c gpio: twl4030: use devm_irq_alloc_descs() 2017-03-15 11:16:32 +01:00
gpio-twl6040.c
gpio-tz1090-pdc.c
gpio-tz1090.c
gpio-ucb1400.c
gpio-vf610.c gpio: vf610: use builtin_platform_driver 2016-11-24 16:19:02 +01:00
gpio-viperboard.c
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 pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-wm831x.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-wm8350.c
gpio-wm8994.c pinctrl / gpio: Introduce .set_config() callback for GPIO chips 2017-01-26 15:27:37 +01:00
gpio-ws16c48.c gpio: ws16c48: make use of raw_spinlock variants 2017-03-16 21:52:09 +01:00
gpio-xgene-sb.c
gpio-xgene.c
gpio-xilinx.c
gpio-xlp.c gpio: xlp: Update for ARCH_THUNDER2 2017-03-16 21:52:10 +01:00
gpio-xtensa.c
gpio-zevio.c
gpio-zx.c gpio: zx: make use of raw_spinlock variants 2017-03-16 21:52:10 +01:00
gpio-zynq.c gpio: Added zynq specific check for special pins on bank zero 2016-09-23 15:26:20 +02:00
gpiolib-acpi.c gpio: acpi: Ignore -EPROBE_DEFER for unselected gpioints 2017-03-16 21:52:13 +01:00
gpiolib-devprop.c gpio: gpiolib-devprop: Check chip->parent pointer before dereferencing 2016-10-25 20:23:19 +02:00
gpiolib-legacy.c
gpiolib-of.c gpio: core: Decouple open drain/source flag with active low/high 2017-04-07 12:23:29 +02:00
gpiolib-sysfs.c
gpiolib.c gpio: Use unsigned int for interrupt numbers 2017-04-13 14:16:23 +02:00
gpiolib.h gpiolib: Update documentation of struct acpi_gpio_info 2017-01-11 12:09:36 +01:00
Kconfig gpio: add generic single-register fixed-direction GPIO driver 2017-03-24 14:04:46 +01:00
Makefile gpio: add generic single-register fixed-direction GPIO driver 2017-03-24 14:04:46 +01:00