diff mbox

net: phy: micrel: add KSZ8795 ethernet switch

Message ID 20170120125049.121307-1-sean.nyekjaer@prevas.dk
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Sean Nyekjær Jan. 20, 2017, 12:50 p.m. UTC
This ethernet switch have unfortunately the same phy id as KSZ8051.

Signed-off-by: Sean Nyekjaer <sean.nyekjaer@prevas.dk>
---
 drivers/net/phy/micrel.c   | 14 ++++++++++++++
 include/linux/micrel_phy.h |  2 ++
 2 files changed, 16 insertions(+)

Comments

Andrew Lunn Jan. 20, 2017, 2:17 p.m. UTC | #1
On Fri, Jan 20, 2017 at 01:50:49PM +0100, Sean Nyekjaer wrote:
> This ethernet switch have unfortunately the same phy id as KSZ8051.

Hi Sean

Please could you explain some more. You are adding PHY support here,
not switch support. So is this to enable the PHY driver for the PHYs
embedded in the switch?

	 Andrew
Sean Nyekjær Jan. 23, 2017, 7:22 a.m. UTC | #2
On 2017-01-20 15:17, Andrew Lunn wrote:
> On Fri, Jan 20, 2017 at 01:50:49PM +0100, Sean Nyekjaer wrote:
>> This ethernet switch have unfortunately the same phy id as KSZ8051.
> Hi Sean
>
> Please could you explain some more. You are adding PHY support here,
> not switch support. So is this to enable the PHY driver for the PHYs
> embedded in the switch?
>
> 	 Andrew
Yes of couse :-)
The KSZ8051 is a 5 port managed ethernet switch with integrated PHY with 
MII/RMII interface on one port.
Through the MDIO interface is possible to control the PHY on port 1-5.

I have just seen an issue with the reported speed and duplex, so i'm 
gonna submit a new version with a better description

/Sean
diff mbox

Patch

diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index ea92d524d5a8..d47026c18974 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -1014,6 +1014,20 @@  static struct phy_driver ksphy_driver[] = {
 	.get_stats	= kszphy_get_stats,
 	.suspend	= genphy_suspend,
 	.resume		= genphy_resume,
+}, {
+	.phy_id		= PHY_ID_KSZ8795,
+	.phy_id_mask	= MICREL_PHY_ID_MASK,
+	.name		= "Micrel KSZ8795 Switch",
+	.features	= (PHY_BASIC_FEATURES | SUPPORTED_Pause),
+	.flags		= PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT,
+	.config_init	= kszphy_config_init,
+	.config_aneg	= genphy_config_aneg,
+	.read_status	= genphy_read_status,
+	.get_sset_count = kszphy_get_sset_count,
+	.get_strings	= kszphy_get_strings,
+	.get_stats	= kszphy_get_stats,
+	.suspend	= genphy_suspend,
+	.resume		= genphy_resume,
 } };
 
 module_phy_driver(ksphy_driver);
diff --git a/include/linux/micrel_phy.h b/include/linux/micrel_phy.h
index 257173e0095e..f541da68d1e7 100644
--- a/include/linux/micrel_phy.h
+++ b/include/linux/micrel_phy.h
@@ -35,6 +35,8 @@ 
 #define PHY_ID_KSZ886X		0x00221430
 #define PHY_ID_KSZ8863		0x00221435
 
+#define PHY_ID_KSZ8795		0x00221550
+
 /* struct phy_device dev_flags definitions */
 #define MICREL_PHY_50MHZ_CLK	0x00000001
 #define MICREL_PHY_FXEN		0x00000002