net: dsa: mv88e6xxx: add support for MV88E6071 switch
authorLukasz Majewski <lukma@denx.de>
Tue, 30 May 2023 08:39:16 +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 5 internal PHYs, 2 RMIIs
and no PTP support.

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 d107c582fa933100e4ad58f8cc363fc5529da521..8731af6d79de9fde82458be3d49ec99fb8c55f79 100644 (file)
@@ -5692,6 +5692,26 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
                .ops = &mv88e6250_ops,
        },
 
+       [MV88E6071] = {
+               .prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6071,
+               .family = MV88E6XXX_FAMILY_6250,
+               .name = "Marvell 88E6071",
+               .num_databases = 64,
+               .num_ports = 7,
+               .num_internal_phys = 5,
+               .max_vid = 4095,
+               .port_base_addr = 0x08,
+               .phy_base_addr = 0x00,
+               .global1_addr = 0x0f,
+               .global2_addr = 0x07,
+               .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 1bd7aa591c945d9210d8f1292add835fec6f34f6..0ad34b2d89137fb0d134e412063c0a59a84f8c60 100644 (file)
@@ -55,6 +55,7 @@ enum mv88e6xxx_frame_mode {
 /* List of supported models */
 enum mv88e6xxx_model {
        MV88E6020,
+       MV88E6071,
        MV88E6085,
        MV88E6095,
        MV88E6097,
@@ -96,7 +97,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 6020 */
+       MV88E6XXX_FAMILY_6250,  /* 6220 6250 6020 6071 */
        MV88E6XXX_FAMILY_6320,  /* 6320 6321 */
        MV88E6XXX_FAMILY_6341,  /* 6141 6341 */
        MV88E6XXX_FAMILY_6351,  /* 6171 6175 6350 6351 */
index 111bdfab9619f8d51ac257eccacde2452d6abb6d..86deeb347cbc1d82526f362f719c57ac17039bf0 100644 (file)
 #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_6071     0x0710
 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6085     0x04a0
 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6095     0x0950
 #define MV88E6XXX_PORT_SWITCH_ID_PROD_6097     0x0990