]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: phy: mediatek: Integrate read/write page helper functions
authorSkyLake.Huang <skylake.huang@mediatek.com>
Fri, 8 Nov 2024 16:34:54 +0000 (00:34 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Nov 2024 13:06:04 +0000 (13:06 +0000)
This patch integrates read/write page helper functions as MTK phy lib.
They are basically the same in mtk-ge.c & mtk-ge-soc.c.

Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/mediatek/Kconfig
drivers/net/phy/mediatek/mtk-ge-soc.c
drivers/net/phy/mediatek/mtk-ge.c
drivers/net/phy/mediatek/mtk-phy-lib.c
drivers/net/phy/mediatek/mtk.h

index 19b5d23e7cd0b09649c1dcabe25383954362148f..2a8ac5aed0f8938274fb4b769996605232f56aec 100644 (file)
@@ -4,6 +4,7 @@ config MTK_NET_PHYLIB
 
 config MEDIATEK_GE_PHY
        tristate "MediaTek Gigabit Ethernet PHYs"
+       select MTK_NET_PHYLIB
        help
          Supports the MediaTek non-built-in Gigabit Ethernet PHYs.
 
index d3a8b3946056e5dc13f2cff18fac298bbcadcc0d..38dc898eaf7bf0551bec645a9b3fac488acfbb15 100644 (file)
@@ -271,16 +271,6 @@ struct mtk_socphy_shared {
        struct mtk_socphy_priv  priv[4];
 };
 
-static int mtk_socphy_read_page(struct phy_device *phydev)
-{
-       return __phy_read(phydev, MTK_EXT_PAGE_ACCESS);
-}
-
-static int mtk_socphy_write_page(struct phy_device *phydev, int page)
-{
-       return __phy_write(phydev, MTK_EXT_PAGE_ACCESS, page);
-}
-
 /* One calibration cycle consists of:
  * 1.Set DA_CALIN_FLAG high to start calibration. Keep it high
  *   until AD_CAL_COMP is ready to output calibration result.
@@ -1337,8 +1327,8 @@ static struct phy_driver mtk_socphy_driver[] = {
                .probe          = mt7981_phy_probe,
                .suspend        = genphy_suspend,
                .resume         = genphy_resume,
-               .read_page      = mtk_socphy_read_page,
-               .write_page     = mtk_socphy_write_page,
+               .read_page      = mtk_phy_read_page,
+               .write_page     = mtk_phy_write_page,
                .led_blink_set  = mt798x_phy_led_blink_set,
                .led_brightness_set = mt798x_phy_led_brightness_set,
                .led_hw_is_supported = mt798x_phy_led_hw_is_supported,
@@ -1354,8 +1344,8 @@ static struct phy_driver mtk_socphy_driver[] = {
                .probe          = mt7988_phy_probe,
                .suspend        = genphy_suspend,
                .resume         = genphy_resume,
-               .read_page      = mtk_socphy_read_page,
-               .write_page     = mtk_socphy_write_page,
+               .read_page      = mtk_phy_read_page,
+               .write_page     = mtk_phy_write_page,
                .led_blink_set  = mt798x_phy_led_blink_set,
                .led_brightness_set = mt798x_phy_led_brightness_set,
                .led_hw_is_supported = mt798x_phy_led_hw_is_supported,
index 54ea64a37ab3a18b509e55bc6df362e8e100e8bd..912289928fb3dd83b104e07d41cc3a604004c779 100644 (file)
@@ -3,6 +3,8 @@
 #include <linux/module.h>
 #include <linux/phy.h>
 
+#include "mtk.h"
+
 #define MTK_EXT_PAGE_ACCESS            0x1f
 #define MTK_PHY_PAGE_STANDARD          0x0000
 #define MTK_PHY_PAGE_EXTENDED          0x0001
 #define MTK_PHY_PAGE_EXTENDED_2A30     0x2a30
 #define MTK_PHY_PAGE_EXTENDED_52B5     0x52b5
 
-static int mtk_gephy_read_page(struct phy_device *phydev)
-{
-       return __phy_read(phydev, MTK_EXT_PAGE_ACCESS);
-}
-
-static int mtk_gephy_write_page(struct phy_device *phydev, int page)
-{
-       return __phy_write(phydev, MTK_EXT_PAGE_ACCESS, page);
-}
-
 static void mtk_gephy_config_init(struct phy_device *phydev)
 {
        /* Enable HW auto downshift */
@@ -77,8 +69,8 @@ static struct phy_driver mtk_gephy_driver[] = {
                .handle_interrupt = genphy_handle_interrupt_no_ack,
                .suspend        = genphy_suspend,
                .resume         = genphy_resume,
-               .read_page      = mtk_gephy_read_page,
-               .write_page     = mtk_gephy_write_page,
+               .read_page      = mtk_phy_read_page,
+               .write_page     = mtk_phy_write_page,
        },
        {
                PHY_ID_MATCH_EXACT(0x03a29441),
@@ -91,8 +83,8 @@ static struct phy_driver mtk_gephy_driver[] = {
                .handle_interrupt = genphy_handle_interrupt_no_ack,
                .suspend        = genphy_suspend,
                .resume         = genphy_resume,
-               .read_page      = mtk_gephy_read_page,
-               .write_page     = mtk_gephy_write_page,
+               .read_page      = mtk_phy_read_page,
+               .write_page     = mtk_phy_write_page,
        },
 };
 
index 8d795bcc8b2d56cd6df448e4bb53f3d07b5655be..98a09d670e9ca5c8132c453f146989069d20cace 100644 (file)
@@ -6,6 +6,18 @@
 
 #include "mtk.h"
 
+int mtk_phy_read_page(struct phy_device *phydev)
+{
+       return __phy_read(phydev, MTK_EXT_PAGE_ACCESS);
+}
+EXPORT_SYMBOL_GPL(mtk_phy_read_page);
+
+int mtk_phy_write_page(struct phy_device *phydev, int page)
+{
+       return __phy_write(phydev, MTK_EXT_PAGE_ACCESS, page);
+}
+EXPORT_SYMBOL_GPL(mtk_phy_write_page);
+
 int mtk_phy_led_hw_is_supported(struct phy_device *phydev, u8 index,
                                unsigned long rules,
                                unsigned long supported_triggers)
index 9aaff2c2270dc749a9144a3674004b718b993150..63d9fe179b8fd940f66b61af081ed9693a5b6d8f 100644 (file)
@@ -66,6 +66,9 @@ struct mtk_socphy_priv {
        unsigned long           led_state;
 };
 
+int mtk_phy_read_page(struct phy_device *phydev);
+int mtk_phy_write_page(struct phy_device *phydev, int page);
+
 int mtk_phy_led_hw_is_supported(struct phy_device *phydev, u8 index,
                                unsigned long rules,
                                unsigned long supported_triggers);