net: dsa: mv88e6xxx: add support for MV88E6020 switch
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Tue, 30 May 2023 08:39:15 +0000 (10:39 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 May 2023 08:56:08 +0000 (09:56 +0100)
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>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/chip.c
drivers/net/dsa/mv88e6xxx/chip.h
drivers/net/dsa/mv88e6xxx/port.h

index 4ee2d06..d107c58 100644 (file)
@@ -5672,6 +5672,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,
index 79c06ba..1bd7aa5 100644 (file)
@@ -54,6 +54,7 @@ enum mv88e6xxx_frame_mode {
 
 /* List of supported models */
 enum mv88e6xxx_model {
+       MV88E6020,
        MV88E6085,
        MV88E6095,
        MV88E6097,
@@ -95,7 +96,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 */
index ec90190..111bdfa 100644 (file)
 /* 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