All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Othacehe <othacehe@gnu.org>
To: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>,
	Marek Vasut <marek.vasut+renesas@mailbox.org>,
	Joe Hershberger <joe.hershberger@ni.com>,
	Ramon Fried <rfried.dev@gmail.com>,
	Jerome Forissier <jerome.forissier@linaro.org>,
	Tom Rini <trini@konsulko.com>,
	u-boot@lists.denx.de
Cc: anton.reding@landisgyr.com, Mathieu Othacehe <othacehe@gnu.org>
Subject: [PATCH] net: ravb: Configure CXR31 and CXR35 on rzg2l
Date: Wed, 10 Dec 2025 15:17:04 +0100	[thread overview]
Message-ID: <20251210141706.32760-1-othacehe@gnu.org> (raw)

As in Linux with d78c0ced60 ("net: ravb: Make write access to CXR35 first
before accessing other EMAC register"), configure CXR31 and CXR35 correctly
on rzg2. MII mode does not work correctly unless those registers are
properly configured.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
---
 drivers/net/ravb.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c
index 68528864ac6..04ee0c0995a 100644
--- a/drivers/net/ravb.c
+++ b/drivers/net/ravb.c
@@ -42,6 +42,8 @@
 #define RAVB_REG_RFLR		0x508
 #define RAVB_REG_ECSIPR		0x518
 #define RAVB_REG_PIR		0x520
+#define RAVB_REG_CXR31		0x530 /* RZ/G2L only */
+#define RAVB_REG_CXR35		0x540 /* RZ/G2L only */
 #define RAVB_REG_GECMR		0x5b0
 #define RAVB_REG_MAHR		0x5c0
 #define RAVB_REG_MALR		0x5c8
@@ -51,6 +53,12 @@
 #define CCC_OPC_OPERATION	BIT(1)
 #define CCC_BOC			BIT(20)
 
+#define CXR31_SEL_LINK0         BIT(0)
+#define CXR31_SEL_LINK1         BIT(3)
+
+#define CXR35_SEL_XMII_RGMII    0
+#define CXR35_SEL_XMII_MII      2
+
 #define CSR_OPS			0x0000000F
 #define CSR_OPS_CONFIG		BIT(1)
 
@@ -399,6 +407,20 @@ static void ravb_mac_init_rcar(struct udevice *dev)
 static void ravb_mac_init_rzg2l(struct udevice *dev)
 {
 	struct ravb_priv *eth = dev_get_priv(dev);
+	struct eth_pdata *pdata = dev_get_plat(dev);
+
+	if (pdata->phy_interface == PHY_INTERFACE_MODE_MII) {
+		writel((1000 << 16) | CXR35_SEL_XMII_MII,
+		       eth->iobase + RAVB_REG_CXR35);
+		clrsetbits_32(eth->iobase + RAVB_REG_CXR31,
+			      CXR31_SEL_LINK0 | CXR31_SEL_LINK1, 0);
+	} else {
+		writel((1000 << 16) | CXR35_SEL_XMII_RGMII,
+		       eth->iobase + RAVB_REG_CXR35);
+		clrsetbits_32(eth->iobase + RAVB_REG_CXR31,
+			      CXR31_SEL_LINK0 | CXR31_SEL_LINK1,
+			      CXR31_SEL_LINK0);
+	}
 
 	setbits_32(eth->iobase + RAVB_REG_ECMR,
 		   ECMR_PRM | ECMR_RXF | ECMR_TXF | ECMR_RCPT |
-- 
2.51.0


             reply	other threads:[~2025-12-10 14:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-10 14:17 Mathieu Othacehe [this message]
2025-12-23 12:20 ` [PATCH] net: ravb: Configure CXR31 and CXR35 on rzg2l Mathieu Othacehe
2025-12-23 14:20 ` Marek Vasut
2025-12-23 16:55 ` Marek Vasut

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=20251210141706.32760-1-othacehe@gnu.org \
    --to=othacehe@gnu.org \
    --cc=anton.reding@landisgyr.com \
    --cc=iwamatsu@nigauri.org \
    --cc=jerome.forissier@linaro.org \
    --cc=joe.hershberger@ni.com \
    --cc=marek.vasut+renesas@mailbox.org \
    --cc=rfried.dev@gmail.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.