mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.127 All patches automatically rebased. Build system: x86_64 Build-tested: ramips/tplink_archer-a6-v3 Run-tested: ramips/tplink_archer-a6-v3 Signed-off-by: John Audia <therealgraysky@proton.me>
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From b4df02b562f4aa14ff6811f30e1b4d2159585c59 Mon Sep 17 00:00:00 2001
 | 
						|
From: Ansuel Smith <ansuelsmth@gmail.com>
 | 
						|
Date: Sun, 19 Sep 2021 18:28:15 +0200
 | 
						|
Subject: net: phy: at803x: add support for qca 8327 A variant internal phy
 | 
						|
 | 
						|
For qca8327 internal phy there are 2 different switch variant with 2
 | 
						|
different phy id. Add this missing variant so the internal phy can be
 | 
						|
correctly identified and fixed.
 | 
						|
 | 
						|
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
 | 
						|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
 | 
						|
Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
						|
---
 | 
						|
 drivers/net/phy/at803x.c | 25 ++++++++++++++++++++-----
 | 
						|
 1 file changed, 20 insertions(+), 5 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/net/phy/at803x.c
 | 
						|
+++ b/drivers/net/phy/at803x.c
 | 
						|
@@ -150,7 +150,8 @@
 | 
						|
 #define ATH8035_PHY_ID				0x004dd072
 | 
						|
 #define AT8030_PHY_ID_MASK			0xffffffef
 | 
						|
 
 | 
						|
-#define QCA8327_PHY_ID				0x004dd034
 | 
						|
+#define QCA8327_A_PHY_ID			0x004dd033
 | 
						|
+#define QCA8327_B_PHY_ID			0x004dd034
 | 
						|
 #define QCA8337_PHY_ID				0x004dd036
 | 
						|
 #define QCA8K_PHY_ID_MASK			0xffffffff
 | 
						|
 
 | 
						|
@@ -1411,10 +1412,23 @@ static struct phy_driver at803x_driver[]
 | 
						|
 	.get_strings = at803x_get_strings,
 | 
						|
 	.get_stats = at803x_get_stats,
 | 
						|
 }, {
 | 
						|
-	/* QCA8327 */
 | 
						|
-	.phy_id = QCA8327_PHY_ID,
 | 
						|
+	/* QCA8327-A from switch QCA8327-AL1A */
 | 
						|
+	.phy_id = QCA8327_A_PHY_ID,
 | 
						|
 	.phy_id_mask = QCA8K_PHY_ID_MASK,
 | 
						|
-	.name = "QCA PHY 8327",
 | 
						|
+	.name = "QCA PHY 8327-A",
 | 
						|
+	/* PHY_GBIT_FEATURES */
 | 
						|
+	.probe = at803x_probe,
 | 
						|
+	.flags = PHY_IS_INTERNAL,
 | 
						|
+	.config_init = qca83xx_config_init,
 | 
						|
+	.soft_reset = genphy_soft_reset,
 | 
						|
+	.get_sset_count = at803x_get_sset_count,
 | 
						|
+	.get_strings = at803x_get_strings,
 | 
						|
+	.get_stats = at803x_get_stats,
 | 
						|
+}, {
 | 
						|
+	/* QCA8327-B from switch QCA8327-BL1A */
 | 
						|
+	.phy_id = QCA8327_B_PHY_ID,
 | 
						|
+	.phy_id_mask = QCA8K_PHY_ID_MASK,
 | 
						|
+	.name = "QCA PHY 8327-B",
 | 
						|
 	/* PHY_GBIT_FEATURES */
 | 
						|
 	.probe = at803x_probe,
 | 
						|
 	.flags = PHY_IS_INTERNAL,
 | 
						|
@@ -1434,7 +1448,8 @@ static struct mdio_device_id __maybe_unu
 | 
						|
 	{ PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
 | 
						|
 	{ PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
 | 
						|
 	{ PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) },
 | 
						|
-	{ PHY_ID_MATCH_EXACT(QCA8327_PHY_ID) },
 | 
						|
+	{ PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) },
 | 
						|
+	{ PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) },
 | 
						|
 	{ }
 | 
						|
 };
 | 
						|
 
 |