linux-yocto/drivers/pinctrl
Christian Marangi 238f33bb3f pinctrl: airoha: fix wrong MDIO function bitmaks
commit a061e739d36220c002da8b2429d5f16f637eb59a upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-10-02 13:48:37 +02:00
..
actions pinctrl: owl: use new GPIO line value setter callbacks 2025-04-29 10:34:45 +02:00
aspeed
bcm pinctrl: bcm2835: use new GPIO line value setter callbacks 2025-05-09 10:05:52 +02:00
berlin pinctrl: berlin: fix memory leak in berlin_pinctrl_build_state() 2025-08-15 16:39:00 +02:00
cirrus pinctrl: cirrus: madera-core: Use devm_pinctrl_register_mappings() 2025-08-15 16:38:57 +02:00
freescale Pin control bulk changes for v6.16: 2025-05-30 09:46:28 -07:00
intel pinctrl: intel: drop repeated config dependency 2025-03-03 16:20:51 +02:00
mediatek pinctrl: airoha: fix wrong MDIO function bitmaks 2025-10-02 13:48:37 +02:00
meson Pin control bulk changes for v6.16: 2025-05-30 09:46:28 -07:00
mvebu Merge branch 'ib-armada-for-v6.16' into devel 2025-05-15 00:25:42 +02:00
nomadik pinctr: nomadik: abx500: Restrict compile test 2025-04-17 09:40:43 +02:00
nuvoton pinctrl: nuvoton: Fix boot on ma35dx platforms 2025-06-18 14:29:34 +02:00
nxp
pxa pinctrl: pxa2xx: use devm_kmemdup_array() 2025-02-24 12:08:52 +02:00
qcom pinctrl: qcom: msm: mark certain pins as invalid for interrupts 2025-06-18 13:56:34 +02:00
realtek
renesas pinctrl: renesas: rzg2l: Add support for RZ/V2N SoC 2025-05-05 10:50:10 +02:00
samsung Samsung pinctrl drivers changes for v6.16 2025-05-14 00:01:56 +02:00
sophgo pinctrl: sophgo: add support for SG2044 SoC 2025-02-27 23:56:18 +01:00
spacemit pinctrl: spacemit: add clock support for K1 SoC 2025-04-23 10:39:03 +02:00
spear
sprd
starfive
stm32 pinctrl: stm32: Manage irq affinity settings 2025-08-20 18:41:26 +02:00
sunplus
sunxi pinctrl: sunxi: Fix memory leak on krealloc failure 2025-08-15 16:39:00 +02:00
tegra pinctrl: tegra: Fix off by one in tegra_pinctrl_get_group() 2025-03-20 09:12:44 +01:00
ti
uniphier pinctrl: uniphier: Do not enable by default during compile testing 2025-04-15 10:08:42 +02:00
visconti
vt8500
core.c pinctrl: core: add devm_pinctrl_register_mappings() 2025-05-21 10:09:47 +02:00
core.h
devicetree.c pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map 2025-02-17 00:16:01 +01:00
devicetree.h
Kconfig pinctrl: STMFX: add missing HAS_IOMEM dependency 2025-09-04 16:55:29 +02:00
Makefile pinctrl: amd: isp411: Add amdisp GPIO pinctrl 2025-03-05 08:47:43 +01:00
pinconf-generic.c pinctrl: pinconf-generic: Fix spelling mistake "paramers" -> "parameters" 2025-03-04 09:39:32 +01:00
pinconf.c
pinconf.h pinctrl: add stubs for OF-specific pinconf functions 2025-05-13 15:05:45 +02:00
pinctrl-amd.c pinctrl: amd: Clear GPIO debounce for suspend 2025-07-04 00:24:45 +02:00
pinctrl-amd.h pinctrl: amd: Take suspend type into consideration which pins are non-wake 2025-01-14 14:33:59 +01:00
pinctrl-amdisp.c pinctrl: amd: isp411: Fix IS_ERR() vs NULL check in probe() 2025-03-17 14:24:45 +01:00
pinctrl-amdisp.h pinctrl: amd: isp411: Add amdisp GPIO pinctrl 2025-03-05 08:47:43 +01:00
pinctrl-apple-gpio.c pinctrl: apple: Make regmap_config static const and fix indentation 2025-04-15 09:46:31 +02:00
pinctrl-artpec6.c
pinctrl-as3722.c
pinctrl-at91-pio4.c Pin control bulk changes for v6.16: 2025-05-30 09:46:28 -07:00
pinctrl-at91.c pinctrl: at91: Fix possible out-of-boundary access 2025-05-13 15:26:51 +02:00
pinctrl-at91.h
pinctrl-aw9523.c pinctrl: aw9523: fix can_sleep flag for GPIO chip 2025-07-04 10:31:50 +02:00
pinctrl-axp209.c pinctrl: axp209: use new GPIO line value setter callbacks 2025-04-29 10:34:19 +02:00
pinctrl-bm1880.c
pinctrl-cy8c95x0.c pinctrl: cy8c95x0: use new GPIO line value setter callbacks 2025-04-17 09:39:15 +02:00
pinctrl-da850-pupd.c
pinctrl-da9062.c
pinctrl-digicolor.c
pinctrl-ep93xx.c
pinctrl-equilibrium.c
pinctrl-equilibrium.h
pinctrl-eyeq5.c
pinctrl-falcon.c
pinctrl-gemini.c pinctrl: Use str_enable_disable-like helpers 2025-01-15 12:52:26 +01:00
pinctrl-ingenic.c pinctrl: ingenic: use new GPIO line value setter callbacks 2025-04-29 10:34:45 +02:00
pinctrl-k210.c
pinctrl-k230.c pinctrl: canaan: k230: Fix order of DT parse and pinctrl register 2025-08-15 16:39:00 +02:00
pinctrl-keembay.c pinctrl: keembay: Switch to irq_find_mapping() 2025-05-16 21:06:12 +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 pinctrl: mcp23s08: Reset all pins to input at probe 2025-04-15 09:17:39 +02:00
pinctrl-mcp23s08.h
pinctrl-microchip-sgpio.c pinctrl: microchip-sgpio: use new GPIO line value setter callbacks 2025-04-29 10:34:45 +02:00
pinctrl-mlxbf3.c
pinctrl-ocelot.c pinctrl: ocelot: use new GPIO line value setter callbacks 2025-04-17 09:39:15 +02:00
pinctrl-palmas.c
pinctrl-pef2256.c
pinctrl-pic32.c
pinctrl-pic32.h
pinctrl-pistachio.c pinctrl: pistachio: use new GPIO line value setter callbacks 2025-04-29 10:34:46 +02:00
pinctrl-rk805.c pinctrl: rk805: use new GPIO line value setter callbacks 2025-04-15 23:48:09 +02:00
pinctrl-rockchip.c pinctrl: rockchip: Add support for RK3528 2025-03-04 08:50:05 +01:00
pinctrl-rockchip.h pinctrl: rockchip: Add support for RK3528 2025-03-04 08:50:05 +01:00
pinctrl-scmi.c pinctrl: freescale: Add support for imx943 pinctrl 2025-05-21 10:12:14 +02:00
pinctrl-single.c pinctrl: Switch to irq_domain_create_*() 2025-05-16 21:06:11 +02:00
pinctrl-st.c pinctrl: st: Drop unused st_gpio_bank() function 2025-06-09 10:16:45 +02:00
pinctrl-stmfx.c pinctrl: stmfx: use new GPIO line value setter callbacks 2025-04-29 10:34:45 +02:00
pinctrl-sx150x.c pinctrl: sx150x: use new GPIO line value setter callbacks 2025-04-17 09:39:15 +02:00
pinctrl-tb10x.c pinctrl: tb10x: Drop of_match_ptr for ID table 2025-06-09 10:16:46 +02:00
pinctrl-th1520.c
pinctrl-tps6594.c
pinctrl-utils.c
pinctrl-utils.h
pinctrl-xway.c
pinctrl-zynq.c
pinctrl-zynqmp.c
pinmux.c pinmux: fix race causing mux_owner NULL with active mux_usecount 2025-08-15 16:39:07 +02:00
pinmux.h