generic: add support for vsc8504 phy
adds support for vsc8504 phy. patch have use on 5.4 kernel and has to be dropped after since phy is supported by CONFIG_MICROSEMI_PHY on newer LTS kernels. Tested-by: Johannes Kimmel <fff@bareminimum.eu> Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
This commit is contained in:
		
				
					committed by
					
						
						Daniel Golle
					
				
			
			
				
	
			
			
			
						parent
						
							c8a81ada58
						
					
				
				
					commit
					b9898cd78a
				
			
							
								
								
									
										57
									
								
								target/linux/generic/hack-5.4/703-add_vsc8504_support.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								target/linux/generic/hack-5.4/703-add_vsc8504_support.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
			
		||||
From: Roman Kuzmitskii <damex.pp@icloud.com>
 | 
			
		||||
Date: Thu, 05 Nov 2020 02:00:00 +0000
 | 
			
		||||
Subject: [PATCH] net: phy: vitesse: add vsc8504 support
 | 
			
		||||
 | 
			
		||||
This patch adds support for vsc8504 phy.
 | 
			
		||||
That phy is changed owner:
 | 
			
		||||
 vitesse -> microsemi -> microchip
 | 
			
		||||
So is its driver in kernel was changed and rewritten.
 | 
			
		||||
 | 
			
		||||
there is no need to upstream this patch.
 | 
			
		||||
this vsc8504 is supported by newer kernels out of box.
 | 
			
		||||
support could be enabled by CONFIG_MICROSEMI_PHY.
 | 
			
		||||
 | 
			
		||||
Tested-by: Johannes Kimmel <fff@bareminimum.eu>
 | 
			
		||||
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
 | 
			
		||||
--- a/drivers/net/phy/vitesse.c
 | 
			
		||||
+++ b/drivers/net/phy/vitesse.c
 | 
			
		||||
@@ -61,6 +61,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #define PHY_ID_VSC8234			0x000fc620
 | 
			
		||||
 #define PHY_ID_VSC8244			0x000fc6c0
 | 
			
		||||
+#define PHY_ID_VSC8504			0x000704c2
 | 
			
		||||
 #define PHY_ID_VSC8572			0x000704d0
 | 
			
		||||
 #define PHY_ID_VSC8601			0x00070420
 | 
			
		||||
 #define PHY_ID_VSC7385			0x00070450
 | 
			
		||||
@@ -292,6 +293,7 @@
 | 
			
		||||
 		err = phy_write(phydev, MII_VSC8244_IMASK,
 | 
			
		||||
 			(phydev->drv->phy_id == PHY_ID_VSC8234 ||
 | 
			
		||||
 			 phydev->drv->phy_id == PHY_ID_VSC8244 ||
 | 
			
		||||
+			 phydev->drv->phy_id == PHY_ID_VSC8504 ||
 | 
			
		||||
 			 phydev->drv->phy_id == PHY_ID_VSC8572 ||
 | 
			
		||||
 			 phydev->drv->phy_id == PHY_ID_VSC8601) ?
 | 
			
		||||
 				MII_VSC8244_IMASK_MASK :
 | 
			
		||||
@@ -402,6 +404,15 @@
 | 
			
		||||
 	.ack_interrupt	= &vsc824x_ack_interrupt,
 | 
			
		||||
 	.config_intr	= &vsc82xx_config_intr,
 | 
			
		||||
 }, {
 | 
			
		||||
+	.phy_id         = PHY_ID_VSC8504,
 | 
			
		||||
+	.name           = "Vitesse VSC8504",
 | 
			
		||||
+	.phy_id_mask    = 0x000ffff0,
 | 
			
		||||
+	/* PHY_GBIT_FEATURES */
 | 
			
		||||
+	.config_init    = &vsc824x_config_init,
 | 
			
		||||
+	.config_aneg    = &vsc82x4_config_aneg,
 | 
			
		||||
+	.ack_interrupt  = &vsc824x_ack_interrupt,
 | 
			
		||||
+	.config_intr    = &vsc82xx_config_intr,
 | 
			
		||||
+}, {
 | 
			
		||||
 	.phy_id         = PHY_ID_VSC8572,
 | 
			
		||||
 	.name           = "Vitesse VSC8572",
 | 
			
		||||
 	.phy_id_mask    = 0x000ffff0,
 | 
			
		||||
@@ -488,6 +499,7 @@
 | 
			
		||||
 static struct mdio_device_id __maybe_unused vitesse_tbl[] = {
 | 
			
		||||
 	{ PHY_ID_VSC8234, 0x000ffff0 },
 | 
			
		||||
 	{ PHY_ID_VSC8244, 0x000fffc0 },
 | 
			
		||||
+	{ PHY_ID_VSC8504, 0x000ffff0 },
 | 
			
		||||
 	{ PHY_ID_VSC8572, 0x000ffff0 },
 | 
			
		||||
 	{ PHY_ID_VSC7385, 0x000ffff0 },
 | 
			
		||||
 	{ PHY_ID_VSC7388, 0x000ffff0 },
 | 
			
		||||
		Reference in New Issue
	
	Block a user