[PATCH 0/2] net: dsa: b53: mdio: add support for BCM53134

Álvaro Fernández Rojas posted 2 patches 2 years, 10 months ago
There is a newer version of this series
.../devicetree/bindings/net/dsa/brcm,b53.yaml |  1 +
drivers/net/dsa/b53/b53_common.c              | 53 ++++++++++++++++++-
drivers/net/dsa/b53/b53_mdio.c                |  5 +-
drivers/net/dsa/b53/b53_priv.h                |  9 +++-
4 files changed, 65 insertions(+), 3 deletions(-)
[PATCH 0/2] net: dsa: b53: mdio: add support for BCM53134
Posted by Álvaro Fernández Rojas 2 years, 10 months ago
This is based on the initial work from Paul Geurts that was sent to the
incorrect linux development lists and recipients.
I've modified it by removing BCM53134_DEVICE_ID from is531x5() and therefore
adding is53134() where needed.
I also added a separate RGMII handling block for is53134() since according to
Paul, BCM53134 doesn't support RGMII_CTRL_TIMING_SEL as opposed to is531x5().

Paul Geurts (1):
  net: dsa: b53: mdio: add support for BCM53134

Álvaro Fernández Rojas (1):
  dt-bindings: net: dsa: b53: add BCM53134 support

 .../devicetree/bindings/net/dsa/brcm,b53.yaml |  1 +
 drivers/net/dsa/b53/b53_common.c              | 53 ++++++++++++++++++-
 drivers/net/dsa/b53/b53_mdio.c                |  5 +-
 drivers/net/dsa/b53/b53_priv.h                |  9 +++-
 4 files changed, 65 insertions(+), 3 deletions(-)

-- 
2.30.2

[PATCH v2 0/2] net: dsa: b53: mdio: add support for BCM53134
Posted by Álvaro Fernández Rojas 2 years, 10 months ago
This is based on the initial work from Paul Geurts that was sent to the
incorrect linux development lists and recipients.
I've simplified his patches by adding BCM53134 to the is531x5() block since it
seems that the switch doesn't need a special RGMII config.

Paul Geurts (1):
  net: dsa: b53: mdio: add support for BCM53134

Álvaro Fernández Rojas (1):
  dt-bindings: net: dsa: b53: add BCM53134 support

 .../devicetree/bindings/net/dsa/brcm,b53.yaml     |  1 +
 drivers/net/dsa/b53/b53_common.c                  | 15 +++++++++++++++
 drivers/net/dsa/b53/b53_mdio.c                    |  5 ++++-
 drivers/net/dsa/b53/b53_priv.h                    |  7 +++++--
 4 files changed, 25 insertions(+), 3 deletions(-)

-- 
2.30.2

Re: [PATCH v2 0/2] net: dsa: b53: mdio: add support for BCM53134
Posted by Jakub Kicinski 2 years, 10 months ago
On Fri, 24 Mar 2023 09:41:36 +0100 Álvaro Fernández Rojas wrote:
> This is based on the initial work from Paul Geurts that was sent to the
> incorrect linux development lists and recipients.
> I've simplified his patches by adding BCM53134 to the is531x5() block since it
> seems that the switch doesn't need a special RGMII config.

In the future please don't send the new version in-reply to.
Makes it harder to organize patches that need review for maintainers.
Or at least IDK how to maintain a queue ordered by submission date 
when people do this :\
[PATCH v2 1/2] dt-bindings: net: dsa: b53: add BCM53134 support
Posted by Álvaro Fernández Rojas 2 years, 10 months ago
BCM53134 are B53 switches connected by MDIO.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
---
 v2: no changes

 Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
index 57e0ef93b134..4c78c546343f 100644
--- a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
@@ -19,6 +19,7 @@ properties:
       - const: brcm,bcm53115
       - const: brcm,bcm53125
       - const: brcm,bcm53128
+      - const: brcm,bcm53134
       - const: brcm,bcm5365
       - const: brcm,bcm5395
       - const: brcm,bcm5389
-- 
2.30.2

Re: [PATCH v2 1/2] dt-bindings: net: dsa: b53: add BCM53134 support
Posted by Krzysztof Kozlowski 2 years, 10 months ago
On 24/03/2023 09:41, Álvaro Fernández Rojas wrote:
> BCM53134 are B53 switches connected by MDIO.

Do not attach (thread) your patchsets to some other threads (unrelated
or older versions). This buries them deep in the mailbox and might
interfere with applying entire sets.

> 
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>


Acked-by: Krzysztof Kozlowski <krzk@kernel.org>



Best regards,
Krzysztof

[PATCH v2 2/2] net: dsa: b53: mdio: add support for BCM53134
Posted by Álvaro Fernández Rojas 2 years, 10 months ago
From: Paul Geurts <paul.geurts@prodrive-technologies.com>

Add support for the BCM53134 Ethernet switch in the existing b53 dsa driver.
BCM53134 is very similar to the BCM58XX series.

Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
 v2: add BCM53134 to is531x5() and remove special RGMII config

 drivers/net/dsa/b53/b53_common.c | 15 +++++++++++++++
 drivers/net/dsa/b53/b53_mdio.c   |  5 ++++-
 drivers/net/dsa/b53/b53_priv.h   |  7 +++++--
 3 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
index 1f9b251a5452..3464ce5e7470 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -2613,6 +2613,20 @@ static const struct b53_chip_data b53_switch_chips[] = {
 		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
 		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
 	},
+	{
+		.chip_id = BCM53134_DEVICE_ID,
+		.dev_name = "BCM53134",
+		.vlans = 4096,
+		.enabled_ports = 0x12f,
+		.imp_port = 8,
+		.cpu_port = B53_CPU_PORT,
+		.vta_regs = B53_VTA_REGS,
+		.arl_bins = 4,
+		.arl_buckets = 1024,
+		.duplex_reg = B53_DUPLEX_STAT_GE,
+		.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
+		.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
+	},
 };
 
 static int b53_switch_init(struct b53_device *dev)
@@ -2790,6 +2804,7 @@ int b53_switch_detect(struct b53_device *dev)
 		case BCM53012_DEVICE_ID:
 		case BCM53018_DEVICE_ID:
 		case BCM53019_DEVICE_ID:
+		case BCM53134_DEVICE_ID:
 			dev->chip_id = id32;
 			break;
 		default:
diff --git a/drivers/net/dsa/b53/b53_mdio.c b/drivers/net/dsa/b53/b53_mdio.c
index 6ddc03b58b28..8b422b298cd5 100644
--- a/drivers/net/dsa/b53/b53_mdio.c
+++ b/drivers/net/dsa/b53/b53_mdio.c
@@ -286,6 +286,7 @@ static const struct b53_io_ops b53_mdio_ops = {
 #define B53_BRCM_OUI_2	0x03625c00
 #define B53_BRCM_OUI_3	0x00406000
 #define B53_BRCM_OUI_4	0x01410c00
+#define B53_BRCM_OUI_5	0xae025000
 
 static int b53_mdio_probe(struct mdio_device *mdiodev)
 {
@@ -313,7 +314,8 @@ static int b53_mdio_probe(struct mdio_device *mdiodev)
 	if ((phy_id & 0xfffffc00) != B53_BRCM_OUI_1 &&
 	    (phy_id & 0xfffffc00) != B53_BRCM_OUI_2 &&
 	    (phy_id & 0xfffffc00) != B53_BRCM_OUI_3 &&
-	    (phy_id & 0xfffffc00) != B53_BRCM_OUI_4) {
+	    (phy_id & 0xfffffc00) != B53_BRCM_OUI_4 &&
+	    (phy_id & 0xfffffc00) != B53_BRCM_OUI_5) {
 		dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
 		return -ENODEV;
 	}
@@ -375,6 +377,7 @@ static const struct of_device_id b53_of_match[] = {
 	{ .compatible = "brcm,bcm53115" },
 	{ .compatible = "brcm,bcm53125" },
 	{ .compatible = "brcm,bcm53128" },
+	{ .compatible = "brcm,bcm53134" },
 	{ .compatible = "brcm,bcm5365" },
 	{ .compatible = "brcm,bcm5389" },
 	{ .compatible = "brcm,bcm5395" },
diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h
index a689a6950189..fdcfd5081c28 100644
--- a/drivers/net/dsa/b53/b53_priv.h
+++ b/drivers/net/dsa/b53/b53_priv.h
@@ -80,6 +80,7 @@ enum {
 	BCM583XX_DEVICE_ID = 0x58300,
 	BCM7445_DEVICE_ID = 0x7445,
 	BCM7278_DEVICE_ID = 0x7278,
+	BCM53134_DEVICE_ID = 0x5075,
 };
 
 struct b53_pcs {
@@ -187,7 +188,8 @@ static inline int is531x5(struct b53_device *dev)
 {
 	return dev->chip_id == BCM53115_DEVICE_ID ||
 		dev->chip_id == BCM53125_DEVICE_ID ||
-		dev->chip_id == BCM53128_DEVICE_ID;
+		dev->chip_id == BCM53128_DEVICE_ID ||
+		dev->chip_id == BCM53134_DEVICE_ID;
 }
 
 static inline int is63xx(struct b53_device *dev)
@@ -215,7 +217,8 @@ static inline int is58xx(struct b53_device *dev)
 	return dev->chip_id == BCM58XX_DEVICE_ID ||
 		dev->chip_id == BCM583XX_DEVICE_ID ||
 		dev->chip_id == BCM7445_DEVICE_ID ||
-		dev->chip_id == BCM7278_DEVICE_ID;
+		dev->chip_id == BCM7278_DEVICE_ID ||
+		dev->chip_id == BCM53134_DEVICE_ID;
 }
 
 #define B53_63XX_RGMII0	4
-- 
2.30.2

Re: [PATCH v2 2/2] net: dsa: b53: mdio: add support for BCM53134
Posted by Florian Fainelli 2 years, 10 months ago
On 3/24/23 01:41, Álvaro Fernández Rojas wrote:
> From: Paul Geurts <paul.geurts@prodrive-technologies.com>
> 
> Add support for the BCM53134 Ethernet switch in the existing b53 dsa driver.
> BCM53134 is very similar to the BCM58XX series.
> 
> Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

RE: [PATCH 0/2] net: dsa: b53: mdio: add support for BCM53134
Posted by Paul Geurts 2 years, 10 months ago
> -----Original Message-----
> From: Álvaro Fernández Rojas <noltari@gmail.com>
> Sent: donderdag 23 maart 2023 13:18
> To: Paul Geurts <paul.geurts@prodrive-technologies.com>;
> f.fainelli@gmail.com; jonas.gorski@gmail.com; andrew@lunn.ch;
> olteanv@gmail.com; davem@davemloft.net; edumazet@google.com;
> kuba@kernel.org; pabeni@redhat.com; robh+dt@kernel.org;
> krzysztof.kozlowski+dt@linaro.org; netdev@vger.kernel.org;
> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org
> Cc: Álvaro Fernández Rojas <noltari@gmail.com>
> Subject: [PATCH 0/2] net: dsa: b53: mdio: add support for BCM53134
> 
> This is based on the initial work from Paul Geurts that was sent to the
> incorrect linux development lists and recipients.
> I've modified it by removing BCM53134_DEVICE_ID from is531x5() and
> therefore adding is53134() where needed.
> I also added a separate RGMII handling block for is53134() since according to
> Paul, BCM53134 doesn't support RGMII_CTRL_TIMING_SEL as opposed to
> is531x5().
> 
> Paul Geurts (1):
>   net: dsa: b53: mdio: add support for BCM53134
> 
> Álvaro Fernández Rojas (1):
>   dt-bindings: net: dsa: b53: add BCM53134 support
> 
>  .../devicetree/bindings/net/dsa/brcm,b53.yaml |  1 +
>  drivers/net/dsa/b53/b53_common.c              | 53 ++++++++++++++++++-
>  drivers/net/dsa/b53/b53_mdio.c                |  5 +-
>  drivers/net/dsa/b53/b53_priv.h                |  9 +++-
>  4 files changed, 65 insertions(+), 3 deletions(-)
> 
> --
> 2.30.2

Thank you for resending my patches! I didn't get to it yet. Any particular reason you didn't include the optional GPIO patch I had in my set?
---
Paul
Re: [PATCH 0/2] net: dsa: b53: mdio: add support for BCM53134
Posted by Álvaro Fernández Rojas 2 years, 10 months ago
El jue, 23 mar 2023 a las 20:58, Paul Geurts
(<paul.geurts@prodrive-technologies.com>) escribió:
>
> > -----Original Message-----
> > From: Álvaro Fernández Rojas <noltari@gmail.com>
> > Sent: donderdag 23 maart 2023 13:18
> > To: Paul Geurts <paul.geurts@prodrive-technologies.com>;
> > f.fainelli@gmail.com; jonas.gorski@gmail.com; andrew@lunn.ch;
> > olteanv@gmail.com; davem@davemloft.net; edumazet@google.com;
> > kuba@kernel.org; pabeni@redhat.com; robh+dt@kernel.org;
> > krzysztof.kozlowski+dt@linaro.org; netdev@vger.kernel.org;
> > devicetree@vger.kernel.org; linux-kernel@vger.kernel.org
> > Cc: Álvaro Fernández Rojas <noltari@gmail.com>
> > Subject: [PATCH 0/2] net: dsa: b53: mdio: add support for BCM53134
> >
> > This is based on the initial work from Paul Geurts that was sent to the
> > incorrect linux development lists and recipients.
> > I've modified it by removing BCM53134_DEVICE_ID from is531x5() and
> > therefore adding is53134() where needed.
> > I also added a separate RGMII handling block for is53134() since according to
> > Paul, BCM53134 doesn't support RGMII_CTRL_TIMING_SEL as opposed to
> > is531x5().
> >
> > Paul Geurts (1):
> >   net: dsa: b53: mdio: add support for BCM53134
> >
> > Álvaro Fernández Rojas (1):
> >   dt-bindings: net: dsa: b53: add BCM53134 support
> >
> >  .../devicetree/bindings/net/dsa/brcm,b53.yaml |  1 +
> >  drivers/net/dsa/b53/b53_common.c              | 53 ++++++++++++++++++-
> >  drivers/net/dsa/b53/b53_mdio.c                |  5 +-
> >  drivers/net/dsa/b53/b53_priv.h                |  9 +++-
> >  4 files changed, 65 insertions(+), 3 deletions(-)
> >
> > --
> > 2.30.2
>
> Thank you for resending my patches! I didn't get to it yet. Any particular reason you didn't include the optional GPIO patch I had in my set?

I'm using it for a Sercomm H500-s which doesn't seem to need it.
However, I've just realized that it's documented here as GPIO 18:
https://openwrt.org/toh/sercomm/h500-s#other
Anyway, I think that the GPIO patch can be added later...

> ---
> Paul

--
Álvaro