linux/drivers/pinctrl/mediatek
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
..
Kconfig pinctrl: mediatek: Add pinctrl driver for mt8189 2025-07-23 13:35:40 +02:00
Makefile pinctrl: mediatek: Add pinctrl driver for mt8189 2025-07-23 13:35:40 +02:00
mtk-eint.c pinctrl: Use dev_fwnode() 2025-06-18 13:32:11 +02:00
mtk-eint.h pinctrl: mediatek: eint: Fix invalid pointer dereference for v1 platforms 2025-05-21 00:39:30 +02:00
pinctrl-airoha.c pinctrl: airoha: fix wrong MDIO function bitmaks 2025-09-08 23:01:19 +02:00
pinctrl-moore.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-moore.h pinctrl: mediatek: moore: Convert to use func member 2024-06-17 09:24:57 +02:00
pinctrl-mt76x8.c pinctrl: ralink: mt76x8: fix pinmux function 2024-06-17 09:23:02 +02:00
pinctrl-mt2701.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt2712.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt6397.c pinctrl: Explicitly include correct DT includes 2023-07-20 21:41:24 +02:00
pinctrl-mt6765.c pinctrl: mediatek: fix module autoloading 2024-04-17 10:43:50 +02:00
pinctrl-mt6779.c pinctrl: mediatek: fix module autoloading 2024-04-17 10:43:50 +02:00
pinctrl-mt6795.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt6797.c pinctrl: mediatek: paris: Unify probe function by using OF match data 2022-03-17 02:06:52 +01:00
pinctrl-mt6893.c pinctrl: mediatek: Add pinctrl driver for MT6893 Dimensity 1200 2025-04-17 09:39:15 +02:00
pinctrl-mt7620.c pinctrl: ralink: move to mediatek as mtmips 2023-03-19 21:47:25 +01:00
pinctrl-mt7621.c pinctrl: ralink: move to mediatek as mtmips 2023-03-19 21:47:25 +01:00
pinctrl-mt7622.c pinctrl: mediatek: moore: Provide a helper macro PINCTRL_PIN_FUNCTION() 2024-06-17 09:24:05 +02:00
pinctrl-mt7623.c pinctrl: mediatek: moore: Provide a helper macro PINCTRL_PIN_FUNCTION() 2024-06-17 09:24:05 +02:00
pinctrl-mt7629.c pinctrl: mediatek: moore: Provide a helper macro PINCTRL_PIN_FUNCTION() 2024-06-17 09:24:05 +02:00
pinctrl-mt7981.c pinctrl: mediatek: moore: Provide a helper macro PINCTRL_PIN_FUNCTION() 2024-06-17 09:24:05 +02:00
pinctrl-mt7986.c pinctrl: mediatek: moore: Provide a helper macro PINCTRL_PIN_FUNCTION() 2024-06-17 09:24:05 +02:00
pinctrl-mt7988.c pinctrl: mediatek: add MT7988 pinctrl driver 2024-12-27 09:21:58 +01:00
pinctrl-mt8127.c pinctrl: Explicitly include correct DT includes 2023-07-20 21:41:24 +02:00
pinctrl-mt8135.c pinctrl: Explicitly include correct DT includes 2023-07-20 21:41:24 +02:00
pinctrl-mt8167.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt8173.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt8183.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt8186.c pinctrl: mediatek: Drop bogus slew rate register range for MT8186 2024-02-07 11:47:49 +01:00
pinctrl-mt8188.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt8189.c pinctrl: mediatek: Add pinctrl driver for mt8189 2025-07-23 13:35:40 +02:00
pinctrl-mt8192.c pinctrl: mediatek: Drop bogus slew rate register range for MT8192 2024-02-07 11:47:49 +01:00
pinctrl-mt8195.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt8196.c pinctrl: mediatek: pinctrl: mediatek: add mt8196 eint pin 2025-04-23 10:40:50 +02:00
pinctrl-mt8365.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mt8516.c pinctrl: mediatek: Switch to use no-IRQ PM helpers 2023-12-04 15:32:42 +01:00
pinctrl-mtk-common-v2.c pinctrl: mediatek: eint: Fix invalid pointer dereference for v1 platforms 2025-05-21 00:39:30 +02:00
pinctrl-mtk-common-v2.h pinctrl: mediatek: Add EINT support for multiple addresses 2025-03-24 08:51:09 +01:00
pinctrl-mtk-common.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-mtk-common.h pinctrl: mediatek: common: add mt8365_set_clr_mode() callback for broken SET/CLR modes 2022-11-07 15:42:53 +01:00
pinctrl-mtk-mt2701.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
pinctrl-mtk-mt2712.h pinctrl: mediatek: Use the correct style for SPDX License Identifier 2019-12-12 11:30:33 +01:00
pinctrl-mtk-mt6397.h pinctrl: mtk: fix check warnings. 2018-03-26 10:58:33 +02:00
pinctrl-mtk-mt6765.h pinctrl: mediatek: add MT6765 pinctrl driver 2018-09-21 09:12:55 -07:00
pinctrl-mtk-mt6779.h pinctrl: mediatek: add pinctrl support for MT6779 SoC 2020-08-04 01:29:09 +02:00
pinctrl-mtk-mt6795.h pinctrl: mediatek: Add pinctrl driver for MT6795 Helio X10 2022-05-19 15:11:15 +02:00
pinctrl-mtk-mt6797.h pinctrl: mediatek: Add initial pinctrl driver for MT6797 SoC 2018-11-15 11:05:54 +01:00
pinctrl-mtk-mt6893.h pinctrl: mediatek: Add pinctrl driver for MT6893 Dimensity 1200 2025-04-17 09:39:15 +02:00
pinctrl-mtk-mt8127.h pinctrl: mtk: fix check warnings. 2018-03-26 10:58:33 +02:00
pinctrl-mtk-mt8135.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
pinctrl-mtk-mt8167.h pinctrl: mediatek: Add MT8167 Pinctrl driver 2020-09-27 11:20:09 +02:00
pinctrl-mtk-mt8173.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
pinctrl-mtk-mt8183.h pinctrl: mediatek: add MT8183 pinctrl driver 2018-09-18 14:53:29 -07:00
pinctrl-mtk-mt8186.h pinctrl: add pinctrl driver on mt8186 2022-03-15 01:00:03 +01:00
pinctrl-mtk-mt8188.h pinctrl: mediatek: add mt8188 driver 2022-08-25 14:50:44 +02:00
pinctrl-mtk-mt8189.h pinctrl: mediatek: Add pinctrl driver for mt8189 2025-07-23 13:35:40 +02:00
pinctrl-mtk-mt8192.h pinctrl: mediatek: Add pinctrl driver for mt8192 2020-08-27 10:50:57 +02:00
pinctrl-mtk-mt8195.h pinctrl: add pinctrl driver on mt8195 2021-04-22 01:53:02 +02:00
pinctrl-mtk-mt8196.h pinctrl: mediatek: pinctrl: mediatek: add mt8196 eint pin 2025-04-23 10:40:50 +02:00
pinctrl-mtk-mt8365.h pinctrl: mediatek: add support for mt8365 SoC 2021-05-27 16:50:15 +02:00
pinctrl-mtk-mt8516.h pinctrl: mediatek: Add MT8516 Pinctrl driver 2019-05-03 07:53:13 +01:00
pinctrl-mtmips.c pinctrl: ralink: move to mediatek as mtmips 2023-03-19 21:47:25 +01:00
pinctrl-mtmips.h pinctrl: ralink: move to mediatek as mtmips 2023-03-19 21:47:25 +01:00
pinctrl-paris.c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pinctrl-paris.h pinctrl: mediatek: Add EINT support for multiple addresses 2025-03-24 08:51:09 +01:00
pinctrl-rt305x.c pinctrl: ralink: move to mediatek as mtmips 2023-03-19 21:47:25 +01:00
pinctrl-rt2880.c pinctrl: ralink: move to mediatek as mtmips 2023-03-19 21:47:25 +01:00
pinctrl-rt3883.c pinctrl: ralink: move to mediatek as mtmips 2023-03-19 21:47:25 +01:00