b53: Add BCM53128 switch support
authorJonas Gorski <jogo@openwrt.org>
Sat, 22 Feb 2014 11:16:56 +0000 (11:16 +0000)
committerJonas Gorski <jogo@openwrt.org>
Sat, 22 Feb 2014 11:16:56 +0000 (11:16 +0000)
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Patchwork: http://patchwork.openwrt.org/patch/4867/
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 39682

target/linux/generic/files/drivers/net/phy/b53/b53_common.c
target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
target/linux/generic/files/drivers/net/phy/b53/b53_priv.h

index f6a5418c3fe5345b2bf1988586b19949fcd57a4a..72b08e1ecffcdb48f8fbeae931dd2de5203d18ae 100644 (file)
@@ -1129,6 +1129,19 @@ static const struct b53_chip_data b53_switch_chips[] = {
                .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
                .sw_ops = &b53_switch_ops,
        },
+       {
+               .chip_id = BCM53128_DEVICE_ID,
+               .dev_name = "BCM53128",
+               .alias = "bcm53128",
+               .vlans = 4096,
+               .enabled_ports = 0x1ff,
+               .cpu_port = B53_CPU_PORT,
+               .vta_regs = B53_VTA_REGS,
+               .duplex_reg = B53_DUPLEX_STAT_GE,
+               .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
+               .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
+               .sw_ops = &b53_switch_ops,
+       },
        {
                .chip_id = BCM63XX_DEVICE_ID,
                .dev_name = "BCM63xx",
@@ -1363,6 +1376,7 @@ int b53_switch_detect(struct b53_device *dev)
                switch (id32) {
                case BCM53115_DEVICE_ID:
                case BCM53125_DEVICE_ID:
+               case BCM53128_DEVICE_ID:
                case BCM53010_DEVICE_ID:
                case BCM53011_DEVICE_ID:
                case BCM53012_DEVICE_ID:
index cacf32b613d67473620ae73f5b05890b47f304c9..3c25f0ea2b38c9c3e86fa9d4c855f350b53d1755 100644 (file)
@@ -357,7 +357,7 @@ static struct phy_driver b53_phy_driver_id1 = {
        },
 };
 
-/* BCM53125 */
+/* BCM53125, BCM53128 */
 static struct phy_driver b53_phy_driver_id2 = {
        .phy_id         = 0x03625c00,
        .name           = "Broadcom B53 (2)",
index d9881a1ff7c538299008b94244f24dc372f011bd..ce5b530e98ae042d622272ce0446c95c426d7924 100644 (file)
@@ -46,6 +46,7 @@ enum {
        BCM5398_DEVICE_ID = 0x98,
        BCM53115_DEVICE_ID = 0x53115,
        BCM53125_DEVICE_ID = 0x53125,
+       BCM53128_DEVICE_ID = 0x53128,
        BCM63XX_DEVICE_ID = 0x6300,
        BCM53010_DEVICE_ID = 0x53010,
        BCM53011_DEVICE_ID = 0x53011,
@@ -137,7 +138,8 @@ static inline int is539x(struct b53_device *dev)
 static inline int is531x5(struct b53_device *dev)
 {
        return dev->chip_id == BCM53115_DEVICE_ID ||
-               dev->chip_id == BCM53125_DEVICE_ID;
+               dev->chip_id == BCM53125_DEVICE_ID ||
+               dev->chip_id == BCM53128_DEVICE_ID;
 }
 
 static inline int is63xx(struct b53_device *dev)