mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-07 05:04:00 -05:00
These patches have been accepted for linux v6.18. e57723fe536f net: dsa: b53: properly bound ARL searches for < 4 ARL bin chips 674b34c4c770 net: dsa: b53: fix ageing time for BCM53101 89eb9a62aed7 net: dsa: b53: fix reserved register access in b53_fdb_dump() 61730ac10ba9 net: dsa: b53: mmap: Implement bcm63268 gphy power control 7f95f04fe190 net: dsa: b53: mmap: Add gphy port to phy info for bcm63268 5ac00023852d net: dsa: b53: mmap: Implement bcm63xx ephy power control e8e13073dff7 net: dsa: b53: mmap: Add register layout for bcm6368 c251304ab021 net: dsa: b53: mmap: Add register layout for bcm6318 aed2aaa3c963 net: dsa: b53: mmap: Add syscon reference and register layout for bcm63268 fcf02a462fab net: dsa: b53: Define chip IDs for more bcm63xx SoCs be7a79145d85 net: dsa: b53: Add phy_enable(), phy_disable() methods 762e7e174da9 net: dsa: tag_brcm: do not mark link local traffic as offloaded Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
125 lines
4.0 KiB
Diff
125 lines
4.0 KiB
Diff
From fcf02a462fab52fbfcb24e617dd940745afd0dff Mon Sep 17 00:00:00 2001
|
|
From: Kyle Hendry <kylehendrydev@gmail.com>
|
|
Date: Wed, 23 Jul 2025 20:52:42 -0700
|
|
Subject: [PATCH] net: dsa: b53: Define chip IDs for more bcm63xx SoCs
|
|
|
|
Add defines for bcm6318, bcm6328, bcm6362, bcm6368 chip IDs,
|
|
update tables and switch init.
|
|
|
|
Signed-off-by: Kyle Hendry <kylehendrydev@gmail.com>
|
|
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
|
|
Link: https://patch.msgid.link/20250724035300.20497-4-kylehendrydev@gmail.com
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/dsa/b53/b53_common.c | 21 ++++++---------------
|
|
drivers/net/dsa/b53/b53_mmap.c | 8 ++++----
|
|
drivers/net/dsa/b53/b53_priv.h | 13 +++++++++++--
|
|
3 files changed, 21 insertions(+), 21 deletions(-)
|
|
|
|
--- a/drivers/net/dsa/b53/b53_common.c
|
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
|
@@ -1419,7 +1419,7 @@ static void b53_adjust_63xx_rgmii(struct
|
|
b53_read8(dev, B53_CTRL_PAGE, B53_RGMII_CTRL_P(port), &rgmii_ctrl);
|
|
rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
|
|
|
|
- if (is63268(dev))
|
|
+ if (is6318_268(dev))
|
|
rgmii_ctrl |= RGMII_CTRL_MII_OVERRIDE;
|
|
|
|
rgmii_ctrl |= RGMII_CTRL_ENABLE_GMII;
|
|
@@ -2801,19 +2801,6 @@ static const struct b53_chip_data b53_sw
|
|
.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
|
|
},
|
|
{
|
|
- .chip_id = BCM63268_DEVICE_ID,
|
|
- .dev_name = "BCM63268",
|
|
- .vlans = 4096,
|
|
- .enabled_ports = 0, /* pdata must provide them */
|
|
- .arl_bins = 4,
|
|
- .arl_buckets = 1024,
|
|
- .imp_port = 8,
|
|
- .vta_regs = B53_VTA_REGS_63XX,
|
|
- .duplex_reg = B53_DUPLEX_STAT_63XX,
|
|
- .jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX,
|
|
- .jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
|
|
- },
|
|
- {
|
|
.chip_id = BCM53010_DEVICE_ID,
|
|
.dev_name = "BCM53010",
|
|
.vlans = 4096,
|
|
@@ -2962,13 +2949,17 @@ static const struct b53_chip_data b53_sw
|
|
|
|
static int b53_switch_init(struct b53_device *dev)
|
|
{
|
|
+ u32 chip_id = dev->chip_id;
|
|
unsigned int i;
|
|
int ret;
|
|
|
|
+ if (is63xx(dev))
|
|
+ chip_id = BCM63XX_DEVICE_ID;
|
|
+
|
|
for (i = 0; i < ARRAY_SIZE(b53_switch_chips); i++) {
|
|
const struct b53_chip_data *chip = &b53_switch_chips[i];
|
|
|
|
- if (chip->chip_id == dev->chip_id) {
|
|
+ if (chip->chip_id == chip_id) {
|
|
if (!dev->enabled_ports)
|
|
dev->enabled_ports = chip->enabled_ports;
|
|
dev->name = chip->dev_name;
|
|
--- a/drivers/net/dsa/b53/b53_mmap.c
|
|
+++ b/drivers/net/dsa/b53/b53_mmap.c
|
|
@@ -348,16 +348,16 @@ static const struct of_device_id b53_mma
|
|
.data = (void *)BCM63XX_DEVICE_ID,
|
|
}, {
|
|
.compatible = "brcm,bcm6318-switch",
|
|
- .data = (void *)BCM63268_DEVICE_ID,
|
|
+ .data = (void *)BCM6318_DEVICE_ID,
|
|
}, {
|
|
.compatible = "brcm,bcm6328-switch",
|
|
- .data = (void *)BCM63XX_DEVICE_ID,
|
|
+ .data = (void *)BCM6328_DEVICE_ID,
|
|
}, {
|
|
.compatible = "brcm,bcm6362-switch",
|
|
- .data = (void *)BCM63XX_DEVICE_ID,
|
|
+ .data = (void *)BCM6362_DEVICE_ID,
|
|
}, {
|
|
.compatible = "brcm,bcm6368-switch",
|
|
- .data = (void *)BCM63XX_DEVICE_ID,
|
|
+ .data = (void *)BCM6368_DEVICE_ID,
|
|
}, {
|
|
.compatible = "brcm,bcm63268-switch",
|
|
.data = (void *)BCM63268_DEVICE_ID,
|
|
--- a/drivers/net/dsa/b53/b53_priv.h
|
|
+++ b/drivers/net/dsa/b53/b53_priv.h
|
|
@@ -73,6 +73,10 @@ enum {
|
|
BCM53125_DEVICE_ID = 0x53125,
|
|
BCM53128_DEVICE_ID = 0x53128,
|
|
BCM63XX_DEVICE_ID = 0x6300,
|
|
+ BCM6318_DEVICE_ID = 0x6318,
|
|
+ BCM6328_DEVICE_ID = 0x6328,
|
|
+ BCM6362_DEVICE_ID = 0x6362,
|
|
+ BCM6368_DEVICE_ID = 0x6368,
|
|
BCM63268_DEVICE_ID = 0x63268,
|
|
BCM53010_DEVICE_ID = 0x53010,
|
|
BCM53011_DEVICE_ID = 0x53011,
|
|
@@ -220,12 +224,17 @@ static inline int is531x5(struct b53_dev
|
|
static inline int is63xx(struct b53_device *dev)
|
|
{
|
|
return dev->chip_id == BCM63XX_DEVICE_ID ||
|
|
+ dev->chip_id == BCM6318_DEVICE_ID ||
|
|
+ dev->chip_id == BCM6328_DEVICE_ID ||
|
|
+ dev->chip_id == BCM6362_DEVICE_ID ||
|
|
+ dev->chip_id == BCM6368_DEVICE_ID ||
|
|
dev->chip_id == BCM63268_DEVICE_ID;
|
|
}
|
|
|
|
-static inline int is63268(struct b53_device *dev)
|
|
+static inline int is6318_268(struct b53_device *dev)
|
|
{
|
|
- return dev->chip_id == BCM63268_DEVICE_ID;
|
|
+ return dev->chip_id == BCM6318_DEVICE_ID ||
|
|
+ dev->chip_id == BCM63268_DEVICE_ID;
|
|
}
|
|
|
|
static inline int is5301x(struct b53_device *dev)
|