netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Walleij <linus.walleij@linaro.org>
To: Andrew Lunn <andrew@lunn.ch>,
	Vivien Didelot <vivien.didelot@savoirfairelinux.com>,
	Florian Fainelli <f.fainelli@gmail.com>
Cc: netdev@vger.kernel.org,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Antti Seppälä" <a.seppala@gmail.com>,
	"Roman Yeryomin" <roman@advem.lv>,
	"Colin Leitner" <colin.leitner@googlemail.com>,
	"Gabor Juhos" <juhosg@openwrt.org>
Subject: [PATCH 2/4] RFC: net: phy: realtek: Support RTL8366RB variant
Date: Mon,  6 Nov 2017 00:19:07 +0100	[thread overview]
Message-ID: <20171105231909.5599-3-linus.walleij@linaro.org> (raw)
In-Reply-To: <20171105231909.5599-1-linus.walleij@linaro.org>

The RTL8366RB is an ASIC with five internal PHYs for
LAN0..LAN3 and WAN. The PHYs are spawn off the main
device so they can be handled in a distributed manner
by the Realtek PHY driver. All that is really needed
is the power save feature enablement and letting the
PHY driver core pick up the IRQ from the switch chip.

Cc: Antti Seppälä <a.seppala@gmail.com>
Cc: Roman Yeryomin <roman@advem.lv>
Cc: Colin Leitner <colin.leitner@googlemail.com>
Cc: Gabor Juhos <juhosg@openwrt.org>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/net/phy/realtek.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index 9cbe645e3d89..2fb2eb7a32be 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -29,6 +29,9 @@
 #define RTL8211F_PAGE_SELECT	0x1f
 #define RTL8211F_TX_DELAY	0x100
 
+#define RTL8366RB_POWER_SAVE	0x21
+#define RTL8366RB_POWER_SAVE_ON 0x1000
+
 MODULE_DESCRIPTION("Realtek PHY driver");
 MODULE_AUTHOR("Johnson Leung");
 MODULE_LICENSE("GPL");
@@ -119,6 +122,22 @@ static int rtl8211f_config_init(struct phy_device *phydev)
 	return 0;
 }
 
+static int rtl8366rb_config_init(struct phy_device *phydev)
+{
+	int ret;
+	u16 reg;
+
+	ret = genphy_config_init(phydev);
+	if (ret < 0)
+		return ret;
+
+	reg = phy_read(phydev, RTL8366RB_POWER_SAVE);
+	reg |= RTL8366RB_POWER_SAVE_ON;
+	phy_write(phydev, RTL8366RB_POWER_SAVE, reg);
+
+	return 0;
+}
+
 static struct phy_driver realtek_drvs[] = {
 	{
 		.phy_id         = 0x00008201,
@@ -175,6 +194,18 @@ static struct phy_driver realtek_drvs[] = {
 		.config_intr	= &rtl8211f_config_intr,
 		.suspend	= genphy_suspend,
 		.resume		= genphy_resume,
+	}, {
+		/* The main part of this DSA is in drivers/net/dsa */
+		.phy_id		= 0x001cc961,
+		.name		= "RTL8366RB Gigabit Ethernet",
+		.phy_id_mask	= 0x001fffff,
+		.features	= PHY_GBIT_FEATURES,
+		.flags		= PHY_HAS_INTERRUPT,
+		.config_aneg	= &genphy_config_aneg,
+		.config_init	= &rtl8366rb_config_init,
+		.read_status	= &genphy_read_status,
+		.suspend	= genphy_suspend,
+		.resume		= genphy_resume,
 	},
 };
 
@@ -185,6 +216,7 @@ static struct mdio_device_id __maybe_unused realtek_tbl[] = {
 	{ 0x001cc914, 0x001fffff },
 	{ 0x001cc915, 0x001fffff },
 	{ 0x001cc916, 0x001fffff },
+	{ 0x001cc961, 0x001fffff },
 	{ }
 };
 
-- 
2.13.6

  parent reply	other threads:[~2017-11-05 23:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-05 23:19 [PATCH 0/4] RFC: Realtek 83xx SMI driver core Linus Walleij
2017-11-05 23:19 ` [PATCH 1/4] RFC: net/dsa: Allow DSA PHYs to define link IRQs Linus Walleij
2017-11-05 23:19 ` Linus Walleij [this message]
2017-11-05 23:19 ` [PATCH 3/4] RFC: net: dsa: Add bindings for Realtek SMI DSAs Linus Walleij
2017-11-05 23:48   ` Andrew Lunn
     [not found]     ` <20171105234831.GA24822-g2DYL2Zd6BY@public.gmane.org>
2017-11-29 12:24       ` Linus Walleij
2017-11-29 15:56         ` Andrew Lunn
2017-11-29 21:28           ` Linus Walleij
     [not found]             ` <CACRpkdZVXgFMiHpyUqw7ONYDcq6Htn3rTMRaBJkzd6T3WtX36A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-29 21:48               ` Florian Fainelli
2017-11-29 21:56             ` Andrew Lunn
     [not found]               ` <20171129215659.GC1706-g2DYL2Zd6BY@public.gmane.org>
2017-11-29 23:19                 ` Linus Walleij
2017-11-29 23:26                   ` Florian Fainelli
     [not found]                     ` <f9bfa1e1-7f05-1e2b-6663-09d4d3bf6a12-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-11-29 23:36                       ` Andrew Lunn
2017-12-02 12:56                     ` Linus Walleij
     [not found]                       ` <CACRpkdYoMVNh8eaTnaDQ59bsh4bC88biLaYSXyhnc4W83PMWzA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-04 22:50                         ` Andrew Lunn
2017-11-05 23:19 ` [PATCH 4/4] RFC: net: dsa: realtek-smi: Add Realtek SMI driver Linus Walleij
2017-11-05 23:59   ` Andrew Lunn
2017-11-06  8:25     ` Linus Walleij
2017-11-09 12:49   ` Roman Yeryomin
2017-11-09 13:24     ` Andrew Lunn
2017-11-09 15:11       ` Roman Yeryomin
2017-11-09 15:38         ` Andrew Lunn
2017-11-09 17:21           ` Roman Yeryomin
2017-11-09 17:24             ` Andrew Lunn
2017-11-09 18:08               ` Florian Fainelli
2017-11-10  8:16                 ` Linus Walleij
2017-11-10 12:05                 ` Roman Yeryomin
2017-11-10 12:02               ` Roman Yeryomin
2017-11-10 13:51                 ` Andrew Lunn
2017-11-10 12:17       ` Egil Hjelmeland
2017-11-10 14:01         ` Andrew Lunn
2018-04-02 16:10 ` [PATCH 0/4] RFC: Realtek 83xx SMI driver core Carl-Daniel Hailfinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171105231909.5599-3-linus.walleij@linaro.org \
    --to=linus.walleij@linaro.org \
    --cc=a.seppala@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=colin.leitner@googlemail.com \
    --cc=f.fainelli@gmail.com \
    --cc=juhosg@openwrt.org \
    --cc=netdev@vger.kernel.org \
    --cc=roman@advem.lv \
    --cc=vivien.didelot@savoirfairelinux.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).