linux/drivers/pinctrl
Christian Marangi a061e739d3 pinctrl: airoha: fix wrong MDIO function bitmaks
With further testing with an attached Aeonsemi it was discovered that
the pinctrl MDIO function applied the wrong bitmask. The error was
probably caused by the confusing documentation related to these bits.

Inspecting what the bootloader actually configure, the SGMII_MDIO_MODE
is never actually set but instead it's set force enable to the 2 GPIO
(gpio 1-2) for MDC and MDIO pin.

The usage of GPIO might be confusing but this is just to instruct the
SoC to not mess with those 2 PIN and as Benjamin reported it's also an
Errata of 7581. The FORCE_GPIO_EN doesn't set them as GPIO function
(that is configured by a different register) but it's really to actually
""enable"" those lines.

Normally the SoC should autodetect this by HW but it seems AN7581 have
problem with this and require this workaround to force enable the 2 pin.

Applying this configuration permits correct functionality of any
externally attached PHY.

Cc: stable@vger.kernel.org
Fixes: 1c8ace2d07 ("pinctrl: airoha: Add support for EN7581 SoC")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Acked-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-09-08 23:01:19 +02:00
..
actions treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
aspeed pinctrl: aspeed-g6: Add PCIe RC PERST pin group 2025-07-23 13:22:41 +02:00
bcm treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
berlin
cirrus treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
freescale
intel treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
mediatek pinctrl: airoha: fix wrong MDIO function bitmaks 2025-09-08 23:01:19 +02:00
meson pinctrl: meson: Fix typo in device table macro 2025-08-18 11:10:47 +02:00
mvebu treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
nomadik treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
nuvoton treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
nxp
pxa
qcom treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
realtek
renesas treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
samsung treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
sophgo
spacemit
spear treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
sprd
starfive treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
stm32 treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
sunplus treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
sunxi treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
tegra
ti
uniphier
visconti
vt8500 treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
core.c
core.h
devicetree.c
devicetree.h
Kconfig pinctrl: STMFX: add missing HAS_IOMEM dependency 2025-08-22 08:34:30 +02:00
Makefile Pin control changes for v6.17 2025-08-02 12:07:09 -07:00
pinconf-generic.c
pinconf.c
pinconf.h
pinctrl-amd.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-amd.h
pinctrl-amdisp.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-amdisp.h
pinctrl-apple-gpio.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-artpec6.c
pinctrl-as3722.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-at91-pio4.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-at91.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-at91.h
pinctrl-aw9523.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-axp209.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-bm1880.c
pinctrl-cy8c95x0.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-da850-pupd.c
pinctrl-da9062.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-digicolor.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-eic7700.c pinctrl: eswin: Fix unsigned comparison to less than zero issue 2025-06-24 21:37:49 +02:00
pinctrl-ep93xx.c
pinctrl-equilibrium.c pinctrl: equilibrium: use pinmux_generic_add_pinfunction() 2025-07-19 17:59:57 +02:00
pinctrl-equilibrium.h
pinctrl-eyeq5.c
pinctrl-falcon.c
pinctrl-gemini.c
pinctrl-ingenic.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-k210.c
pinctrl-k230.c pinctrl: canaan: k230: Fix order of DT parse and pinctrl register 2025-06-24 21:36:15 +02:00
pinctrl-keembay.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-lantiq.c
pinctrl-lantiq.h
pinctrl-loongson2.c
pinctrl-lpc18xx.c
pinctrl-max77620.c
pinctrl-mcp23s08_i2c.c
pinctrl-mcp23s08_spi.c
pinctrl-mcp23s08.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-mcp23s08.h
pinctrl-microchip-sgpio.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-mlxbf3.c
pinctrl-ocelot.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-palmas.c
pinctrl-pef2256.c
pinctrl-pic32.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-pic32.h
pinctrl-pistachio.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-rk805.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-rockchip.c
pinctrl-rockchip.h
pinctrl-rp1.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-scmi.c
pinctrl-single.c
pinctrl-st.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-stmfx.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-sx150x.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-tb10x.c Pin control changes for v6.17 2025-08-02 12:07:09 -07:00
pinctrl-th1520.c
pinctrl-tps6594.c pinctrl: pinctrl-tps6594: Add TPS652G1 PMIC pinctrl and GPIO 2025-07-10 09:58:12 +01:00
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-zynq.c
pinctrl-zynqmp.c
pinmux.c pinctrl: provide pinmux_generic_add_pinfunction() 2025-07-19 17:59:48 +02:00
pinmux.h pinctrl: provide pinmux_generic_add_pinfunction() 2025-07-19 17:59:48 +02:00