Skip to content

Commit 8bc3c23

Browse files
Ansuelkuba-moo
authored andcommitted
net: phy: mediatek: Add Airoha AN7583 PHY support
Add Airoha AN7583 PHY support based on Airoha AN7581 with the small difference that BMCR_PDOWN is enabled by default and needs to be cleared to make the internal PHY correctly work. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20250522165313.6411-4-ansuelsmth@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent d76556d commit 8bc3c23

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

drivers/net/phy/mediatek/mtk-ge-soc.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#define MTK_GPHY_ID_MT7981 0x03a29461
1818
#define MTK_GPHY_ID_MT7988 0x03a29481
1919
#define MTK_GPHY_ID_AN7581 0x03a294c1
20+
#define MTK_GPHY_ID_AN7583 0xc0ff0420
2021

2122
#define MTK_EXT_PAGE_ACCESS 0x1f
2223
#define MTK_PHY_PAGE_STANDARD 0x0000
@@ -1463,6 +1464,12 @@ static int an7581_phy_led_polarity_set(struct phy_device *phydev, int index,
14631464
MTK_PHY_LED_ON_POLARITY, val);
14641465
}
14651466

1467+
static int an7583_phy_config_init(struct phy_device *phydev)
1468+
{
1469+
/* BMCR_PDOWN is enabled by default */
1470+
return phy_clear_bits(phydev, MII_BMCR, BMCR_PDOWN);
1471+
}
1472+
14661473
static struct phy_driver mtk_socphy_driver[] = {
14671474
{
14681475
PHY_ID_MATCH_EXACT(MTK_GPHY_ID_MT7981),
@@ -1509,6 +1516,18 @@ static struct phy_driver mtk_socphy_driver[] = {
15091516
.led_hw_control_get = mt798x_phy_led_hw_control_get,
15101517
.led_polarity_set = an7581_phy_led_polarity_set,
15111518
},
1519+
{
1520+
PHY_ID_MATCH_EXACT(MTK_GPHY_ID_AN7583),
1521+
.name = "Airoha AN7583 PHY",
1522+
.config_init = an7583_phy_config_init,
1523+
.probe = an7581_phy_probe,
1524+
.led_blink_set = mt798x_phy_led_blink_set,
1525+
.led_brightness_set = mt798x_phy_led_brightness_set,
1526+
.led_hw_is_supported = mt798x_phy_led_hw_is_supported,
1527+
.led_hw_control_set = mt798x_phy_led_hw_control_set,
1528+
.led_hw_control_get = mt798x_phy_led_hw_control_get,
1529+
.led_polarity_set = an7581_phy_led_polarity_set,
1530+
},
15121531
};
15131532

15141533
module_phy_driver(mtk_socphy_driver);
@@ -1517,6 +1536,7 @@ static const struct mdio_device_id __maybe_unused mtk_socphy_tbl[] = {
15171536
{ PHY_ID_MATCH_EXACT(MTK_GPHY_ID_MT7981) },
15181537
{ PHY_ID_MATCH_EXACT(MTK_GPHY_ID_MT7988) },
15191538
{ PHY_ID_MATCH_EXACT(MTK_GPHY_ID_AN7581) },
1539+
{ PHY_ID_MATCH_EXACT(MTK_GPHY_ID_AN7583) },
15201540
{ }
15211541
};
15221542

0 commit comments

Comments
 (0)