LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Serge Semin <fancer.lancer@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Serge Semin <Sergey.Semin@t-platforms.ru>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] net: phy: realtek: Add rtl8211e rx/tx delays config
Date: Fri, 26 Apr 2019 22:19:36 +0300 [thread overview]
Message-ID: <20190426191935.ihppqlmtpemzp3kr@mobilestation> (raw)
In-Reply-To: <20190426132821.GB14432@lunn.ch>
On Fri, Apr 26, 2019 at 03:28:21PM +0200, Andrew Lunn wrote:
> On Fri, Apr 26, 2019 at 12:30:10PM +0300, Serge Semin wrote:
> > The hidden RGMII configs register utilization was found in the
> > rtl8211e U-boot driver:
> > https://elixir.bootlin.com/u-boot/v2019.01/source/drivers/net/phy/realtek.c#L99
> >
> > It confirms that the register bits field must control the so called
> > configuration pins described in the table 12-13 of the official PHY
> > datasheet:
> > 8:6 = PHY Address
> > 5:4 = Auto-Negotiation
> > 3 = Interface Mode Select
> > 2 = RX Delay
> > 1 = TX Delay
> > 0 = SELRGV
>
> > +static int rtl8211e_config_init(struct phy_device *phydev)
> > +{
> > + int ret, oldpage;
> > + u16 val = 0;
> > +
> > + ret = genphy_config_init(phydev);
> > + if (ret < 0)
> > + return ret;
> > +
> > + /* enable TX/RX delay for rgmii-* modes, otherwise disable it */
> > + if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID)
> > + val = RTL8211E_TX_DELAY | RTL8211E_RX_DELAY;
> > + else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
> > + val = RTL8211E_TX_DELAY;
> > + else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)
> > + val = RTL8211E_RX_DELAY;
>
> Hi Serge
>
> You need to look for PHY_INTERFACE_MODE_RGMII and disable the bits.
> For any other value, and in particular PHY_INTERFACE_MODE_NA, you
> should leave the bits alone.
>
> As you found out, u-boot knows how to program these bits. There are
> probably boards out there which rely on u-boot doing this, and the PHY
> driver then not messing with the bits. The way to indicate it should
> not mess with the bits is to not have a phy-mode property in DT, which
> results in PHY_INTERFACE_MODE_NA.
>
Hello Andrew
Thanks for the comment. I'll alter the code the way you said. The mode will
be changed by the config_init-function only if the interface is selected to be
rgmii-like (rgmii, rgmii-id, rgmii-txid and rgmii-rxid), otherwise it will
be left as is.
But I've got a question regarding this then. What about for instance rtl8211f
phy config_init-method? It setups the delay config in any case, no matter
whether interface is configured to be of rgmii or another mode. Is it correct
to configure rtl8211e and rtl8211f differently? Especially seeing the U-boot
driver also perform the rtl8211f phy configuration.
-Sergey
> Andrew
next prev parent reply other threads:[~2019-04-26 19:19 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-26 9:30 Serge Semin
2019-04-26 13:28 ` Andrew Lunn
2019-04-26 19:19 ` Serge Semin [this message]
2019-04-26 20:05 ` Andrew Lunn
2019-04-26 20:28 ` Serge Semin
2019-04-26 17:17 ` Heiner Kallweit
2019-04-26 20:26 ` Serge Semin
2019-04-26 21:21 ` [PATCH v2 1/2] " Serge Semin
2019-04-26 21:40 ` Andrew Lunn
2019-04-26 23:45 ` Serge Semin
2019-04-27 3:11 ` Florian Fainelli
2019-04-27 7:44 ` Serge Semin
2019-04-27 15:21 ` Andrew Lunn
2019-04-28 19:19 ` Serge Semin
2019-04-27 19:20 ` Florian Fainelli
2019-05-08 1:29 ` [PATCH v3 0/2] net: phy: realtek: Fix RGMII TX/RX-delays initial config of rtl8211(e|f) Serge Semin
2019-05-08 1:29 ` [PATCH v3 1/2] net: phy: realtek: Add rtl8211e rx/tx delays config Serge Semin
2019-05-08 1:29 ` [PATCH v3 2/2] net: phy: realtek: Change TX-delay setting for RGMII modes only Serge Semin
2019-05-08 16:37 ` [PATCH v3 0/2] net: phy: realtek: Fix RGMII TX/RX-delays initial config of rtl8211(e|f) David Miller
2019-05-08 21:51 ` [PATCH v4 " Serge Semin
2019-05-08 21:51 ` [PATCH v4 1/2] net: phy: realtek: Add rtl8211e rx/tx delays config Serge Semin
2019-05-08 21:51 ` [PATCH v4 2/2] net: phy: realtek: Change TX-delay setting for RGMII modes only Serge Semin
2019-05-08 23:31 ` [PATCH v4 0/2] net: phy: realtek: Fix RGMII TX/RX-delays initial config of rtl8211(e|f) David Miller
2019-05-13 5:41 ` [PATCH v2 1/2] net: phy: realtek: Add rtl8211e rx/tx delays config Guenter Roeck
2019-05-13 10:37 ` Serge Semin
2019-04-26 21:21 ` [PATCH v2 2/2] net: phy: realtek: Change TX-delay setting for RGMII modes only Serge Semin
2019-04-26 21:46 ` Andrew Lunn
2019-04-26 23:35 ` Serge Semin
2019-04-29 17:37 ` Florian Fainelli
2019-04-29 18:29 ` Vladimir Oltean
2019-04-29 21:12 ` Serge Semin
2019-04-29 22:36 ` Vladimir Oltean
2019-04-30 12:54 ` Serge Semin
2019-04-30 20:44 ` Martin Blumenstingl
2019-05-08 0:48 ` Serge Semin
2019-04-30 21:16 ` Martin Blumenstingl
2019-05-01 23:03 ` Vladimir Oltean
2019-05-03 17:29 ` Martin Blumenstingl
2019-05-06 14:39 ` Serge Semin
2019-05-06 17:21 ` Martin Blumenstingl
2019-05-07 17:37 ` Heiner Kallweit
2019-05-07 20:09 ` Martin Blumenstingl
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=20190426191935.ihppqlmtpemzp3kr@mobilestation \
--to=fancer.lancer@gmail.com \
--cc=Sergey.Semin@t-platforms.ru \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--subject='Re: [PATCH] net: phy: realtek: Add rtl8211e rx/tx delays config' \
/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
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).