netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
To: Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-stm32@st-md-mailman.stormreply.com,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>
Subject: [PATCH net-next 1/9] net: stmmac: rk: add get_interfaces() implementation
Date: Thu, 12 Jun 2025 16:40:41 +0100	[thread overview]
Message-ID: <E1uPk2j-004CF6-Mf@rmk-PC.armlinux.org.uk> (raw)
In-Reply-To: <aEr1BhIoC6-UM2XV@shell.armlinux.org.uk>

RK platforms support RGMII and/or RMII depending on the SoC. Detect
whether support for a SoC exists by whether the interface specific
set_to functions have been populated, and set the appropriate bits in
phylink's bitmap of interfaces.

This assumes all dwmac interfaces on a SoC have identical support,
but it should be noted that this is not true for RK3528 which only
supports RGMII on GMAC1. However, the existing code structure
permits RGMII to be configured on GMAC0 without complaint, so
preserve this behaviour even though it is incorrect to avoid
functional change.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
 drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 700858ff6f7c..8006424ab027 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -1864,6 +1864,18 @@ static void rk_gmac_powerdown(struct rk_priv_data *gmac)
 	gmac_clk_enable(gmac, false);
 }
 
+static void rk_get_interfaces(struct stmmac_priv *priv, void *bsp_priv,
+			      unsigned long *interfaces)
+{
+	struct rk_priv_data *rk = bsp_priv;
+
+	if (rk->ops->set_to_rgmii)
+		phy_interface_set_rgmii(interfaces);
+
+	if (rk->ops->set_to_rmii)
+		__set_bit(PHY_INTERFACE_MODE_RMII, interfaces);
+}
+
 static int rk_set_clk_tx_rate(void *bsp_priv_, struct clk *clk_tx_i,
 			      phy_interface_t interface, int speed)
 {
@@ -1919,6 +1931,7 @@ static int rk_gmac_probe(struct platform_device *pdev)
 		plat_dat->tx_fifo_size = 2048;
 	}
 
+	plat_dat->get_interfaces = rk_get_interfaces;
 	plat_dat->set_clk_tx_rate = rk_set_clk_tx_rate;
 
 	plat_dat->bsp_priv = rk_gmac_setup(pdev, plat_dat, data);
-- 
2.30.2


  reply	other threads:[~2025-06-12 15:41 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-12 15:40 [PATCH net-next 0/9] net: stmmac: rk: much needed cleanups Russell King (Oracle)
2025-06-12 15:40 ` Russell King (Oracle) [this message]
2025-06-12 15:46   ` [PATCH net-next 1/9] net: stmmac: rk: add get_interfaces() implementation Andrew Lunn
2025-06-12 15:40 ` [PATCH net-next 2/9] net: stmmac: rk: simplify set_*_speed() Russell King (Oracle)
2025-06-12 15:47   ` Andrew Lunn
2025-06-12 15:40 ` [PATCH net-next 3/9] net: stmmac: rk: add struct for programming register based speeds Russell King (Oracle)
2025-06-12 15:48   ` Andrew Lunn
2025-06-12 15:40 ` [PATCH net-next 4/9] net: stmmac: rk: combine rv1126 set_*_speed() methods Russell King (Oracle)
2025-06-12 15:49   ` Andrew Lunn
2025-06-12 15:41 ` [PATCH net-next 5/9] net: stmmac: rk: combine clk_mac_speed rate setting functions Russell King (Oracle)
2025-06-12 15:49   ` Andrew Lunn
2025-06-12 15:41 ` [PATCH net-next 6/9] net: stmmac: rk: combine .set_*_speed() methods Russell King (Oracle)
2025-06-12 15:51   ` Andrew Lunn
2025-06-12 15:41 ` [PATCH net-next 7/9] net: stmmac: rk: simplify px30_set_rmii_speed() Russell King (Oracle)
2025-06-12 15:52   ` Andrew Lunn
2025-06-12 15:41 ` [PATCH net-next 8/9] net: stmmac: rk: convert px30_set_rmii_speed() to .set_speed() Russell King (Oracle)
2025-06-12 15:52   ` Andrew Lunn
2025-06-12 15:41 ` [PATCH net-next 9/9] net: stmmac: rk: remove obsolete .set_*_speed() methods Russell King (Oracle)
2025-06-12 15:53   ` Andrew Lunn
2025-06-14  1:30 ` [PATCH net-next 0/9] net: stmmac: rk: much needed cleanups patchwork-bot+netdevbpf

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=E1uPk2j-004CF6-Mf@rmk-PC.armlinux.org.uk \
    --to=rmk+kernel@armlinux.org.uk \
    --cc=alexandre.torgue@foss.st.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.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).