99d91dfa765693047a7adbff8fa344234f09b409
[openwrt/staging/jogo.git] /
1 From b4df02b562f4aa14ff6811f30e1b4d2159585c59 Mon Sep 17 00:00:00 2001
2 From: Ansuel Smith <ansuelsmth@gmail.com>
3 Date: Sun, 19 Sep 2021 18:28:15 +0200
4 Subject: net: phy: at803x: add support for qca 8327 A variant internal phy
5
6 For qca8327 internal phy there are 2 different switch variant with 2
7 different phy id. Add this missing variant so the internal phy can be
8 correctly identified and fixed.
9
10 Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
11 Reviewed-by: Andrew Lunn <andrew@lunn.ch>
12 Signed-off-by: David S. Miller <davem@davemloft.net>
13 ---
14 drivers/net/phy/at803x.c | 25 ++++++++++++++++++++-----
15 1 file changed, 20 insertions(+), 5 deletions(-)
16
17 --- a/drivers/net/phy/at803x.c
18 +++ b/drivers/net/phy/at803x.c
19 @@ -150,7 +150,8 @@
20 #define ATH8035_PHY_ID 0x004dd072
21 #define AT8030_PHY_ID_MASK 0xffffffef
22
23 -#define QCA8327_PHY_ID 0x004dd034
24 +#define QCA8327_A_PHY_ID 0x004dd033
25 +#define QCA8327_B_PHY_ID 0x004dd034
26 #define QCA8337_PHY_ID 0x004dd036
27 #define QCA8K_PHY_ID_MASK 0xffffffff
28
29 @@ -1413,10 +1414,23 @@ static struct phy_driver at803x_driver[]
30 .get_strings = at803x_get_strings,
31 .get_stats = at803x_get_stats,
32 }, {
33 - /* QCA8327 */
34 - .phy_id = QCA8327_PHY_ID,
35 + /* QCA8327-A from switch QCA8327-AL1A */
36 + .phy_id = QCA8327_A_PHY_ID,
37 .phy_id_mask = QCA8K_PHY_ID_MASK,
38 - .name = "QCA PHY 8327",
39 + .name = "QCA PHY 8327-A",
40 + /* PHY_GBIT_FEATURES */
41 + .probe = at803x_probe,
42 + .flags = PHY_IS_INTERNAL,
43 + .config_init = qca83xx_config_init,
44 + .soft_reset = genphy_soft_reset,
45 + .get_sset_count = at803x_get_sset_count,
46 + .get_strings = at803x_get_strings,
47 + .get_stats = at803x_get_stats,
48 +}, {
49 + /* QCA8327-B from switch QCA8327-BL1A */
50 + .phy_id = QCA8327_B_PHY_ID,
51 + .phy_id_mask = QCA8K_PHY_ID_MASK,
52 + .name = "QCA PHY 8327-B",
53 /* PHY_GBIT_FEATURES */
54 .probe = at803x_probe,
55 .flags = PHY_IS_INTERNAL,
56 @@ -1436,7 +1450,8 @@ static struct mdio_device_id __maybe_unu
57 { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
58 { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
59 { PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) },
60 - { PHY_ID_MATCH_EXACT(QCA8327_PHY_ID) },
61 + { PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) },
62 + { PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) },
63 { }
64 };
65