| 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 @@ static int vsc82xx_config_intr(struct ph |
| 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 @@ static struct phy_driver vsc82xx_driver[ |
| .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 @@ module_phy_driver(vsc82xx_driver); |
| 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 }, |