From 3c495db7fda88f784a6ee757c664c3ec851b0b07 Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Mon, 1 Dec 2025 23:11:17 +0100 Subject: [PATCH] airoha: an7581: add switch ports interrups The MT7531 has an incorrect interrupt number described in the DTS. This commit also adds PHY interrupts. They work the same as on the MT7988. Tested on Gemtek W1700k. Suggested-by: Benjamin Larsson Signed-off-by: Aleksander Jan Bajkowski Link: https://github.com/openwrt/openwrt/pull/21016 Signed-off-by: Hauke Mehrtens (cherry picked from commit 788958880b66dd3f451d53801c8d25e5e6cfe1b8) [ fix conflict error, adapt for kernel 6.6 ] Signed-off-by: Christian Marangi (cherry picked from commit 6f55a705896900d199a338a82d2e5e3238b74681) --- target/linux/airoha/dts/an7581.dtsi | 6 ++++- ...mediatek-enable-interrupts-on-AN7581.patch | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 target/linux/airoha/patches-6.6/610-v7.0-net-phy-mediatek-enable-interrupts-on-AN7581.patch diff --git a/target/linux/airoha/dts/an7581.dtsi b/target/linux/airoha/dts/an7581.dtsi index 4e71e6181d..6d7d7f9f60 100644 --- a/target/linux/airoha/dts/an7581.dtsi +++ b/target/linux/airoha/dts/an7581.dtsi @@ -913,7 +913,7 @@ interrupt-controller; #interrupt-cells = <1>; interrupt-parent = <&gic>; - interrupts = ; + interrupts = ; status = "disabled"; @@ -972,6 +972,7 @@ gsw_phy1: ethernet-phy@9 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <9>; + interrupts = <1>; phy-mode = "internal"; status = "disabled"; @@ -994,6 +995,7 @@ gsw_phy2: ethernet-phy@a { compatible = "ethernet-phy-ieee802.3-c22"; reg = <10>; + interrupts = <2>; phy-mode = "internal"; status = "disabled"; @@ -1016,6 +1018,7 @@ gsw_phy3: ethernet-phy@b { compatible = "ethernet-phy-ieee802.3-c22"; reg = <11>; + interrupts = <3>; phy-mode = "internal"; status = "disabled"; @@ -1038,6 +1041,7 @@ gsw_phy4: ethernet-phy@c { compatible = "ethernet-phy-ieee802.3-c22"; reg = <12>; + interrupts = <4>; phy-mode = "internal"; status = "disabled"; diff --git a/target/linux/airoha/patches-6.6/610-v7.0-net-phy-mediatek-enable-interrupts-on-AN7581.patch b/target/linux/airoha/patches-6.6/610-v7.0-net-phy-mediatek-enable-interrupts-on-AN7581.patch new file mode 100644 index 0000000000..c9ca0912d3 --- /dev/null +++ b/target/linux/airoha/patches-6.6/610-v7.0-net-phy-mediatek-enable-interrupts-on-AN7581.patch @@ -0,0 +1,27 @@ +From 2e229771543b2b20e1fe29da00df80c917469449 Mon Sep 17 00:00:00 2001 +From: Aleksander Jan Bajkowski +Date: Fri, 2 Jan 2026 12:30:06 +0100 +Subject: [PATCH] net: phy: mediatek: enable interrupts on AN7581 + +Interrupts work just like on MT7988. + +Suggested-by: Benjamin Larsson +Signed-off-by: Aleksander Jan Bajkowski +Reviewed-by: Andrew Lunn +Link: https://patch.msgid.link/20260102113222.3519900-1-olek2@wp.pl +Signed-off-by: Jakub Kicinski +--- + drivers/net/phy/mediatek-ge-soc.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/net/phy/mediatek-ge-soc.c ++++ b/drivers/net/phy/mediatek-ge-soc.c +@@ -1590,6 +1590,8 @@ static struct phy_driver mtk_socphy_driv + { + PHY_ID_MATCH_EXACT(MTK_GPHY_ID_AN7581), + .name = "Airoha AN7581 PHY", ++ .config_intr = genphy_no_config_intr, ++ .handle_interrupt = genphy_handle_interrupt_no_ack, + .probe = an7581_phy_probe, + .led_blink_set = mt798x_phy_led_blink_set, + .led_brightness_set = mt798x_phy_led_brightness_set,