-----Original Message-----
From: Florian Fainelli <f.fainelli@xxxxxxxxx>
Sent: donderdag 23 maart 2023 17:43
To: Álvaro Fernández Rojas <noltari@xxxxxxxxx>; Paul Geurts
<paul.geurts@xxxxxxxxxxxxxxxxxxxxxxxxx>; jonas.gorski@xxxxxxxxx;
andrew@xxxxxxx; olteanv@xxxxxxxxx; davem@xxxxxxxxxxxxx;
edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx; pabeni@xxxxxxxxxx;
robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx;
netdev@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH 2/2] net: dsa: b53: mdio: add support for BCM53134
On 3/23/23 05:18, Álvaro Fernández Rojas wrote:
From: Paul Geurts <paul.geurts@xxxxxxxxxxxxxxxxxxxxxxxxx>driver.
Add support for the BCM53134 Ethernet switch in the existing b53 dsa
BCM53134 is very similar to the BCM58XX series.+++++++++++++++++++++++++++++++-
Signed-off-by: Paul Geurts <paul.geurts@xxxxxxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Álvaro Fernández Rojas <noltari@xxxxxxxxx>
---
drivers/net/dsa/b53/b53_common.c | 53
drivers/net/dsa/b53/b53_mdio.c | 5 ++-*ds, int port,
drivers/net/dsa/b53/b53_priv.h | 9 +++++-
3 files changed, 64 insertions(+), 3 deletions(-)
diff --git a/drivers/net/dsa/b53/b53_common.c
b/drivers/net/dsa/b53/b53_common.c
index 1f9b251a5452..aaa0813e6f59 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -1282,6 +1282,42 @@ static void b53_adjust_link(struct dsa_switch
if (is63xx(dev) && port >= B53_63XX_RGMII0)
b53_adjust_63xx_rgmii(ds, port, phydev->interface);
+ if (is53134(dev) && phy_interface_is_rgmii(phydev)) {
Why is not this in the same code block as the one for the is531x5() device like
this:
diff --git a/drivers/net/dsa/b53/b53_common.c
b/drivers/net/dsa/b53/b53_common.c
index 59cdfc51ce06..1c64b6ce7e78 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -1235,7 +1235,7 @@ static void b53_adjust_link(struct dsa_switch *ds,
int port,
tx_pause, rx_pause);
b53_force_link(dev, port, phydev->link);
- if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
+ if ((is531x5(dev) || is53134(dev)) &&
phy_interface_is_rgmii(phydev)) {
if (port == dev->imp_port)
off = B53_RGMII_CTRL_IMP;
else
Other than that, LGTM!
--
Florian
I think the only reason is that the BCM53134 does not support the
RGMII_CTRL_TIMING_SEL bit, which is set in the original block. I agree
Putting a if statement around
rgmii_ctrl |= RGMII_CTRL_TIMING_SEL;
would prevent a lot of code duplication. _however_, after looking at it again,
I don’t think the device does not support the bit. When looking at the datasheet,
The same bit in the this register is called BYPASS_2NS_DEL. It's very uncommon
For Broadcom to make such a change in the register interface, so maybe they
Just renamed it. Do you think this could be the same bit?