* [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver
@ 2024-08-01 7:35 Lorenzo Bianconi
2024-08-01 7:35 ` [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch Lorenzo Bianconi
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Lorenzo Bianconi @ 2024-08-01 7:35 UTC (permalink / raw)
To: netdev
Cc: arinc.unal, daniel, dqfext, sean.wang, andrew, f.fainelli,
olteanv, davem, edumazet, kuba, pabeni, matthias.bgg,
angelogioacchino.delregno, linux-arm-kernel, linux-mediatek,
lorenzo.bianconi83, robh, krzk+dt, conor+dt, devicetree, upstream
Add EN7581 support to MT7530 DSA driver.
Changes since v1:
- get rid of mac_port_config callback for EN7581
- introduce en7581_mac_port_get_caps callback
- introduce MT753X_FORCE_MODE(id) macro
- fix compatible property in mt7530.yaml
Lorenzo Bianconi (2):
dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch
net: dsa: mt7530: Add EN7581 support
.../bindings/net/dsa/mediatek,mt7530.yaml | 8 ++-
drivers/net/dsa/mt7530-mmio.c | 1 +
drivers/net/dsa/mt7530.c | 49 ++++++++++++++++---
drivers/net/dsa/mt7530.h | 20 ++++++--
4 files changed, 66 insertions(+), 12 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch
2024-08-01 7:35 [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver Lorenzo Bianconi
@ 2024-08-01 7:35 ` Lorenzo Bianconi
2024-08-01 8:17 ` Arınç ÜNAL
2024-08-01 18:21 ` Florian Fainelli
2024-08-01 7:35 ` [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support Lorenzo Bianconi
2024-08-05 23:42 ` [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver Jakub Kicinski
2 siblings, 2 replies; 8+ messages in thread
From: Lorenzo Bianconi @ 2024-08-01 7:35 UTC (permalink / raw)
To: netdev
Cc: arinc.unal, daniel, dqfext, sean.wang, andrew, f.fainelli,
olteanv, davem, edumazet, kuba, pabeni, matthias.bgg,
angelogioacchino.delregno, linux-arm-kernel, linux-mediatek,
lorenzo.bianconi83, robh, krzk+dt, conor+dt, devicetree, upstream
Add documentation for the built-in switch which can be found in the
Airoha EN7581 SoC.
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
.../devicetree/bindings/net/dsa/mediatek,mt7530.yaml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
index 7e405ad96eb2..ea979bcae1d6 100644
--- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
@@ -92,6 +92,10 @@ properties:
Built-in switch of the MT7988 SoC
const: mediatek,mt7988-switch
+ - description:
+ Built-in switch of the Airoha EN7581 SoC
+ const: airoha,en7581-switch
+
reg:
maxItems: 1
@@ -284,7 +288,9 @@ allOf:
- if:
properties:
compatible:
- const: mediatek,mt7988-switch
+ enum:
+ - mediatek,mt7988-switch
+ - airoha,en7581-switch
then:
$ref: "#/$defs/mt7530-dsa-port"
properties:
--
2.45.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support
2024-08-01 7:35 [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver Lorenzo Bianconi
2024-08-01 7:35 ` [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch Lorenzo Bianconi
@ 2024-08-01 7:35 ` Lorenzo Bianconi
2024-08-01 8:19 ` Arınç ÜNAL
2024-08-01 18:21 ` Florian Fainelli
2024-08-05 23:42 ` [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver Jakub Kicinski
2 siblings, 2 replies; 8+ messages in thread
From: Lorenzo Bianconi @ 2024-08-01 7:35 UTC (permalink / raw)
To: netdev
Cc: arinc.unal, daniel, dqfext, sean.wang, andrew, f.fainelli,
olteanv, davem, edumazet, kuba, pabeni, matthias.bgg,
angelogioacchino.delregno, linux-arm-kernel, linux-mediatek,
lorenzo.bianconi83, robh, krzk+dt, conor+dt, devicetree, upstream
Introduce support for the DSA built-in switch available on the EN7581
development board. EN7581 support is similar to MT7988 one except
it requires to set MT7530_FORCE_MODE bit in MT753X_PMCR_P register
for on cpu port.
Tested-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
drivers/net/dsa/mt7530-mmio.c | 1 +
drivers/net/dsa/mt7530.c | 49 ++++++++++++++++++++++++++++++-----
drivers/net/dsa/mt7530.h | 20 ++++++++++----
3 files changed, 59 insertions(+), 11 deletions(-)
diff --git a/drivers/net/dsa/mt7530-mmio.c b/drivers/net/dsa/mt7530-mmio.c
index b74a230a3f13..10dc49961f15 100644
--- a/drivers/net/dsa/mt7530-mmio.c
+++ b/drivers/net/dsa/mt7530-mmio.c
@@ -11,6 +11,7 @@
#include "mt7530.h"
static const struct of_device_id mt7988_of_match[] = {
+ { .compatible = "airoha,en7581-switch", .data = &mt753x_table[ID_EN7581], },
{ .compatible = "mediatek,mt7988-switch", .data = &mt753x_table[ID_MT7988], },
{ /* sentinel */ },
};
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index ec18e68bf3a8..d84ee1b419a6 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -1152,7 +1152,8 @@ mt753x_cpu_port_enable(struct dsa_switch *ds, int port)
* the MT7988 SoC. Trapped frames will be forwarded to the CPU port that
* is affine to the inbound user port.
*/
- if (priv->id == ID_MT7531 || priv->id == ID_MT7988)
+ if (priv->id == ID_MT7531 || priv->id == ID_MT7988 ||
+ priv->id == ID_EN7581)
mt7530_set(priv, MT7531_CFC, MT7531_CPU_PMAP(BIT(port)));
/* CPU port gets connected to all user ports of
@@ -2207,7 +2208,7 @@ mt7530_setup_irq(struct mt7530_priv *priv)
return priv->irq ? : -EINVAL;
}
- if (priv->id == ID_MT7988)
+ if (priv->id == ID_MT7988 || priv->id == ID_EN7581)
priv->irq_domain = irq_domain_add_linear(np, MT7530_NUM_PHYS,
&mt7988_irq_domain_ops,
priv);
@@ -2438,8 +2439,10 @@ mt7530_setup(struct dsa_switch *ds)
/* Clear link settings and enable force mode to force link down
* on all ports until they're enabled later.
*/
- mt7530_rmw(priv, MT753X_PMCR_P(i), PMCR_LINK_SETTINGS_MASK |
- MT7530_FORCE_MODE, MT7530_FORCE_MODE);
+ mt7530_rmw(priv, MT753X_PMCR_P(i),
+ PMCR_LINK_SETTINGS_MASK |
+ MT753X_FORCE_MODE(priv->id),
+ MT753X_FORCE_MODE(priv->id));
/* Disable forwarding by default on all ports */
mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK,
@@ -2550,8 +2553,10 @@ mt7531_setup_common(struct dsa_switch *ds)
/* Clear link settings and enable force mode to force link down
* on all ports until they're enabled later.
*/
- mt7530_rmw(priv, MT753X_PMCR_P(i), PMCR_LINK_SETTINGS_MASK |
- MT7531_FORCE_MODE_MASK, MT7531_FORCE_MODE_MASK);
+ mt7530_rmw(priv, MT753X_PMCR_P(i),
+ PMCR_LINK_SETTINGS_MASK |
+ MT753X_FORCE_MODE(priv->id),
+ MT753X_FORCE_MODE(priv->id));
/* Disable forwarding by default on all ports */
mt7530_rmw(priv, MT7530_PCR_P(i), PCR_MATRIX_MASK,
@@ -2783,6 +2788,28 @@ static void mt7988_mac_port_get_caps(struct dsa_switch *ds, int port,
}
}
+static void en7581_mac_port_get_caps(struct dsa_switch *ds, int port,
+ struct phylink_config *config)
+{
+ switch (port) {
+ /* Ports which are connected to switch PHYs. There is no MII pinout. */
+ case 0 ... 4:
+ __set_bit(PHY_INTERFACE_MODE_INTERNAL,
+ config->supported_interfaces);
+
+ config->mac_capabilities |= MAC_10 | MAC_100 | MAC_1000FD;
+ break;
+
+ /* Port 6 is connected to SoC's XGMII MAC. There is no MII pinout. */
+ case 6:
+ __set_bit(PHY_INTERFACE_MODE_INTERNAL,
+ config->supported_interfaces);
+
+ config->mac_capabilities |= MAC_10000FD;
+ break;
+ }
+}
+
static void
mt7530_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
phy_interface_t interface)
@@ -3220,6 +3247,16 @@ const struct mt753x_info mt753x_table[] = {
.phy_write_c45 = mt7531_ind_c45_phy_write,
.mac_port_get_caps = mt7988_mac_port_get_caps,
},
+ [ID_EN7581] = {
+ .id = ID_EN7581,
+ .pcs_ops = &mt7530_pcs_ops,
+ .sw_setup = mt7988_setup,
+ .phy_read_c22 = mt7531_ind_c22_phy_read,
+ .phy_write_c22 = mt7531_ind_c22_phy_write,
+ .phy_read_c45 = mt7531_ind_c45_phy_read,
+ .phy_write_c45 = mt7531_ind_c45_phy_write,
+ .mac_port_get_caps = en7581_mac_port_get_caps,
+ },
};
EXPORT_SYMBOL_GPL(mt753x_table);
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index 28592123070b..6ad33a9f6b1d 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -19,6 +19,7 @@ enum mt753x_id {
ID_MT7621 = 1,
ID_MT7531 = 2,
ID_MT7988 = 3,
+ ID_EN7581 = 4,
};
#define NUM_TRGMII_CTRL 5
@@ -64,25 +65,30 @@ enum mt753x_id {
#define MT7531_CPU_PMAP(x) FIELD_PREP(MT7531_CPU_PMAP_MASK, x)
#define MT753X_MIRROR_REG(id) ((id == ID_MT7531 || \
- id == ID_MT7988) ? \
+ id == ID_MT7988 || \
+ id == ID_EN7581) ? \
MT7531_CFC : MT753X_MFC)
#define MT753X_MIRROR_EN(id) ((id == ID_MT7531 || \
- id == ID_MT7988) ? \
+ id == ID_MT7988 || \
+ id == ID_EN7581) ? \
MT7531_MIRROR_EN : MT7530_MIRROR_EN)
#define MT753X_MIRROR_PORT_MASK(id) ((id == ID_MT7531 || \
- id == ID_MT7988) ? \
+ id == ID_MT7988 || \
+ id == ID_EN7581) ? \
MT7531_MIRROR_PORT_MASK : \
MT7530_MIRROR_PORT_MASK)
#define MT753X_MIRROR_PORT_GET(id, val) ((id == ID_MT7531 || \
- id == ID_MT7988) ? \
+ id == ID_MT7988 || \
+ id == ID_EN7581) ? \
MT7531_MIRROR_PORT_GET(val) : \
MT7530_MIRROR_PORT_GET(val))
#define MT753X_MIRROR_PORT_SET(id, val) ((id == ID_MT7531 || \
- id == ID_MT7988) ? \
+ id == ID_MT7988 || \
+ id == ID_EN7581) ? \
MT7531_MIRROR_PORT_SET(val) : \
MT7530_MIRROR_PORT_SET(val))
@@ -355,6 +361,10 @@ enum mt7530_vlan_port_acc_frm {
MT7531_FORCE_MODE_TX_FC | \
MT7531_FORCE_MODE_EEE100 | \
MT7531_FORCE_MODE_EEE1G)
+#define MT753X_FORCE_MODE(id) ((id == ID_MT7531 || \
+ id == ID_MT7988) ? \
+ MT7531_FORCE_MODE_MASK : \
+ MT7530_FORCE_MODE)
#define PMCR_LINK_SETTINGS_MASK (PMCR_MAC_TX_EN | PMCR_MAC_RX_EN | \
PMCR_FORCE_EEE1G | \
PMCR_FORCE_EEE100 | \
--
2.45.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch
2024-08-01 7:35 ` [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch Lorenzo Bianconi
@ 2024-08-01 8:17 ` Arınç ÜNAL
2024-08-01 18:21 ` Florian Fainelli
1 sibling, 0 replies; 8+ messages in thread
From: Arınç ÜNAL @ 2024-08-01 8:17 UTC (permalink / raw)
To: Lorenzo Bianconi, netdev
Cc: daniel, dqfext, sean.wang, andrew, f.fainelli, olteanv, davem,
edumazet, kuba, pabeni, matthias.bgg, angelogioacchino.delregno,
linux-arm-kernel, linux-mediatek, lorenzo.bianconi83, robh,
krzk+dt, conor+dt, devicetree, upstream
On 01/08/2024 10:35, Lorenzo Bianconi wrote:
> Add documentation for the built-in switch which can be found in the
> Airoha EN7581 SoC.
>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Arınç ÜNAL <arinc.unal@arinc9.com>
Arınç
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support
2024-08-01 7:35 ` [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support Lorenzo Bianconi
@ 2024-08-01 8:19 ` Arınç ÜNAL
2024-08-01 18:21 ` Florian Fainelli
1 sibling, 0 replies; 8+ messages in thread
From: Arınç ÜNAL @ 2024-08-01 8:19 UTC (permalink / raw)
To: Lorenzo Bianconi, netdev
Cc: daniel, dqfext, sean.wang, andrew, f.fainelli, olteanv, davem,
edumazet, kuba, pabeni, matthias.bgg, angelogioacchino.delregno,
linux-arm-kernel, linux-mediatek, lorenzo.bianconi83, robh,
krzk+dt, conor+dt, devicetree, upstream
On 01/08/2024 10:35, Lorenzo Bianconi wrote:
> Introduce support for the DSA built-in switch available on the EN7581
> development board. EN7581 support is similar to MT7988 one except
> it requires to set MT7530_FORCE_MODE bit in MT753X_PMCR_P register
> for on cpu port.
>
> Tested-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Arınç ÜNAL <arinc.unal@arinc9.com>
I'm interested in getting my hands on this development board.
Arınç
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch
2024-08-01 7:35 ` [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch Lorenzo Bianconi
2024-08-01 8:17 ` Arınç ÜNAL
@ 2024-08-01 18:21 ` Florian Fainelli
1 sibling, 0 replies; 8+ messages in thread
From: Florian Fainelli @ 2024-08-01 18:21 UTC (permalink / raw)
To: Lorenzo Bianconi, netdev
Cc: arinc.unal, daniel, dqfext, sean.wang, andrew, olteanv, davem,
edumazet, kuba, pabeni, matthias.bgg, angelogioacchino.delregno,
linux-arm-kernel, linux-mediatek, lorenzo.bianconi83, robh,
krzk+dt, conor+dt, devicetree, upstream
On 8/1/24 00:35, Lorenzo Bianconi wrote:
> Add documentation for the built-in switch which can be found in the
> Airoha EN7581 SoC.
>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
--
Florian
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support
2024-08-01 7:35 ` [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support Lorenzo Bianconi
2024-08-01 8:19 ` Arınç ÜNAL
@ 2024-08-01 18:21 ` Florian Fainelli
1 sibling, 0 replies; 8+ messages in thread
From: Florian Fainelli @ 2024-08-01 18:21 UTC (permalink / raw)
To: Lorenzo Bianconi, netdev
Cc: arinc.unal, daniel, dqfext, sean.wang, andrew, olteanv, davem,
edumazet, kuba, pabeni, matthias.bgg, angelogioacchino.delregno,
linux-arm-kernel, linux-mediatek, lorenzo.bianconi83, robh,
krzk+dt, conor+dt, devicetree, upstream
On 8/1/24 00:35, Lorenzo Bianconi wrote:
> Introduce support for the DSA built-in switch available on the EN7581
> development board. EN7581 support is similar to MT7988 one except
> it requires to set MT7530_FORCE_MODE bit in MT753X_PMCR_P register
> for on cpu port.
>
> Tested-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
--
Florian
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver
2024-08-01 7:35 [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver Lorenzo Bianconi
2024-08-01 7:35 ` [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch Lorenzo Bianconi
2024-08-01 7:35 ` [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support Lorenzo Bianconi
@ 2024-08-05 23:42 ` Jakub Kicinski
2 siblings, 0 replies; 8+ messages in thread
From: Jakub Kicinski @ 2024-08-05 23:42 UTC (permalink / raw)
To: Lorenzo Bianconi
Cc: netdev, arinc.unal, daniel, dqfext, sean.wang, andrew, f.fainelli,
olteanv, davem, edumazet, pabeni, matthias.bgg,
angelogioacchino.delregno, linux-arm-kernel, linux-mediatek,
lorenzo.bianconi83, robh, krzk+dt, conor+dt, devicetree, upstream
On Thu, 1 Aug 2024 09:35:10 +0200 Lorenzo Bianconi wrote:
> Add EN7581 support to MT7530 DSA driver.
>
> Changes since v1:
> - get rid of mac_port_config callback for EN7581
> - introduce en7581_mac_port_get_caps callback
> - introduce MT753X_FORCE_MODE(id) macro
> - fix compatible property in mt7530.yaml
Looks like this got applied as 3608d6aca5e7 ("Merge branch 'dsa-en7581'
into main"). I think due to some script misbehavior it has the wrong
cover letter on the merge, but the code matches this series.
Thanks!
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-08-05 23:43 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-01 7:35 [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver Lorenzo Bianconi
2024-08-01 7:35 ` [PATCH v2 net-next 1/2] dt-bindings: net: dsa: mediatek,mt7530: Add airoha,en7581-switch Lorenzo Bianconi
2024-08-01 8:17 ` Arınç ÜNAL
2024-08-01 18:21 ` Florian Fainelli
2024-08-01 7:35 ` [PATCH v2 net-next 2/2] net: dsa: mt7530: Add EN7581 support Lorenzo Bianconi
2024-08-01 8:19 ` Arınç ÜNAL
2024-08-01 18:21 ` Florian Fainelli
2024-08-05 23:42 ` [PATCH v2 net-next 0/2] Add support for EN7581 to mt7530 driver Jakub Kicinski
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).