f04f8044e469e465f6e0b1f8dc49876787dec209
[openwrt/staging/xback.git] /
1 From 3cb1a3c9cbaaadaf91437374b96ec72256c40db2 Mon Sep 17 00:00:00 2001
2 From: "SkyLake.Huang" <skylake.huang@mediatek.com>
3 Date: Sat, 9 Nov 2024 00:34:54 +0800
4 Subject: [PATCH] net: phy: mediatek: Integrate read/write page helper
5 functions
6
7 This patch integrates read/write page helper functions as MTK phy lib.
8 They are basically the same in mtk-ge.c & mtk-ge-soc.c.
9
10 Signed-off-by: SkyLake.Huang <skylake.huang@mediatek.com>
11 Signed-off-by: David S. Miller <davem@davemloft.net>
12 ---
13 drivers/net/phy/mediatek/Kconfig | 1 +
14 drivers/net/phy/mediatek/mtk-ge-soc.c | 18 ++++--------------
15 drivers/net/phy/mediatek/mtk-ge.c | 20 ++++++--------------
16 drivers/net/phy/mediatek/mtk-phy-lib.c | 12 ++++++++++++
17 drivers/net/phy/mediatek/mtk.h | 3 +++
18 5 files changed, 26 insertions(+), 28 deletions(-)
19
20 --- a/drivers/net/phy/mediatek/Kconfig
21 +++ b/drivers/net/phy/mediatek/Kconfig
22 @@ -4,6 +4,7 @@ config MTK_NET_PHYLIB
23
24 config MEDIATEK_GE_PHY
25 tristate "MediaTek Gigabit Ethernet PHYs"
26 + select MTK_NET_PHYLIB
27 help
28 Supports the MediaTek non-built-in Gigabit Ethernet PHYs.
29
30 --- a/drivers/net/phy/mediatek/mtk-ge-soc.c
31 +++ b/drivers/net/phy/mediatek/mtk-ge-soc.c
32 @@ -271,16 +271,6 @@ struct mtk_socphy_shared {
33 struct mtk_socphy_priv priv[4];
34 };
35
36 -static int mtk_socphy_read_page(struct phy_device *phydev)
37 -{
38 - return __phy_read(phydev, MTK_EXT_PAGE_ACCESS);
39 -}
40 -
41 -static int mtk_socphy_write_page(struct phy_device *phydev, int page)
42 -{
43 - return __phy_write(phydev, MTK_EXT_PAGE_ACCESS, page);
44 -}
45 -
46 /* One calibration cycle consists of:
47 * 1.Set DA_CALIN_FLAG high to start calibration. Keep it high
48 * until AD_CAL_COMP is ready to output calibration result.
49 @@ -1337,8 +1327,8 @@ static struct phy_driver mtk_socphy_driv
50 .probe = mt7981_phy_probe,
51 .suspend = genphy_suspend,
52 .resume = genphy_resume,
53 - .read_page = mtk_socphy_read_page,
54 - .write_page = mtk_socphy_write_page,
55 + .read_page = mtk_phy_read_page,
56 + .write_page = mtk_phy_write_page,
57 .led_blink_set = mt798x_phy_led_blink_set,
58 .led_brightness_set = mt798x_phy_led_brightness_set,
59 .led_hw_is_supported = mt798x_phy_led_hw_is_supported,
60 @@ -1354,8 +1344,8 @@ static struct phy_driver mtk_socphy_driv
61 .probe = mt7988_phy_probe,
62 .suspend = genphy_suspend,
63 .resume = genphy_resume,
64 - .read_page = mtk_socphy_read_page,
65 - .write_page = mtk_socphy_write_page,
66 + .read_page = mtk_phy_read_page,
67 + .write_page = mtk_phy_write_page,
68 .led_blink_set = mt798x_phy_led_blink_set,
69 .led_brightness_set = mt798x_phy_led_brightness_set,
70 .led_hw_is_supported = mt798x_phy_led_hw_is_supported,
71 --- a/drivers/net/phy/mediatek/mtk-ge.c
72 +++ b/drivers/net/phy/mediatek/mtk-ge.c
73 @@ -3,6 +3,8 @@
74 #include <linux/module.h>
75 #include <linux/phy.h>
76
77 +#include "mtk.h"
78 +
79 #define MTK_EXT_PAGE_ACCESS 0x1f
80 #define MTK_PHY_PAGE_STANDARD 0x0000
81 #define MTK_PHY_PAGE_EXTENDED 0x0001
82 @@ -11,16 +13,6 @@
83 #define MTK_PHY_PAGE_EXTENDED_2A30 0x2a30
84 #define MTK_PHY_PAGE_EXTENDED_52B5 0x52b5
85
86 -static int mtk_gephy_read_page(struct phy_device *phydev)
87 -{
88 - return __phy_read(phydev, MTK_EXT_PAGE_ACCESS);
89 -}
90 -
91 -static int mtk_gephy_write_page(struct phy_device *phydev, int page)
92 -{
93 - return __phy_write(phydev, MTK_EXT_PAGE_ACCESS, page);
94 -}
95 -
96 static void mtk_gephy_config_init(struct phy_device *phydev)
97 {
98 /* Disable EEE */
99 @@ -80,8 +72,8 @@ static struct phy_driver mtk_gephy_drive
100 .handle_interrupt = genphy_handle_interrupt_no_ack,
101 .suspend = genphy_suspend,
102 .resume = genphy_resume,
103 - .read_page = mtk_gephy_read_page,
104 - .write_page = mtk_gephy_write_page,
105 + .read_page = mtk_phy_read_page,
106 + .write_page = mtk_phy_write_page,
107 },
108 {
109 PHY_ID_MATCH_EXACT(0x03a29441),
110 @@ -94,8 +86,8 @@ static struct phy_driver mtk_gephy_drive
111 .handle_interrupt = genphy_handle_interrupt_no_ack,
112 .suspend = genphy_suspend,
113 .resume = genphy_resume,
114 - .read_page = mtk_gephy_read_page,
115 - .write_page = mtk_gephy_write_page,
116 + .read_page = mtk_phy_read_page,
117 + .write_page = mtk_phy_write_page,
118 },
119 };
120
121 --- a/drivers/net/phy/mediatek/mtk-phy-lib.c
122 +++ b/drivers/net/phy/mediatek/mtk-phy-lib.c
123 @@ -6,6 +6,18 @@
124
125 #include "mtk.h"
126
127 +int mtk_phy_read_page(struct phy_device *phydev)
128 +{
129 + return __phy_read(phydev, MTK_EXT_PAGE_ACCESS);
130 +}
131 +EXPORT_SYMBOL_GPL(mtk_phy_read_page);
132 +
133 +int mtk_phy_write_page(struct phy_device *phydev, int page)
134 +{
135 + return __phy_write(phydev, MTK_EXT_PAGE_ACCESS, page);
136 +}
137 +EXPORT_SYMBOL_GPL(mtk_phy_write_page);
138 +
139 int mtk_phy_led_hw_is_supported(struct phy_device *phydev, u8 index,
140 unsigned long rules,
141 unsigned long supported_triggers)
142 --- a/drivers/net/phy/mediatek/mtk.h
143 +++ b/drivers/net/phy/mediatek/mtk.h
144 @@ -66,6 +66,9 @@ struct mtk_socphy_priv {
145 unsigned long led_state;
146 };
147
148 +int mtk_phy_read_page(struct phy_device *phydev);
149 +int mtk_phy_write_page(struct phy_device *phydev, int page);
150 +
151 int mtk_phy_led_hw_is_supported(struct phy_device *phydev, u8 index,
152 unsigned long rules,
153 unsigned long supported_triggers);