linux-stable/drivers/pinctrl
Quentin Schulz 0ec105bf41 pinctrl: rockchip: add pinmux_ops.gpio_set_direction callback
commit 4635c0e2a7 upstream.

Before the split of gpio and pinctrl sections in their own driver,
rockchip_set_mux was called in pinmux_ops.gpio_set_direction for
configuring a pin in its GPIO function.

This is essential for cases where pinctrl is "bypassed" by gpio
consumers otherwise the GPIO function is not configured for the pin and
it does not work. Such was the case for the sysfs/libgpiod userspace
GPIO handling.

Let's re-implement the pinmux_ops.gpio_set_direction callback so that
the gpio subsystem can request from the pinctrl driver to put the pin in
its GPIO function.

Fixes: 9ce9a02039 ("pinctrl/rockchip: drop the gpio related codes")
Cc: stable@vger.kernel.org
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Link: https://lore.kernel.org/r/20220930132033.4003377-2-foss+kernel@0leil.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-10-24 09:56:51 +02:00
..
actions
aspeed pinctrl: aspeed: Fix potential NULL dereference in aspeed_pinmux_set_mux() 2022-06-15 15:19:57 +02:00
bcm pinctrl: bcm2835: implement hook for missing gpio-ranges 2022-04-21 16:12:08 +02:00
berlin pinctrl: berlin: bg4ct: Use devm_platform_*ioremap_resource() APIs 2022-05-22 22:45:47 +02:00
cirrus pinctrl: Propagate firmware node from a parent device 2021-12-22 03:09:56 +01:00
freescale pinctrl: imx: Add the zero base flag for imx93 2022-06-28 15:15:03 +02:00
intel pinctrl: intel: Check against matching data instead of ACPI companion 2022-08-25 11:45:44 +02:00
mediatek Pin control bulk changes for the v5.19 series: 2022-05-28 11:15:54 -07:00
meson intel-gpio for v5.19-1 2022-05-04 23:15:21 +02:00
mvebu pinctrl: armada-37xx: use raw spinlocks for regmap to avoid invalid wait context 2022-07-19 00:57:38 +02:00
nomadik pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map 2022-08-25 11:45:17 +02:00
nuvoton Pin control bulk changes for the v5.19 series: 2022-05-28 11:15:54 -07:00
pxa drivers/pinctrl: remove redundant ret variable 2022-01-24 01:12:54 +01:00
qcom pinctrl: qcom: sc8180x: Fix wrong pin numbers 2022-09-23 14:14:02 +02:00
ralink pinctrl: ralink: Check for null return of devm_kcalloc 2022-07-11 14:40:17 +02:00
renesas pinctrl: renesas: rzg2l: Return -EINVAL for pins which have input disabled 2022-08-25 11:45:17 +02:00
samsung gpio updates for v5.19 2022-05-26 14:51:38 -07:00
spear
sprd
stm32 pinctrl: stm32: fix optional IRQ support to gpios 2022-06-28 16:12:40 +02:00
sunplus pinctrl: sunplus: Add check for kcalloc 2022-07-11 15:04:19 +02:00
sunxi pinctrl: sunxi: Fix name for A100 R_PIO 2022-09-23 14:14:02 +02:00
tegra pinctrl: tegra: tegra194: drop unused pin groups 2022-05-04 23:40:05 +02:00
ti
uniphier pinctrl: uniphier: Add USB device pinmux settings 2022-02-11 01:37:21 +01:00
visconti
vt8500
core.c
core.h
devicetree.c
devicetree.h
Kconfig pinctrl: Don't allow PINCTRL_AMD to be a module 2022-07-18 12:47:28 +02:00
Makefile pinctrl: nuvoton: Add driver for WPCM450 2022-03-15 01:16:20 +01:00
pinconf-generic.c pinctrl: pinconf-generic: Print arguments for bias-pull-* 2022-03-15 01:24:15 +01:00
pinconf.c
pinconf.h
pinctrl-amd.c pinctrl: amd: Don't save/restore interrupt status and wake status bits 2022-08-25 11:45:18 +02:00
pinctrl-amd.h
pinctrl-apple-gpio.c pinctrl: apple: Use a raw spinlock for the regmap 2022-05-25 09:37:44 +02:00
pinctrl-artpec6.c
pinctrl-as3722.c pinctrl: Propagate firmware node from a parent device 2021-12-22 03:09:56 +01:00
pinctrl-at91-pio4.c pinctrl: at91-pio4: Use platform_get_irq() to get the interrupt 2022-01-24 01:12:54 +01:00
pinctrl-at91.c
pinctrl-at91.h
pinctrl-axp209.c
pinctrl-bm1880.c
pinctrl-da850-pupd.c
pinctrl-da9062.c pinctrl: Propagate firmware node from a parent device 2021-12-22 03:09:56 +01:00
pinctrl-digicolor.c
pinctrl-equilibrium.c pinctrl: equilibrium: Switch to use fwnode instead of of_node 2022-05-09 13:46:51 +02:00
pinctrl-equilibrium.h pinctrl: equilibrium: Switch to use fwnode instead of of_node 2022-05-09 13:46:51 +02:00
pinctrl-falcon.c
pinctrl-gemini.c
pinctrl-ingenic.c pinctrl: ingenic: Garbage-collect code paths for SoCs disabled by config 2022-04-22 22:58:23 +02:00
pinctrl-k210.c pinctrl: k210: Fix bias-pull-up 2022-02-11 02:19:47 +01:00
pinctrl-keembay.c pinctrl: keembay: rework loops looking for groups names 2021-12-22 02:57:27 +01:00
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-lpc18xx.c
pinctrl-max77620.c pinctrl: max77620: drop unneeded MODULE_ALIAS 2022-04-22 22:56:46 +02:00
pinctrl-mcp23s08.c
pinctrl-mcp23s08.h
pinctrl-mcp23s08_i2c.c
pinctrl-mcp23s08_spi.c
pinctrl-microchip-sgpio.c pinctrl: microchip-sgpio: Switch to use fwnode instead of of_node 2022-05-09 13:47:49 +02:00
pinctrl-ocelot.c pinctrl: ocelot: Fix pincfg 2022-07-18 11:22:43 +02:00
pinctrl-oxnas.c
pinctrl-palmas.c
pinctrl-pic32.c
pinctrl-pic32.h
pinctrl-pistachio.c pinctrl: pistachio: fix use of irq_of_parse_and_map() 2022-04-24 16:24:09 +02:00
pinctrl-rk805.c pinctrl: Propagate firmware node from a parent device 2021-12-22 03:09:56 +01:00
pinctrl-rockchip.c pinctrl: rockchip: add pinmux_ops.gpio_set_direction callback 2022-10-24 09:56:51 +02:00
pinctrl-rockchip.h pinctrl/rockchip: add rk3588 support 2022-04-29 00:55:02 +02:00
pinctrl-single.c
pinctrl-st.c
pinctrl-starfive.c pinctrl: starfive: Make the irqchip immutable 2022-05-19 15:16:29 +02:00
pinctrl-stmfx.c
pinctrl-sx150x.c
pinctrl-tb10x.c
pinctrl-thunderbay.c pinctrl: thunderbay: Use devm_platform_ioremap_resource() 2022-04-23 00:01:55 +02:00
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl-zynq.c pinctrl: zynq: use module_platform_driver to simplify the code 2022-03-15 01:46:13 +01:00
pinctrl-zynqmp.c pinctrl: zynqmp: Revert "Unify pin naming" 2022-01-28 16:52:04 +02:00
pinmux.c pinctrl: add one more "const" for generic function groups 2021-12-22 02:57:27 +01:00
pinmux.h pinctrl: add one more "const" for generic function groups 2021-12-22 02:57:27 +01:00