aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-09-15 13:30:49 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2013-09-15 13:30:49 +0000
commitf5989e7f599ae737e8a72742f880e72335422a13 (patch)
tree76f84787aefe19fd05f9244eb6bc5d6ad784d6c5
parent49d7c57fd131168517ac04cc6ed29f19e275f074 (diff)
downloadupstream-f5989e7f599ae737e8a72742f880e72335422a13.tar.gz
upstream-f5989e7f599ae737e8a72742f880e72335422a13.tar.bz2
upstream-f5989e7f599ae737e8a72742f880e72335422a13.zip
kernel: b53: detect revision of BCM5325
The revision is stored in a different register than it is in other Broadcom switches. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 37995
-rw-r--r--target/linux/generic/files/drivers/net/phy/b53/b53_common.c7
-rw-r--r--target/linux/generic/files/drivers/net/phy/b53/b53_regs.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
index 4d1e0ee4ba..d911ab7fb5 100644
--- a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
+++ b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
@@ -1305,7 +1305,12 @@ int b53_switch_detect(struct b53_device *dev)
}
}
- return b53_read8(dev, B53_MGMT_PAGE, B53_REV_ID, &dev->core_rev);
+ if (dev->chip_id == BCM5325_DEVICE_ID)
+ return b53_read8(dev, B53_STAT_PAGE, B53_REV_ID_25,
+ &dev->core_rev);
+ else
+ return b53_read8(dev, B53_MGMT_PAGE, B53_REV_ID,
+ &dev->core_rev);
}
EXPORT_SYMBOL(b53_switch_detect);
diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h b/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h
index 7b8f539be0..7018ff4ebb 100644
--- a/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h
+++ b/target/linux/generic/files/drivers/net/phy/b53/b53_regs.h
@@ -135,6 +135,9 @@
#define B53_DUPLEX_STAT_GE 0x08
#define B53_DUPLEX_STAT_63XX 0x0c
+/* Revision ID register for BCM5325 */
+#define B53_REV_ID_25 0x50
+
/* Strap Value (48 bit) */
#define B53_STRAP_VALUE 0x70
#define SV_GMII_CTRL_115 BIT(27)