Commit daf61732 authored by Luo Jie's avatar Luo Jie Committed by David S. Miller

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: default avatarLuo Jie <luoj@codeaurora.org>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9540cdda
...@@ -158,6 +158,8 @@ ...@@ -158,6 +158,8 @@
#define ATH8035_PHY_ID 0x004dd072 #define ATH8035_PHY_ID 0x004dd072
#define AT8030_PHY_ID_MASK 0xffffffef #define AT8030_PHY_ID_MASK 0xffffffef
#define QCA8081_PHY_ID 0x004dd101
#define QCA8327_A_PHY_ID 0x004dd033 #define QCA8327_A_PHY_ID 0x004dd033
#define QCA8327_B_PHY_ID 0x004dd034 #define QCA8327_B_PHY_ID 0x004dd034
#define QCA8337_PHY_ID 0x004dd036 #define QCA8337_PHY_ID 0x004dd036
...@@ -173,7 +175,7 @@ ...@@ -173,7 +175,7 @@
#define AT803X_KEEP_PLL_ENABLED BIT(0) #define AT803X_KEEP_PLL_ENABLED BIT(0)
#define AT803X_DISABLE_SMARTEEE BIT(1) #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_AUTHOR("Matus Ujhelyi");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -1591,6 +1593,18 @@ static struct phy_driver at803x_driver[] = { ...@@ -1591,6 +1593,18 @@ static struct phy_driver at803x_driver[] = {
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,
.suspend = qca83xx_suspend, .suspend = qca83xx_suspend,
.resume = qca83xx_resume, .resume = qca83xx_resume,
}, {
/* 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); module_phy_driver(at803x_driver);
...@@ -1605,6 +1619,7 @@ static struct mdio_device_id __maybe_unused atheros_tbl[] = { ...@@ -1605,6 +1619,7 @@ static struct mdio_device_id __maybe_unused atheros_tbl[] = {
{ PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) }, { PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) }, { PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA9561_PHY_ID) }, { PHY_ID_MATCH_EXACT(QCA9561_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA8081_PHY_ID) },
{ } { }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment