From b9898cd78a38bd1aa98de7eab070b097b44c2ea1 Mon Sep 17 00:00:00 2001 From: Roman Kuzmitskii Date: Thu, 5 Nov 2020 14:16:15 +0000 Subject: [PATCH] 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 Signed-off-by: Roman Kuzmitskii --- .../hack-5.4/703-add_vsc8504_support.patch | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 target/linux/generic/hack-5.4/703-add_vsc8504_support.patch diff --git a/target/linux/generic/hack-5.4/703-add_vsc8504_support.patch b/target/linux/generic/hack-5.4/703-add_vsc8504_support.patch new file mode 100644 index 0000000000..e7265eba86 --- /dev/null +++ b/target/linux/generic/hack-5.4/703-add_vsc8504_support.patch @@ -0,0 +1,57 @@ +From: Roman Kuzmitskii +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 +Signed-off-by: Roman Kuzmitskii +--- 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 }, -- 2.30.2