2021-10-18 03:50:07

by Luo Jie

[permalink] [raw]
Subject: [PATCH v3 05/13] net: phy: add qca8081 ethernet phy driver

qca8081 is a single port ethernet phy chip that supports
10/100/1000/2500 Mbps mode.

Add the basic phy driver features, and reuse the at803x
phy driver functions.

Signed-off-by: Luo Jie <[email protected]>
---
drivers/net/phy/at803x.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
index 0b69e77a0510..0df474628461 100644
--- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c
@@ -155,6 +155,8 @@
#define QCA8337_PHY_ID 0x004dd036
#define QCA8K_PHY_ID_MASK 0xffffffff

+#define QCA8081_PHY_ID 0x004dd101
+
#define QCA8K_DEVFLAGS_REVISION_MASK GENMASK(2, 0)

#define AT803X_PAGE_FIBER 0
@@ -164,7 +166,7 @@
#define AT803X_KEEP_PLL_ENABLED BIT(0)
#define AT803X_DISABLE_SMARTEEE BIT(1)

-MODULE_DESCRIPTION("Qualcomm Atheros AR803x PHY driver");
+MODULE_DESCRIPTION("Qualcomm Atheros AR803x and QCA808X PHY driver");
MODULE_AUTHOR("Matus Ujhelyi");
MODULE_LICENSE("GPL");

@@ -1431,6 +1433,18 @@ static struct phy_driver at803x_driver[] = {
.get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings,
.get_stats = at803x_get_stats,
+}, {
+ /* Qualcomm QCA8081 */
+ PHY_ID_MATCH_EXACT(QCA8081_PHY_ID),
+ .name = "Qualcomm QCA8081",
+ .config_intr = at803x_config_intr,
+ .handle_interrupt = at803x_handle_interrupt,
+ .get_tunable = at803x_get_tunable,
+ .set_tunable = at803x_set_tunable,
+ .set_wol = at803x_set_wol,
+ .get_wol = at803x_get_wol,
+ .suspend = genphy_suspend,
+ .resume = genphy_resume,
}, };

module_phy_driver(at803x_driver);
@@ -1441,6 +1455,7 @@ static struct mdio_device_id __maybe_unused atheros_tbl[] = {
{ PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
+ { PHY_ID_MATCH_EXACT(QCA8081_PHY_ID) },
{ }
};

--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2021-10-18 18:48:32

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH v3 05/13] net: phy: add qca8081 ethernet phy driver

> @@ -1441,6 +1455,7 @@ static struct mdio_device_id __maybe_unused atheros_tbl[] = {
> { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) },
> { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
> { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
> + { PHY_ID_MATCH_EXACT(QCA8081_PHY_ID) },
> { }

What tree is this against? I have:

static struct mdio_device_id __maybe_unused atheros_tbl[] = {
{ ATH8030_PHY_ID, AT8030_PHY_ID_MASK },
{ PHY_ID_MATCH_EXACT(ATH8031_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA9561_PHY_ID) },
{ }
};

Andrew

2021-10-19 11:49:54

by Luo Jie

[permalink] [raw]
Subject: Re: [PATCH v3 05/13] net: phy: add qca8081 ethernet phy driver


On 10/19/2021 2:47 AM, Andrew Lunn wrote:
>> @@ -1441,6 +1455,7 @@ static struct mdio_device_id __maybe_unused atheros_tbl[] = {
>> { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) },
>> { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
>> { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
>> + { PHY_ID_MATCH_EXACT(QCA8081_PHY_ID) },
>> { }
> What tree is this against? I have:
>
> static struct mdio_device_id __maybe_unused atheros_tbl[] = {
> { ATH8030_PHY_ID, AT8030_PHY_ID_MASK },
> { PHY_ID_MATCH_EXACT(ATH8031_PHY_ID) },
> { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) },
> { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
> { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
> { PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) },
> { PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) },
> { PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) },
> { PHY_ID_MATCH_EXACT(QCA9561_PHY_ID) },
> { }
> };
>
> Andrew
will update it based on the latest tree in the next patch set.