Skip to content

Commit 010e798

Browse files
KanjiMonstersmb49
authored andcommitted
net: dsa: b53: do not touch DLL_IQQD on bcm53115
BugLink: https://bugs.launchpad.net/bugs/2119603 [ Upstream commit bc1a65eb81a21e2aa3c3dca058ee8adf687b6ef5 ] According to OpenMDK, bit 2 of the RGMII register has a different meaning for BCM53115 [1]: "DLL_IQQD 1: In the IDDQ mode, power is down0: Normal function mode" Configuring RGMII delay works without setting this bit, so let's keep it at the default. For other chips, we always set it, so not clearing it is not an issue. One would assume BCM53118 works the same, but OpenMDK is not quite sure what this bit actually means [2]: "BYPASS_IMP_2NS_DEL #1: In the IDDQ mode, power is down#0: Normal function mode1: Bypass dll65_2ns_del IP0: Use dll65_2ns_del IP" So lets keep setting it for now. [1] https://github.com/Broadcom-Network-Switching-Software/OpenMDK/blob/master/cdk/PKG/chip/bcm53115/bcm53115_a0_defs.h#L19871 [2] https://github.com/Broadcom-Network-Switching-Software/OpenMDK/blob/master/cdk/PKG/chip/bcm53118/bcm53118_a0_defs.h#L14392 Fixes: 967dd82 ("net: dsa: b53: Add support for Broadcom RoboSwitch") Signed-off-by: Jonas Gorski <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Paolo Abeni <[email protected]> Signed-off-by: Sasha Levin <[email protected]> Signed-off-by: Manuel Diewald <[email protected]> Signed-off-by: Mehmet Basaran <[email protected]>
1 parent 13598c4 commit 010e798

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

drivers/net/dsa/b53/b53_common.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1355,8 +1355,7 @@ static void b53_adjust_531x5_rgmii(struct dsa_switch *ds, int port,
13551355
* tx_clk aligned timing (restoring to reset defaults)
13561356
*/
13571357
b53_read8(dev, B53_CTRL_PAGE, off, &rgmii_ctrl);
1358-
rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC |
1359-
RGMII_CTRL_TIMING_SEL);
1358+
rgmii_ctrl &= ~(RGMII_CTRL_DLL_RXC | RGMII_CTRL_DLL_TXC);
13601359

13611360
/* PHY_INTERFACE_MODE_RGMII_TXID means TX internal delay, make
13621361
* sure that we enable the port TX clock internal delay to
@@ -1376,7 +1375,10 @@ static void b53_adjust_531x5_rgmii(struct dsa_switch *ds, int port,
13761375
rgmii_ctrl |= RGMII_CTRL_DLL_TXC;
13771376
if (interface == PHY_INTERFACE_MODE_RGMII)
13781377
rgmii_ctrl |= RGMII_CTRL_DLL_TXC | RGMII_CTRL_DLL_RXC;
1379-
rgmii_ctrl |= RGMII_CTRL_TIMING_SEL;
1378+
1379+
if (dev->chip_id != BCM53115_DEVICE_ID)
1380+
rgmii_ctrl |= RGMII_CTRL_TIMING_SEL;
1381+
13801382
b53_write8(dev, B53_CTRL_PAGE, off, rgmii_ctrl);
13811383

13821384
dev_info(ds->dev, "Configured port %d for %s\n", port,

0 commit comments

Comments
 (0)