From: arinc9.unal@gmail.com
To: Sean Wang <sean.wang@mediatek.com>,
Landen Chao <Landen.Chao@mediatek.com>,
DENG Qingfang <dqfext@gmail.com>,
Daniel Golle <daniel@makrotopia.org>,
Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
Vladimir Oltean <olteanv@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Russell King <linux@armlinux.org.uk>
Cc: "Arınç ÜNAL" <arinc.unal@arinc9.com>,
"Richard van Schagen" <richard@routerhints.com>,
"Richard van Schagen" <vschagen@cs.com>,
"Frank Wunderlich" <frank-w@public-files.de>,
"Bartel Eerdekens" <bartel.eerdekens@constell8.be>,
erkin.bozoglu@xeront.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: [PATCH net-next 23/24] net: dsa: mt7530: rename p5_intf_sel and use only for MT7530 switch
Date: Tue, 25 Apr 2023 11:29:32 +0300 [thread overview]
Message-ID: <20230425082933.84654-24-arinc.unal@arinc9.com> (raw)
In-Reply-To: <20230425082933.84654-1-arinc.unal@arinc9.com>
From: Arınç ÜNAL <arinc.unal@arinc9.com>
The p5_intf_sel pointer is used to store the information of whether PHY
muxing is used or not. PHY muxing is a feature specific to port 5 of the
MT7530 switch. Do not use it for other switch models.
Rename the pointer to p5_mode to store the mode the port is being used in.
Rename the p5_interface_select enum to mt7530_p5_mode, the string
representation to mt7530_p5_mode_str, and the enum elements.
If PHY muxing is not detected, the default mode, GMAC5, will be used.
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
---
drivers/net/dsa/mt7530.c | 61 ++++++++++++++++------------------------
drivers/net/dsa/mt7530.h | 15 +++++-----
2 files changed, 32 insertions(+), 44 deletions(-)
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index 02e6ba5a4403..62e55df273cc 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -873,19 +873,15 @@ mt7530_set_ageing_time(struct dsa_switch *ds, unsigned int msecs)
return 0;
}
-static const char *p5_intf_modes(unsigned int p5_interface)
-{
- switch (p5_interface) {
- case P5_DISABLED:
- return "DISABLED";
- case P5_INTF_SEL_PHY_P0:
- return "PHY P0";
- case P5_INTF_SEL_PHY_P4:
- return "PHY P4";
- case P5_INTF_SEL_GMAC5:
- return "GMAC5";
+static const char *mt7530_p5_mode_str(unsigned int mode)
+{
+ switch (mode) {
+ case MUX_PHY_P0:
+ return "MUX PHY P0";
+ case MUX_PHY_P4:
+ return "MUX PHY P4";
default:
- return "unknown";
+ return "GMAC5";
}
}
@@ -902,23 +898,21 @@ static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
val |= MHWTRAP_MANUAL | MHWTRAP_P5_MAC_SEL | MHWTRAP_P5_DIS;
val &= ~MHWTRAP_P5_RGMII_MODE & ~MHWTRAP_PHY0_SEL;
- switch (priv->p5_intf_sel) {
- case P5_INTF_SEL_PHY_P0:
- /* MT7530_P5_MODE_GPHY_P0: 2nd GMAC -> P5 -> P0 */
+ switch (priv->p5_mode) {
+ case MUX_PHY_P0:
+ /* MUX_PHY_P0: P0 -> P5 -> SoC MAC */
val |= MHWTRAP_PHY0_SEL;
fallthrough;
- case P5_INTF_SEL_PHY_P4:
- /* MT7530_P5_MODE_GPHY_P4: 2nd GMAC -> P5 -> P4 */
+ case MUX_PHY_P4:
+ /* MUX_PHY_P4: P4 -> P5 -> SoC MAC */
val &= ~MHWTRAP_P5_MAC_SEL & ~MHWTRAP_P5_DIS;
/* Setup the MAC by default for the cpu port */
mt7530_write(priv, MT7530_PMCR_P(5), 0x56300);
break;
- case P5_INTF_SEL_GMAC5:
- /* MT7530_P5_MODE_GMAC: P5 -> External phy or 2nd GMAC */
- val &= ~MHWTRAP_P5_DIS;
- break;
default:
+ /* GMAC5: P5 -> SoC MAC or external PHY */
+ val &= ~MHWTRAP_P5_DIS;
break;
}
@@ -942,8 +936,8 @@ static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
mt7530_write(priv, MT7530_MHWTRAP, val);
- dev_dbg(ds->dev, "Setup P5, HWTRAP=0x%x, intf_sel=%s, phy-mode=%s\n",
- val, p5_intf_modes(priv->p5_intf_sel), phy_modes(interface));
+ dev_dbg(ds->dev, "Setup P5, HWTRAP=0x%x, mode=%s, phy-mode=%s\n", val,
+ mt7530_p5_mode_str(priv->p5_mode), phy_modes(interface));
mutex_unlock(&priv->reg_mutex);
}
@@ -2261,13 +2255,11 @@ mt7530_setup(struct dsa_switch *ds)
if (ret)
return ret;
- /* Setup port 5 */
- if (!dsa_is_unused_port(ds, 5)) {
- priv->p5_intf_sel = P5_INTF_SEL_GMAC5;
- } else {
+ /* Check for PHY muxing on port 5 */
+ if (dsa_is_unused_port(ds, 5)) {
/* Scan the ethernet nodes. Look for GMAC1, lookup the used PHY.
- * Set priv->p5_intf_sel to the appropriate value if PHY muxing
- * is detected.
+ * Set priv->p5_mode to the appropriate value if PHY muxing is
+ * detected.
*/
for_each_child_of_node(dn, mac_np) {
if (!of_device_is_compatible(mac_np,
@@ -2291,17 +2283,17 @@ mt7530_setup(struct dsa_switch *ds)
}
id = of_mdio_parse_addr(ds->dev, phy_node);
if (id == 0)
- priv->p5_intf_sel = P5_INTF_SEL_PHY_P0;
+ priv->p5_mode = MUX_PHY_P0;
if (id == 4)
- priv->p5_intf_sel = P5_INTF_SEL_PHY_P4;
+ priv->p5_mode = MUX_PHY_P4;
}
of_node_put(mac_np);
of_node_put(phy_node);
break;
}
- if (priv->p5_intf_sel == P5_INTF_SEL_PHY_P0 ||
- priv->p5_intf_sel == P5_INTF_SEL_PHY_P4)
+ if (priv->p5_mode == MUX_PHY_P0 ||
+ priv->p5_mode == MUX_PHY_P4)
mt7530_setup_port5(ds, interface);
}
@@ -2438,9 +2430,6 @@ mt7531_setup(struct dsa_switch *ds)
MT7531_EXT_P_MDIO_12);
}
- if (!dsa_is_unused_port(ds, 5))
- priv->p5_intf_sel = P5_INTF_SEL_GMAC5;
-
mt7530_rmw(priv, MT7531_GPIO_MODE0, MT7531_GPIO0_MASK,
MT7531_GPIO0_INTERRUPT);
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index b7f80a487073..216081fb1c12 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -673,12 +673,11 @@ struct mt7530_port {
struct phylink_pcs *sgmii_pcs;
};
-/* Port 5 interface select definitions */
-enum p5_interface_select {
- P5_DISABLED,
- P5_INTF_SEL_PHY_P0,
- P5_INTF_SEL_PHY_P4,
- P5_INTF_SEL_GMAC5,
+/* Port 5 mode definitions of the MT7530 switch */
+enum mt7530_p5_mode {
+ GMAC5,
+ MUX_PHY_P0,
+ MUX_PHY_P4,
};
struct mt7530_priv;
@@ -746,7 +745,7 @@ struct mt753x_info {
* is already configured
* @p5_configured: Flag for distinguishing if port 5 of the MT7531 switch
* is already configured
- * @p5_intf_sel: Holding the current port 5 interface select
+ * @p5_mode: Holding the current mode of port 5 of the MT7530 switch
* @p5_sgmii: Flag for distinguishing if port 5 of the MT7531 switch
* has got SGMII
* @irq: IRQ number of the switch
@@ -768,7 +767,7 @@ struct mt7530_priv {
bool mcm;
bool p6_configured;
bool p5_configured;
- enum p5_interface_select p5_intf_sel;
+ enum mt7530_p5_mode p5_mode;
bool p5_sgmii;
u8 mirror_rx;
u8 mirror_tx;
--
2.37.2
next prev parent reply other threads:[~2023-04-25 8:33 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-25 8:29 [PATCH net-next 00/24] net: dsa: MT7530, MT7531, and MT7988 improvements arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 01/24] net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621 arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 02/24] net: dsa: mt7530: add missing @p5_interface to mt7530_priv description arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 03/24] net: dsa: mt7530: use p5_interface_select as data type for p5_intf_sel arinc9.unal
2023-04-25 15:06 ` Daniel Golle
2023-04-25 8:29 ` [PATCH net-next 04/24] net: dsa: mt7530: properly support MT7531AE and MT7531BE arinc9.unal
2023-04-25 15:04 ` Daniel Golle
2023-04-26 8:12 ` Arınç ÜNAL
2023-04-26 13:07 ` Daniel Golle
2023-04-26 14:39 ` Vladimir Oltean
2023-04-26 16:15 ` Daniel Golle
2023-04-25 8:29 ` [PATCH net-next 05/24] net: dsa: mt7530: improve comments regarding port 5 and 6 arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 06/24] net: dsa: mt7530: read XTAL value from correct register arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 07/24] net: dsa: mt7530: improve code path for setting up port 5 arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 08/24] net: dsa: mt7530: do not run mt7530_setup_port5() if port 5 is disabled arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 09/24] net: dsa: mt7530: change p{5,6}_interface to p{5,6}_configured arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 10/24] net: dsa: mt7530: empty default case on mt7530_setup_port5() arinc9.unal
2023-04-25 15:13 ` Daniel Golle
2023-04-26 8:22 ` Arınç ÜNAL
2023-04-25 8:29 ` [PATCH net-next 11/24] net: dsa: mt7530: call port 6 setup from mt7530_mac_config() arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 12/24] net: dsa: mt7530: remove pad_setup function pointer arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 13/24] net: dsa: mt7530: move XTAL check to mt7530_setup() arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 14/24] net: dsa: mt7530: move enabling port 6 to mt7530_setup_port6() arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 15/24] net: dsa: mt7530: switch to if/else statements on mt7530_setup_port6() arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 16/24] net: dsa: mt7530: set TRGMII RD TAP if trgmii is being used arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 17/24] net: dsa: mt7530: move lowering port 5 RGMII driving to mt7530_setup() arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 18/24] net: dsa: mt7530: fix port capabilities for MT7988 arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 19/24] net: dsa: mt7530: remove .mac_port_config for MT7988 and make it optional arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 20/24] net: dsa: mt7530: set interrupt register only for MT7530 arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 21/24] net: dsa: mt7530: force link-down on MACs before reset on MT7530 arinc9.unal
2023-04-25 8:29 ` [PATCH net-next 22/24] net: dsa: mt7530: get rid of useless error returns on phylink code path arinc9.unal
2023-04-25 8:29 ` arinc9.unal [this message]
2023-04-25 8:29 ` [PATCH net-next 24/24] net: dsa: mt7530: run mt7530_pll_setup() only with 40 MHz XTAL arinc9.unal
2023-04-25 15:35 ` [PATCH net-next 00/24] net: dsa: MT7530, MT7531, and MT7988 improvements Jakub Kicinski
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=20230425082933.84654-24-arinc.unal@arinc9.com \
--to=arinc9.unal@gmail.com \
--cc=Landen.Chao@mediatek.com \
--cc=andrew@lunn.ch \
--cc=angelogioacchino.delregno@collabora.com \
--cc=arinc.unal@arinc9.com \
--cc=bartel.eerdekens@constell8.be \
--cc=daniel@makrotopia.org \
--cc=davem@davemloft.net \
--cc=dqfext@gmail.com \
--cc=edumazet@google.com \
--cc=erkin.bozoglu@xeront.com \
--cc=f.fainelli@gmail.com \
--cc=frank-w@public-files.de \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=richard@routerhints.com \
--cc=sean.wang@mediatek.com \
--cc=vschagen@cs.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