]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: dsa: b53: mdio: add support for BCM53101
authorTorben Nielsen <torben.nielsen@prevas.dk>
Mon, 17 Feb 2025 08:05:01 +0000 (09:05 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 20 Feb 2025 02:41:43 +0000 (18:41 -0800)
BCM53101 is a ethernet switch, very similar to the BCM53115.
Enable support for it, in the existing b53 dsa driver.

Signed-off-by: Torben Nielsen <torben.nielsen@prevas.dk>
Signed-off-by: Claus Stovgaard <claus.stovgaard@prevas.dk>
Link: https://patch.msgid.link/20250217080503.1390282-1-claus.stovgaard@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/b53/b53_common.c
drivers/net/dsa/b53/b53_mdio.c
drivers/net/dsa/b53/b53_priv.h

index 79dc77835681c83fc25a14cdb488b76ec6c8fb45..61d164ffb3ae9731daf88a711fa06b2e5f7aa622 100644 (file)
@@ -2409,6 +2409,19 @@ static const struct b53_chip_data b53_switch_chips[] = {
                .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
                .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
        },
+       {
+               .chip_id = BCM53101_DEVICE_ID,
+               .dev_name = "BCM53101",
+               .vlans = 4096,
+               .enabled_ports = 0x11f,
+               .arl_bins = 4,
+               .arl_buckets = 512,
+               .vta_regs = B53_VTA_REGS,
+               .imp_port = 8,
+               .duplex_reg = B53_DUPLEX_STAT_GE,
+               .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
+               .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
+       },
        {
                .chip_id = BCM53115_DEVICE_ID,
                .dev_name = "BCM53115",
@@ -2789,6 +2802,7 @@ int b53_switch_detect(struct b53_device *dev)
                        return ret;
 
                switch (id32) {
+               case BCM53101_DEVICE_ID:
                case BCM53115_DEVICE_ID:
                case BCM53125_DEVICE_ID:
                case BCM53128_DEVICE_ID:
index 31d070bf161a34c364d38a3a52ca4a74e587ae1c..43a3b37b731bf852cdbc7cce556668d7b8797dea 100644 (file)
@@ -374,6 +374,7 @@ static void b53_mdio_shutdown(struct mdio_device *mdiodev)
 
 static const struct of_device_id b53_of_match[] = {
        { .compatible = "brcm,bcm5325" },
+       { .compatible = "brcm,bcm53101" },
        { .compatible = "brcm,bcm53115" },
        { .compatible = "brcm,bcm53125" },
        { .compatible = "brcm,bcm53128" },
index 9e9b5bc0c5d6abd375efbb5a044da6c5e22e9121..0166c37a13a7fcbbe7c009bc6250ea0afbf1072d 100644 (file)
@@ -66,6 +66,7 @@ enum {
        BCM5395_DEVICE_ID = 0x95,
        BCM5397_DEVICE_ID = 0x97,
        BCM5398_DEVICE_ID = 0x98,
+       BCM53101_DEVICE_ID = 0x53101,
        BCM53115_DEVICE_ID = 0x53115,
        BCM53125_DEVICE_ID = 0x53125,
        BCM53128_DEVICE_ID = 0x53128,
@@ -188,6 +189,7 @@ static inline int is531x5(struct b53_device *dev)
 {
        return dev->chip_id == BCM53115_DEVICE_ID ||
                dev->chip_id == BCM53125_DEVICE_ID ||
+               dev->chip_id == BCM53101_DEVICE_ID ||
                dev->chip_id == BCM53128_DEVICE_ID ||
                dev->chip_id == BCM53134_DEVICE_ID;
 }