pinctrl: renesas: r8a779a0: Fix GPIO function on I2C-capable pins
authorGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 22 Apr 2022 07:29:30 +0000 (09:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jun 2022 08:23:09 +0000 (10:23 +0200)
commit6a9992f80c0f0e3fa80cee74d5301aa0647e2720
tree37c5c38c5a39d076c1bfb6afecc137769169f706
parent6cc90d5d449ef6f3cba4973db882318b1f45edbd
pinctrl: renesas: r8a779a0: Fix GPIO function on I2C-capable pins

[ Upstream commit 4288caed9a6319b766dc0adf605c7b401180db34 ]

Unlike on R-Car Gen3 SoCs, setting a bit to zero in a GPIO / Peripheral
Function Select Register (GPSRn) on R-Car V3U is not always sufficient
to configure a pin for GPIO.  For I2C-capable pins, the I2C function
must also be explicitly disabled in the corresponding Module Select
Register (MODSELn).

Add the missing FN_SEL_I2Ci_0 function enums to the pinmux_data[] array
by temporarily overriding the GP_2_j_FN function enum to expand to two
enums: the original GP_2_j_FN enum to configure the GSPR register bits,
and the missing FN_SEL_I2Ci_0 enum to configure the MODSEL register
bits.

Fixes: 741a7370fc3b8b54 ("pinctrl: renesas: Initial R8A779A0 (V3U) PFC support")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/4611e29e7b105513883084c1d6dc39c3ac8b525c.1650610471.git.geert+renesas@glider.be
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/renesas/pfc-r8a779a0.c