]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
arm64: dts: ti: k3-j722s: fix pinctrl settings
authorMichael Walle <mwalle@kernel.org>
Fri, 21 Feb 2025 09:14:47 +0000 (10:14 +0100)
committerVignesh Raghavendra <vigneshr@ti.com>
Wed, 5 Mar 2025 04:16:09 +0000 (09:46 +0530)
commit06daad327d043c23bc1ab4cdb519f589094b9e98
tree1659a8e62f60d39214857df3bbaaaa307a63cdfe
parent33bab9d84e52188cf73c3573fd7cf3ec0e01d007
arm64: dts: ti: k3-j722s: fix pinctrl settings

It appears that pinctrl-single is misused on this SoC to control both
the mux and the input and output and bias settings. This results in
non-working pinctrl configurations for GPIOs within the device tree.

This is what happens:
 (1) During startup the pinctrl settings are applied according to the
     device tree. I.e. the pin is configured as output and with
     pull-ups enabled.
 (2) During startup a device driver requests a GPIO.
 (3) pinctrl-single is applying the default GPIO setting according to
     the pinctrl-single,gpio-range property.

This would work as expected if the pinctrl-single is only controlling
the function mux, but it also controls the input/output buffer enable,
the pull-up and pull-down settings etc (pinctrl-single,function-mask
covers the entire pad setting instead of just the mux field).

Remove the pinctrl-single,gpio-range property, so that no settings are
applied during a gpio_request() call.

Fixes: 5e5c50964e2e ("arm64: dts: ti: k3-j722s: Add gpio-ranges properties")
Signed-off-by: Michael Walle <mwalle@kernel.org>
Link: https://lore.kernel.org/r/20250221091447.595199-2-mwalle@kernel.org
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
arch/arm64/boot/dts/ti/k3-j722s-main.dtsi