From: Conor Dooley <conor@kernel.org>
To: netdev@vger.kernel.org
Cc: conor@kernel.org, Conor Dooley <conor.dooley@microchip.com>,
Valentina.FernandezAlanis@microchip.com,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Daire McNamara <daire.mcnamara@microchip.com>,
Paul Walmsley <pjw@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Richard Cochran <richardcochran@gmail.com>,
Samuel Holland <samuel.holland@sifive.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-riscv@lists.infradead.org,
Neil Armstrong <narmstrong@baylibre.com>,
Dave Stevenson <dave.stevenson@raspberrypi.com>,
Sean Anderson <sean.anderson@linux.dev>,
Vineeth Karumanchi <vineeth.karumanchi@amd.com>,
Abin Joseph <abin.joseph@amd.com>
Subject: [RFC net-next v1 7/7] net: macb: add mpfs specific usrio configuration
Date: Thu, 20 Nov 2025 16:26:09 +0000 [thread overview]
Message-ID: <20251120-unspoken-licking-5c9263746766@spud> (raw)
In-Reply-To: <20251120-jubilant-purposely-67ec45ce4e2f@spud>
From: Conor Dooley <conor.dooley@microchip.com>
On mpfs the driver needs to make sure the tsu clock source is not the
fabric, as this requires that the hardware is in Timer Adjust mode,
which is not compatible with the linux driver trying to control the
hardware AFAICT.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
This may actually be a waste of time, since a) the peripheral is reset
by the driver during probe which zeroes it, b) the timer-adjust mode is not
permitted, so setting a 1 here is not ever done and c) the value written
by the driver to the usrio register starts as zero, so would clear this
bit anyway, were it to be set somehow.
The alternative would be just setting the usrio struct pointer to NULL
since none of the caps that would cause it to be accessed are set on
this platform.
---
drivers/net/ethernet/cadence/macb.h | 2 ++
drivers/net/ethernet/cadence/macb_main.c | 12 ++++++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h
index 59881c48485b..d30682db410a 100644
--- a/drivers/net/ethernet/cadence/macb.h
+++ b/drivers/net/ethernet/cadence/macb.h
@@ -770,6 +770,7 @@
#define MACB_CAPS_QUEUE_DISABLE 0x00000800
#define MACB_CAPS_QBV 0x00001000
#define MACB_CAPS_USRIO_HAS_MII 0x00002000
+#define MACB_CAPS_USRIO_TSUCLK_SOURCE 0x00004000
#define MACB_CAPS_PCS 0x01000000
#define MACB_CAPS_HIGH_SPEED 0x02000000
#define MACB_CAPS_CLK_HW_CHG 0x04000000
@@ -1217,6 +1218,7 @@ struct macb_usrio_config {
u32 rgmii;
u32 refclk;
u32 hdfctlen;
+ u32 tsu_source;
};
struct macb_config {
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 4ad1409dab63..dd14bb4c9e26 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -4649,6 +4649,9 @@ static int macb_init(struct platform_device *pdev)
if (bp->caps & MACB_CAPS_USRIO_HAS_CLKEN)
val |= bp->usrio->refclk;
+ if (bp->caps & MACB_CAPS_USRIO_TSUCLK_SOURCE)
+ val |= bp->usrio->tsu_source;
+
macb_or_gem_writel(bp, USRIO, val);
}
@@ -5219,6 +5222,10 @@ static const struct macb_usrio_config at91_default_usrio = {
.refclk = MACB_BIT(CLKEN),
};
+static const struct macb_usrio_config mpfs_usrio = {
+ .tsu_source = 0,
+};
+
static const struct macb_usrio_config sama7g5_usrio = {
.mii = 0,
.rmii = 1,
@@ -5342,11 +5349,12 @@ static const struct macb_config zynq_config = {
static const struct macb_config mpfs_config = {
.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE |
MACB_CAPS_JUMBO |
- MACB_CAPS_GEM_HAS_PTP,
+ MACB_CAPS_GEM_HAS_PTP |
+ MACB_CAPS_USRIO_TSUCLK_SOURCE,
.dma_burst_length = 16,
.clk_init = macb_clk_init,
.init = init_reset_optional,
- .usrio = &at91_default_usrio,
+ .usrio = &mpfs_usrio,
.max_tx_length = 4040, /* Cadence Erratum 1686 */
.jumbo_max_len = 4040,
};
--
2.51.0
next prev parent reply other threads:[~2025-11-20 16:27 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-20 16:26 [RFC net-next v1 0/7] highly rfc macb usrio/tsu patches Conor Dooley
2025-11-20 16:26 ` [RFC net-next v1 1/7] riscv: dts: microchip: add tsu clock to macb on mpfs Conor Dooley
2025-11-20 16:26 ` [RFC net-next v1 2/7] net: macb: warn on pclk use as a tsu_clk fallback Conor Dooley
2025-11-20 16:26 ` [RFC net-next v1 3/7] net: macb: rename macb_default_usrio to at91_default_usrio as not all platforms have mii mode control in usrio Conor Dooley
2025-11-20 16:26 ` [RFC net-next v1 4/7] net: macb: np4 doesn't need a usrio pointer Conor Dooley
2025-11-20 16:26 ` [RFC net-next v1 5/7] dt-bindings: net: macb: add property indicating timer adjust mode Conor Dooley
2025-11-20 16:26 ` [RFC net-next v1 6/7] net: macb: afaict, the driver doesn't support tsu " Conor Dooley
2025-11-20 16:26 ` Conor Dooley [this message]
2025-11-20 16:31 ` [RFC net-next v1 0/7] highly rfc macb usrio/tsu patches Conor Dooley
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=20251120-unspoken-licking-5c9263746766@spud \
--to=conor@kernel.org \
--cc=Valentina.FernandezAlanis@microchip.com \
--cc=abin.joseph@amd.com \
--cc=alex@ghiti.fr \
--cc=andrew+netdev@lunn.ch \
--cc=aou@eecs.berkeley.edu \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor+dt@kernel.org \
--cc=conor.dooley@microchip.com \
--cc=daire.mcnamara@microchip.com \
--cc=dave.stevenson@raspberrypi.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=narmstrong@baylibre.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.com \
--cc=palmer@dabbelt.com \
--cc=pjw@kernel.org \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=samuel.holland@sifive.com \
--cc=sean.anderson@linux.dev \
--cc=vineeth.karumanchi@amd.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