linux/drivers/pinctrl
Brian Norris 5c9d8c4f6b pinctrl: rockchip: enable clock when reading pin direction register
We generally leave the GPIO clock disabled, unless an interrupt is
requested or we're accessing IO registers. We forgot to do this for the
->get_direction() callback, which means we can sometimes [1] get
incorrect results [2] from, e.g., /sys/kernel/debug/gpio.

Enable the clock, so we get the right results!

[1] Sometimes, because many systems have 1 or mor interrupt requested on
each GPIO bank, so they always leave their clock on.

[2] Incorrect, meaning the register returns 0, and so we interpret that
as "input".

Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2017-12-20 09:00:13 +01:00
..
aspeed pinctrl: aspeed: Rework strap register write logic for the AST2500 2017-08-31 13:39:38 +02:00
bcm This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
berlin pinctrl: move const qualifier before struct 2017-08-14 15:01:02 +02:00
freescale License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel pinctrl: intel: ensure error return ret is initialized 2017-12-07 09:59:39 +01:00
mediatek pinctrl: mediatek: add pinctrl driver for MT7622 SoC 2017-12-20 08:49:41 +01:00
meson pinctrl: meson-axg: adjust spicc pin naming 2017-12-13 00:52:49 +01:00
mvebu This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
nomadik This is the bulk of GPIO changes for the v4.15 kernel cycle: 2017-11-14 17:23:44 -08:00
pxa pinctrl: pxa: pxa2xx: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE 2017-11-30 14:42:04 +01:00
qcom This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
samsung This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
sh-pfc This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
sirf Merge branch 'gpio-irqchip-rework' of /home/linus/linux-gpio into devel 2017-11-09 09:38:42 +01:00
spear This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
sprd pinctrl: sprd: fix off by one bugs 2017-09-12 11:27:36 +02:00
stm32 pinctrl: stm32: Add STM32MP157 MPU support 2017-12-20 08:36:22 +01:00
sunxi This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
tegra License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ti pinctrl: ti-iodelay: remove redundant unused variable dev 2017-11-08 13:49:57 +01:00
uniphier This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
vt8500 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zte pinctrl: zte: fix 'functions' allocation in zx_pinctrl_build_state() 2017-08-14 15:01:01 +02:00
core.c pinctrl: Really force states during suspend/resume 2017-12-20 08:24:13 +01:00
core.h pinctrl/gpio: Unify namespace for cross-calls 2017-09-22 11:02:10 +02:00
devicetree.c pinctrl: Delete an error message 2017-08-31 15:45:29 +02:00
devicetree.h pinctrl: core: Use delayed work for hogs 2017-01-03 09:26:16 +01:00
Kconfig pinctrl: move gpio-axp209 to pinctrl 2017-12-07 10:05:30 +01:00
Makefile pinctrl: mediatek: add pinctrl driver for MT7622 SoC 2017-12-20 08:49:41 +01:00
pinconf-generic.c pinctrl: Add skew-delay pin config and bindings 2017-11-08 13:49:45 +01:00
pinconf.c pinctrl: check ops->pin_config_set in pinconf_set_config() 2017-08-14 15:01:59 +02:00
pinconf.h pinctrl: move const qualifier before struct 2017-08-14 15:01:02 +02:00
pinctrl-adi2-bf54x.c
pinctrl-adi2-bf60x.c
pinctrl-adi2.c pinctrl: adi2: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:40:45 +02:00
pinctrl-adi2.h
pinctrl-amd.c This is the bulk of pin control changes for the v4.15 2017-11-16 10:57:11 -08:00
pinctrl-amd.h pinctrl/amd: save pin registers over suspend/resume 2017-09-12 15:58:45 +02:00
pinctrl-artpec6.c pinctrl: artpec6: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:36:59 +02:00
pinctrl-as3722.c pinctrl: as3722: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 09:23:21 +02:00
pinctrl-at91-pio4.c pinctrl: Convert to using %pOF instead of full_name 2017-08-14 15:01:02 +02:00
pinctrl-at91.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-at91.h
pinctrl-axp209.c pinctrl: axp209: add support for AXP813 GPIOs 2017-12-07 10:08:12 +01:00
pinctrl-coh901.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-coh901.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pinctrl-da850-pupd.c Merge branch 'ib-pinctrl-genprops' into devel 2017-01-26 15:27:54 +01:00
pinctrl-digicolor.c pinctrl: digicolor: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:39:36 +02:00
pinctrl-falcon.c pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-gemini.c pinctrl: gemini: Support drive strength setting 2017-12-07 09:59:26 +01:00
pinctrl-ingenic.c pinctrl: ingenic: make function ingenic_pinctrl_probe static 2017-10-09 23:01:48 +02:00
pinctrl-lantiq.c pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-lantiq.h pinctrl: update my email address 2016-12-30 09:17:02 +01:00
pinctrl-lpc18xx.c pinctrl: Widen the generic pinconf argument from 16 to 24 bits 2017-01-26 15:22:32 +01:00
pinctrl-max77620.c pinctrl: max77620: Use common error handling code in max77620_pinconf_set() 2017-11-08 13:49:57 +01:00
pinctrl-mcp23s08.c pinctrl: mcp23s08: Improve unlocking of a mutex in mcp23s08_irq() 2017-11-29 13:51:10 +01:00
pinctrl-oxnas.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-palmas.c pinctrl: Widen the generic pinconf argument from 16 to 24 bits 2017-01-26 15:22:32 +01:00
pinctrl-pic32.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-pic32.h pinctrl: pinctrl-pic32: Add PIC32 pin control driver 2016-02-05 23:54:47 +01:00
pinctrl-pistachio.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-rk805.c pinctrl: Add pinctrl driver for the RK805 PMIC 2017-08-21 08:54:46 +01:00
pinctrl-rockchip.c pinctrl: rockchip: enable clock when reading pin direction register 2017-12-20 09:00:13 +01:00
pinctrl-rza1.c pinctrl: rza1: Add support for RZ/A1L 2017-10-09 09:16:21 +02:00
pinctrl-single.c pinctrl: single: make two arrays static const, reduces object code size 2017-09-21 14:09:49 +02:00
pinctrl-st.c gpio: Move irqdomain into struct gpio_irq_chip 2017-11-08 14:06:21 +01:00
pinctrl-sx150x.c Merge branch 'gpio-irqchip-rework' of /home/linus/linux-gpio into devel 2017-11-09 09:38:42 +01:00
pinctrl-tb10x.c pinctrl: tb10x: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:41:40 +02:00
pinctrl-tz1090-pdc.c pinctrl: tz1090-pdc: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:42:00 +02:00
pinctrl-tz1090.c pinctrl: tz1090: constify pinconf_ops, pinctrl_ops, and pinmux_ops structures 2017-08-22 14:42:19 +02:00
pinctrl-u300.c pinctrl: u300: make u300_pmx_registers static 2016-06-13 09:27:43 +02:00
pinctrl-utils.c pinctrl: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map 2016-04-01 15:06:36 +02:00
pinctrl-utils.h pinctrl: Rename pinctrl_utils_dt_free_map to pinctrl_utils_free_map 2016-04-01 15:06:36 +02:00
pinctrl-xway.c pinctrl: xway: fix copy/paste error in xrx200_grps 2017-05-29 18:46:42 +02:00
pinctrl-zynq.c pinctrl: zynq: Fix warnings in the driver 2017-08-14 15:01:01 +02:00
pinmux.c pinctrl: add __rcu annotations to fix sparse warnings 2017-08-14 15:01:59 +02:00
pinmux.h pinctrl: move const qualifier before struct 2017-08-14 15:01:02 +02:00