linux/drivers/gpio
Vasile-Laurentiu Stanimir 56f7058af0 gpiolib: acpi: Set initial value for output pin based on bias and polarity
GpioIo() resources don't contain an initial value for the output pin.
Therefore instead of deducting its value solely based on bias field
we should deduce that value from the polarity and the bias fields.
Typical scenario is, when pin is defined in the table and its polarity,
specified in _DSD or via platform code, is defined as active low,
in the following call chain:

  -> acpi_populate_gpio_lookup()
     -> acpi_gpio_to_gpiod_flags()

it will return GPIOD_OUT_HIGH if bias is set no matter if polarity
is GPIO_ACTIVE_LOW, so it will return the current level instead of
the logical level.

Cc: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Vasile-Laurentiu Stanimir <vasile-laurentiu.stanimir@windriver.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-16 14:14:35 +02:00
..
gpio-74x164.c gpio: 74x164: utilize the for_each_set_clump8 macro 2019-12-04 19:44:12 -08:00
gpio-74xx-mmio.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-104-dio-48e.c gpio: 104-dio-48e: Use irqchip template 2020-07-23 15:09:26 +02:00
gpio-104-idi-48.c gpio: 104-idi-48: improve code indentation 2020-10-29 14:58:00 +01:00
gpio-104-idio-16.c gpio: 104-idio-16: Use irqchip template 2020-07-23 15:10:25 +02:00
gpio-adnp.c gpio: adnp: Use irqchip template 2020-07-20 15:34:59 +02:00
gpio-adp5520.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 2019-05-30 11:25:18 -07:00
gpio-adp5588.c gpio: adp5588: Use irqchip template 2020-07-20 15:47:50 +02:00
gpio-aggregator.c gpio: aggregator: Refactor ->{get, set}_multiple() to make Sparse happy 2020-08-18 21:39:39 +02:00
gpio-altera-a10sr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
gpio-altera.c gpio: gpio-altera: Add missing kerneldoc entry and demote comment 2020-07-08 09:24:07 +02:00
gpio-amd8111.c
gpio-amd-fch.c gpio: amd-fch: correct logic of GPIO_LINE_DIRECTION 2020-09-28 12:22:04 +02:00
gpio-amdpt.c Bulk GPIO changes for the v5.3 kernel cycle: 2019-07-09 09:07:00 -07:00
gpio-arizona.c gpio: arizona: put pm_runtime in case of failure 2020-06-16 10:38:07 +02:00
gpio-aspeed-sgpio.c Some late GPIO fixes for the v5.9 series: 2020-10-02 09:51:42 -07:00
gpio-aspeed.c gpio: aspeed: fix ast2600 bank properties 2020-10-26 15:51:57 +01:00
gpio-ath79.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
gpio-bcm-kona.c gpio: bcm-kona: Simplify with dev_err_probe() 2020-08-28 20:13:51 +02:00
gpio-bd9571mwv.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-bd70528.c This is the bulk of GPIO changes for the v5.5 kernel cycle 2019-12-01 17:56:50 -08:00
gpio-bd71828.c gpio: bd71828: Remove unneeded defines for GPIO_LINE_DIRECTION_IN/OUT 2020-02-10 10:55:18 +01:00
gpio-brcmstb.c gpio: brcmstb: support gpio-line-names property 2020-03-26 00:02:03 +01:00
gpio-bt8xx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
gpio-cadence.c gpio: cadence: Pass irqchip when adding gpiochip 2019-08-15 09:44:19 +02:00
gpio-clps711x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
gpio-creg-snps.c gpio: aspeed-sgpio: fixed typos 2020-01-23 16:16:05 +01:00
gpio-crystalcove.c gpio: crystalcove: Free IRQ on error path 2020-08-04 01:25:02 +02:00
gpio-cs5535.c docs: driver-model: move it to the driver-api book 2019-07-15 11:03:02 -03:00
gpio-da9052.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
gpio-da9055.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
gpio-davinci.c gpio: davinci: Simplify with dev_err_probe() 2020-08-28 20:15:06 +02:00
gpio-dln2.c gpio: dln2: Use irqchip template 2020-07-23 15:03:25 +02:00
gpio-dwapb.c gpio: dwapb: Fix missing conversion to GPIO-lib-based IRQ-chip 2020-10-26 15:48:25 +01:00
gpio-eic-sprd.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
gpio-em.c gpio: em: Use platform_get_irq() to obtain interrupts 2019-11-13 13:47:48 +01:00
gpio-ep93xx.c gpio: ep93xx: Pass irqchip when adding gpiochip 2019-09-04 10:59:10 +02:00
gpio-exar.c gpio: exar: Fix bad handling for ida_simple_get error path 2020-05-05 18:24:56 +02:00
gpio-f7188x.c gpio-f7188x: Add GPIO support for F81865 2020-05-05 18:22:26 +02:00
gpio-ftgpio010.c gpio: ftgpio010: Fix small typo 2020-04-28 15:50:28 +02:00
gpio-ge.c
gpio-gpio-mm.c gpio: gpio-mm: utilize for_each_set_clump8 macro 2019-12-04 19:44:12 -08:00
gpio-grgpio.c gpio: Remove the unused flags 2020-01-15 11:24:19 +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: Pass irqchip when adding gpiochip 2019-08-15 09:57:29 +02:00
gpio-htc-egpio.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-ich.c gpio: ich: changed every 'unsigned' to 'unsigned int' 2020-07-22 16:00:27 +03:00
gpio-intel-mid.c gpio: intel-mid: Move hardware initialization to callback 2019-10-15 01:18:51 +02:00
gpio-iop.c Merge branch 'i2c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2019-07-15 21:10:39 -07:00
gpio-it87.c gpio: gpio-it87: Fix formatting issues which confuse kerneldoc 2020-07-08 09:24:08 +02:00
gpio-ixp4xx.c gpio: updates for v5.4 2019-09-03 16:04:19 +02:00
gpio-janz-ttl.c Bulk GPIO changes for the v5.3 kernel cycle: 2019-07-09 09:07:00 -07:00
gpio-kempld.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-logicvc.c gpio: Add support for the Xylon LogiCVC GPIOs 2019-12-13 09:50:29 +01:00
gpio-loongson1.c drivers: gpio: loongon1: use devm_platform_ioremap_resource() 2019-04-05 00:04:26 +07:00
gpio-loongson.c MIPS: Loongson64: Rename CPU TYPES 2019-10-31 15:03:10 -07:00
gpio-lp873x.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-lp3943.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
gpio-lp87565.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-lpc18xx.c drivers: gpio: lpc18xx: use devm_platform_ioremap_resource() 2019-04-05 00:04:26 +07:00
gpio-lpc32xx.c gpio: lpc32xx: allow building on non-lpc32xx targets 2019-08-15 21:33:07 +02:00
gpio-madera.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-max730x.c gpio: max730x: bring gpiochip_add_data after port config 2020-05-22 17:01:25 +02:00
gpio-max732x.c gpio: max732x: Use irqchip template 2020-08-04 01:12:43 +02:00
gpio-max3191x.c gpio: max3191x: utilize the for_each_set_clump8 macro 2019-12-04 19:44:13 -08:00
gpio-max7300.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
gpio-max7301.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
gpio-max77620.c gpio: max77620: Use helper variable and clarify 2020-07-17 14:03:38 +02:00
gpio-max77650.c gpio: max77650: add MODULE_ALIAS() 2019-07-29 00:03:52 +02:00
gpio-mb86s7x.c gpio: mb86s7x: Remove superfluous test for ACPI companion 2020-05-18 09:15:16 +02:00
gpio-mc9s08dz60.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
gpio-mc33880.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
gpio-menz127.c drivers: mcb: use symbol namespaces 2019-11-03 19:54:53 +01:00
gpio-merrifield.c gpio: merrifield: Better show how GPIO and IRQ bases are derived from hardware 2020-04-16 20:41:06 +03:00
gpio-ml-ioh.c gpio: gpio-ml-ioh: Fix missing ':' in 'struct ioh_gpio_reg_data 2020-06-30 17:00:11 +03:00
gpio-mlxbf2.c gpio: gpio-mlxbf2.c: Provide __releases() annotation to stop confusing Sparse 2020-07-08 09:24:08 +02: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: refactor the module init function 2020-09-30 10:52:21 +02:00
gpio-moxtet.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-mpc8xxx.c gpio: mpc8xxx: simplify ls1028a/ls1088a support 2020-09-30 10:50:30 +02:00
gpio-mpc5200.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
gpio-msic.c gpio: msic: Convert to use SPDX identifier 2019-02-08 15:55:41 +02:00
gpio-mt7621.c gpio: mt7621: add BGPIOF_NO_SET_ON_INPUT flag 2020-03-25 09:50:45 +01:00
gpio-mvebu.c gpio: mvebu: Make use of for_each_requested_gpio() 2020-06-20 23:13:27 +02:00
gpio-mxc.c gpio: mxc: Support module build 2020-09-29 15:04:31 +02:00
gpio-mxs.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-octeon.c drivers: gpio: octeon: use devm_platform_ioremap_resource() 2019-04-05 00:04:27 +07:00
gpio-omap.c Revert "Revert "gpio: omap: Fix lost edge wake-up interrupts"" 2020-10-28 16:40:47 +01:00
gpio-palmas.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
gpio-pca953x.c GPIO bulk changes for the v5.10 kernel cycle: 2020-10-13 10:09:33 -07:00
gpio-pca9570.c gpio: pca9570: add GPO driver for PCA9570 2020-07-16 14:35:12 +02:00
gpio-pcf857x.c gpio: pcf857x: Use irqchip template 2020-07-20 15:56:40 +02:00
gpio-pch.c gpio: pch: Add a blank line between declaration and code 2020-07-21 19:12:57 +03:00
gpio-pci-idio-16.c gpio: pci-idio-16: Use irqchip template 2020-07-23 15:11:26 +02:00
gpio-pcie-idio-24.c gpio: pcie-idio-24: Enable PEX8311 interrupts 2020-11-06 15:19:44 +01:00
gpio-pisosr.c gpio: pisosr: Simplify with dev_err_probe() 2020-08-28 20:15:51 +02:00
gpio-pl061.c gpio: pl061: Support building as module 2020-04-14 16:23:46 +02:00
gpio-pmic-eic-sprd.c gpio: gpio-pmic-eic-sprd: Fix incorrectly named property 'map' 2020-07-08 09:24:07 +02:00
gpio-pxa.c gpio: pxa: Fix return value of pxa_gpio_probe() 2020-05-25 11:14:36 +02:00
gpio-raspberrypi-exp.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-rc5t583.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
gpio-rcar.c gpio: rcar: Use irqchip template 2020-07-30 00:13:10 +02:00
gpio-rda.c gpio: Add RDA Micro GPIO controller support 2019-10-29 15:12:52 +01:00
gpio-rdc321x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
gpio-reg.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-regmap.c gpio: add a reusable generic gpio_chip using regmap 2020-06-03 10:48:37 +02:00
gpio-sa1100.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-sama5d2-piobu.c gpio: gpio-sama5d2-piobu: Demote all kerneldoc headers to basic comment blocks 2020-07-08 09:24:07 +02:00
gpio-sch311x.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-sch.c gpio: sch: Add a blank line between declaration and code 2020-07-22 16:00:27 +03:00
gpio-sifive.c gpio: sifive: Fix SiFive gpio probe 2020-11-11 09:53:09 +01:00
gpio-siox.c gpio: siox: explicitly support only threaded irqs 2020-09-09 12:59:15 +02:00
gpio-sl28cpld.c gpio: Add support for the sl28cpld GPIO controller 2020-09-17 16:00:20 +01:00
gpio-sodaville.c gpio: sodaville: Convert to use SPDX identifier 2018-12-07 17:34:08 +02:00
gpio-spear-spics.c drivers: gpio: spear-spics: use devm_platform_ioremap_resource() 2019-04-05 00:04:27 +07:00
gpio-sprd.c gpio: sprd: Clear interrupt when setting the type as edge 2020-08-31 18:06:28 +02:00
gpio-sta2x11.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
gpio-stmpe.c gpio: stmpe: Fix forgotten refactoring 2020-10-28 15:51:27 +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: remove unneeded MODULE_VERSION() usage 2019-12-12 17:09:50 +01:00
gpio-tc3589x.c GPIO bulk changes for the v5.10 kernel cycle: 2020-10-13 10:09:33 -07:00
gpio-tegra186.c gpio: tegra186: Allow optional irq parent callbacks 2020-10-10 12:12:10 +01:00
gpio-tegra.c gpio: tegra: mask GPIO IRQs during IRQ shutdown 2020-04-28 16:22:33 +02:00
gpio-thunderx.c gpio: thunderx: Switch to GPIOLIB_IRQCHIP 2020-01-15 11:18:29 +01:00
gpio-timberdale.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
gpio-tpic2810.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-tps6586x.c
gpio-tps65086.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-tps65218.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 111 2019-05-24 17:39:01 +02:00
gpio-tps65910.c
gpio-tps65912.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-tps68470.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-tqmx86.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-ts4800.c drivers: gpio: ts4800: use devm_platform_ioremap_resource() 2019-04-05 00:04:28 +07:00
gpio-ts4900.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-ts5500.c
gpio-twl4030.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-twl6040.c gpio: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-ucb1400.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
gpio-uniphier.c gpio: uniphier: Replace zero-length array with flexible-array member 2020-03-02 08:52:55 +01:00
gpio-vf610.c gpio: vf610: Pass irqchip when adding gpiochip 2019-08-23 09:41:18 +02:00
gpio-viperboard.c gpio: viperboard: Replace 'unsigned' with 'unsigned int' 2019-08-05 11:26:58 +02:00
gpio-vr41xx.c gpio: vr41xx: Use devm_platform_ioremap_resource() 2019-06-27 15:56:51 +01:00
gpio-vx855.c gpio: vx855: fixed a typo 2020-01-15 13:45:01 +01:00
gpio-wcd934x.c gpio: wcd934x: Fix logic of wcd_gpio_get 2020-02-10 10:50:58 +01:00
gpio-wcove.c gpio: wcove: Request IRQ after all initialisation done 2020-08-04 01:25:02 +02:00
gpio-winbond.c
gpio-wm831x.c
gpio-wm8350.c
gpio-wm8994.c
gpio-ws16c48.c gpio: ws16c48: Use irqchip template 2020-07-23 15:08:55 +02: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: Use new GPIO_LINE_DIRECTION 2019-11-07 09:27:48 +01:00
gpio-xgs-iproc.c This is the bulk of pin control changes for the v5.6 kernel cycle: 2020-01-29 09:51:36 -08:00
gpio-xilinx.c gpio: xilinx: Fix bug where the wrong GPIO register is written to 2020-02-10 12:52:34 +01:00
gpio-xlp.c gpio: xlp: Pass irqchip when adding gpiochip 2019-08-15 09:55:07 +02:00
gpio-xra1403.c gpio: xra1403: Make use of for_each_requested_gpio() 2020-06-20 23:13:27 +02:00
gpio-xtensa.c gpio: xtensa: fix driver build 2019-12-09 10:40:18 +01:00
gpio-zevio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
gpio-zx.c gpio: Unconditionally assign .request()/.free() 2020-04-02 09:16:06 +02:00
gpio-zynq.c gpio: zynq: Simplify with dev_err_probe() 2020-08-28 20:16:06 +02:00
gpiolib-acpi.c gpiolib: acpi: Set initial value for output pin based on bias and polarity 2020-11-16 14:14:35 +02:00
gpiolib-acpi.h gpiolib: acpi: Take into account debounce settings 2020-11-16 14:14:35 +02:00
gpiolib-cdev.c gpiolib: Switch to use compat_need_64bit_alignment_fixup() helper 2020-10-28 15:47:00 +01:00
gpiolib-cdev.h gpiolib: fix sysfs when cdev is not selected 2020-11-05 15:35:40 +01:00
gpiolib-devres.c gpio: don't use same lockdep class for all devm_gpiochip_add_data users 2020-08-04 01:22:02 +02:00
gpiolib-legacy.c
gpiolib-of.c gpiolib: generalize devprop_gpiochip_set_names() for device properties 2020-09-14 10:54:01 +02:00
gpiolib-of.h gpio: of: Add DT overlay support for GPIO hogs 2020-02-21 17:10:33 +01:00
gpiolib-sysfs.c gpiolib: move gpiolib-sysfs function declarations into their own header 2020-07-12 10:22:00 +02: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: Introduce gpio_set_debounce_timeout() for internal use 2020-11-16 14:14:34 +02:00
gpiolib.h gpiolib: Introduce gpio_set_debounce_timeout() for internal use 2020-11-16 14:14:34 +02:00
Kconfig - New Drivers 2020-10-14 15:56:58 -07:00
Makefile - New Drivers 2020-10-14 15:56:58 -07:00
TODO gpio: Retire the explicit gpio irqchip code 2020-10-28 15:50:06 +01:00