kernel: b53: add soft reset for BCM539x switches

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 37987
This commit is contained in:
Hauke Mehrtens 2013-09-14 16:14:02 +00:00
parent 3b3d4b6208
commit 2da56b4ebc
2 changed files with 12 additions and 0 deletions

View file

@ -477,6 +477,11 @@ static int b53_switch_reset(struct b53_device *dev)
b53_switch_reset_gpio(dev); b53_switch_reset_gpio(dev);
if (is539x(dev)) {
b53_write8(dev, B53_CTRL_PAGE, B53_SOFTRESET, 0x83);
b53_write8(dev, B53_CTRL_PAGE, B53_SOFTRESET, 0x00);
}
b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, &mgmt); b53_read8(dev, B53_CTRL_PAGE, B53_SWITCH_MODE, &mgmt);
if (!(mgmt & SM_SW_FWD_EN)) { if (!(mgmt & SM_SW_FWD_EN)) {

View file

@ -122,6 +122,13 @@ static inline int is5397_98(struct b53_device *dev)
dev->chip_id == BCM5398_DEVICE_ID; dev->chip_id == BCM5398_DEVICE_ID;
} }
static inline int is539x(struct b53_device *dev)
{
return dev->chip_id == BCM5395_DEVICE_ID ||
dev->chip_id == BCM5397_DEVICE_ID ||
dev->chip_id == BCM5398_DEVICE_ID;
}
static inline int is531x5(struct b53_device *dev) static inline int is531x5(struct b53_device *dev)
{ {
return dev->chip_id == BCM53115_DEVICE_ID || return dev->chip_id == BCM53115_DEVICE_ID ||