linux/drivers/pinctrl/tegra
Prathamesh Shete 52f3ef292b pinctrl: tegra: Set SFIO mode to Mux Register
[ Upstream commit 17013f0acb ]

Tegra devices have an 'sfsel' bit field that determines whether a pin
operates in SFIO (Special Function I/O) or GPIO mode. Currently,
tegra_pinctrl_gpio_disable_free() sets this bit when releasing a GPIO.

However, tegra_pinctrl_set_mux() can be called independently in certain
code paths where gpio_disable_free() is not invoked. In such cases, failing
to set the SFIO mode could lead to incorrect pin configurations, resulting
in functional issues for peripherals relying on SFIO.

This patch ensures that whenever set_mux() is called, the SFIO mode is
correctly set in the Mux Register if the 'sfsel' bit is present. This
prevents situations where the pin remains in GPIO mode despite being
configured for SFIO use.

Fixes: 971dac7123 ("pinctrl: add a driver for NVIDIA Tegra")
Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Link: https://lore.kernel.org/20250306050542.16335-1-pshete@nvidia.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-04-10 14:39:20 +02:00
..
Kconfig pinctrl: tegra: Add Tegra234 pinmux driver 2023-06-09 09:14:44 +02:00
Makefile pinctrl: tegra: Add Tegra234 pinmux driver 2023-06-09 09:14:44 +02:00
pinctrl-tegra-xusb.c pinctrl: tegra: Use scope based of_node_put() cleanups 2024-06-26 11:55:34 +02:00
pinctrl-tegra.c pinctrl: tegra: Set SFIO mode to Mux Register 2025-04-10 14:39:20 +02:00
pinctrl-tegra.h Revert "pinctrl: tegra: Add support to display pin function" 2023-09-27 10:51:57 +02:00
pinctrl-tegra20.c pinctrl: tegra: Duplicate pinmux functions table 2023-06-01 13:17:35 +02:00
pinctrl-tegra30.c pinctrl: tegra: Duplicate pinmux functions table 2023-06-01 13:17:35 +02:00
pinctrl-tegra114.c pinctrl: tegra: Duplicate pinmux functions table 2023-06-01 13:17:35 +02:00
pinctrl-tegra124.c pinctrl: tegra: Duplicate pinmux functions table 2023-06-01 13:17:35 +02:00
pinctrl-tegra194.c pinctrl: Explicitly include correct DT includes 2023-07-20 21:41:24 +02:00
pinctrl-tegra210.c pinctrl: tegra: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper 2023-08-21 19:07:44 +03:00
pinctrl-tegra234.c pinctrl: tegra: avoid duplicate field initializers 2023-06-19 10:54:35 +02:00