[v8,2/3] net: dsa: mv88e6xxx: add support for MV88E6020 switch

Message ID 20230530083916.2139667-3-lukma@denx.de
State New
Headers
Series dsa: marvell: Add support for mv88e6071 and 6020 switches |

Commit Message

Lukasz Majewski May 30, 2023, 8:39 a.m. UTC
  From: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>

A mv88e6250 family switch with 2 PHY and RMII ports and
no PTP support.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
Changes for v2:
- Add S-o-B
- Update commit message
- Add information about max packet size (2048 B)

Changes for v3:
- None

Changes for v4:
- Update the num_ports and num_internal_phys to be in sync with
  88e6020 documentation

Changes for v5:
- None

Changes for v6:
- Reorder patches for better readiness

Changes for v7:
- Provide just support for this IC (remove the part with setting
  max frame info as it is not needed anymore)

Changes for v8:
- Update commit message and comment regarding mv88e6250 family of
  switch ICs
---
 drivers/net/dsa/mv88e6xxx/chip.c | 20 ++++++++++++++++++++
 drivers/net/dsa/mv88e6xxx/chip.h |  3 ++-
 drivers/net/dsa/mv88e6xxx/port.h |  1 +
 3 files changed, 23 insertions(+), 1 deletion(-)
  

Comments

Florian Fainelli May 30, 2023, 9:38 p.m. UTC | #1
On 5/30/23 01:39, Lukasz Majewski wrote:
> From: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> 
> A mv88e6250 family switch with 2 PHY and RMII ports and
> no PTP support.
> 
> Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> Signed-off-by: Lukasz Majewski <lukma@denx.de>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>

> ---
[snip]

>   /* List of supported models */
>   enum mv88e6xxx_model {
> +	MV88E6020,
>   	MV88E6085,
>   	MV88E6095,
>   	MV88E6097,
> @@ -94,7 +95,7 @@ enum mv88e6xxx_family {
>   	MV88E6XXX_FAMILY_6097,	/* 6046 6085 6096 6097 */
>   	MV88E6XXX_FAMILY_6165,	/* 6123 6161 6165 */
>   	MV88E6XXX_FAMILY_6185,	/* 6108 6121 6122 6131 6152 6155 6182 6185 */
> -	MV88E6XXX_FAMILY_6250,	/* 6220 6250 */
> +	MV88E6XXX_FAMILY_6250,	/* 6220 6250 6020 */

über nit: only if you have to resubmit, numbers in ascending order.

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
  
Lukasz Majewski May 31, 2023, 8:08 a.m. UTC | #2
Hi Florian,

> On 5/30/23 01:39, Lukasz Majewski wrote:
> > From: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> > 
> > A mv88e6250 family switch with 2 PHY and RMII ports and
> > no PTP support.
> > 
> > Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
> > Signed-off-by: Lukasz Majewski <lukma@denx.de>
> > Reviewed-by: Andrew Lunn <andrew@lunn.ch>  
> 
> > ---  
> [snip]
> 
> >   /* List of supported models */
> >   enum mv88e6xxx_model {
> > +	MV88E6020,
> >   	MV88E6085,
> >   	MV88E6095,
> >   	MV88E6097,
> > @@ -94,7 +95,7 @@ enum mv88e6xxx_family {
> >   	MV88E6XXX_FAMILY_6097,	/* 6046 6085 6096 6097 */
> >   	MV88E6XXX_FAMILY_6165,	/* 6123 6161 6165 */
> >   	MV88E6XXX_FAMILY_6185,	/* 6108 6121 6122 6131 6152
> > 6155 6182 6185 */
> > -	MV88E6XXX_FAMILY_6250,	/* 6220 6250 */
> > +	MV88E6XXX_FAMILY_6250,	/* 6220 6250 6020 */  
> 
> über nit: only if you have to resubmit, numbers in ascending order.
> 

I hope that v8 will be the last iteration :-)

> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>


Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
  

Patch

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index b5e43dd40431..9cb76a5b8ff5 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -5643,6 +5643,26 @@  static const struct mv88e6xxx_ops mv88e6393x_ops = {
 };
 
 static const struct mv88e6xxx_info mv88e6xxx_table[] = {
+	[MV88E6020] = {
+		.prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6020,
+		.family = MV88E6XXX_FAMILY_6250,
+		.name = "Marvell 88E6020",
+		.num_databases = 64,
+		.num_ports = 4,
+		.num_internal_phys = 2,
+		.max_vid = 4095,
+		.port_base_addr = 0x8,
+		.phy_base_addr = 0x0,
+		.global1_addr = 0xf,
+		.global2_addr = 0x7,
+		.age_time_coeff = 15000,
+		.g1_irqs = 9,
+		.g2_irqs = 5,
+		.atu_move_port_mask = 0xf,
+		.dual_chip = true,
+		.ops = &mv88e6250_ops,
+	},
+
 	[MV88E6085] = {
 		.prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6085,
 		.family = MV88E6XXX_FAMILY_6097,
diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h
index da6e1339f809..e249d4a3f853 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.h
+++ b/drivers/net/dsa/mv88e6xxx/chip.h
@@ -54,6 +54,7 @@  enum mv88e6xxx_frame_mode {
 
 /* List of supported models */
 enum mv88e6xxx_model {
+	MV88E6020,
 	MV88E6085,
 	MV88E6095,
 	MV88E6097,
@@ -94,7 +95,7 @@  enum mv88e6xxx_family {
 	MV88E6XXX_FAMILY_6097,	/* 6046 6085 6096 6097 */
 	MV88E6XXX_FAMILY_6165,	/* 6123 6161 6165 */
 	MV88E6XXX_FAMILY_6185,	/* 6108 6121 6122 6131 6152 6155 6182 6185 */
-	MV88E6XXX_FAMILY_6250,	/* 6220 6250 */
+	MV88E6XXX_FAMILY_6250,	/* 6220 6250 6020 */
 	MV88E6XXX_FAMILY_6320,	/* 6320 6321 */
 	MV88E6XXX_FAMILY_6341,	/* 6141 6341 */
 	MV88E6XXX_FAMILY_6351,	/* 6171 6175 6350 6351 */
diff --git a/drivers/net/dsa/mv88e6xxx/port.h b/drivers/net/dsa/mv88e6xxx/port.h
index d19b6303b91f..56efba08abdc 100644
--- a/drivers/net/dsa/mv88e6xxx/port.h
+++ b/drivers/net/dsa/mv88e6xxx/port.h
@@ -111,6 +111,7 @@ 
 /* Offset 0x03: Switch Identifier Register */
 #define MV88E6XXX_PORT_SWITCH_ID		0x03
 #define MV88E6XXX_PORT_SWITCH_ID_PROD_MASK	0xfff0
+#define MV88E6XXX_PORT_SWITCH_ID_PROD_6020	0x0200
 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6085	0x04a0
 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6095	0x0950
 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6097	0x0990