* [PATCH 0/4] net: dsa: b53: configure BCM63268 RGMII ports @ 2023-03-20 15:50 Álvaro Fernández Rojas 2023-03-20 15:50 ` [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas ` (4 more replies) 0 siblings, 5 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-20 15:50 UTC (permalink / raw) To: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM63268 need special configuration for their RGMII ports, so we need to be able to identify them as a special BCM63xx switch. In the meantime, let's add some missing BCM63xx SoCs to B53 MMAP device table. This should be applied after "net: dsa: b53: add support for BCM63xx RGMIIs": https://patchwork.kernel.org/project/netdevbpf/patch/20230319220805.124024-1-noltari@gmail.com/ Álvaro Fernández Rojas (4): dt-bindings: net: dsa: b53: add more 63xx SoCs net: dsa: b53: mmap: add more BCM63xx SoCs net: dsa: b53: mmap: allow passing a chip ID net: dsa: b53: add BCM63268 RGMII configuration .../devicetree/bindings/net/dsa/brcm,b53.yaml | 3 ++ drivers/net/dsa/b53/b53_common.c | 6 +++- drivers/net/dsa/b53/b53_mmap.c | 29 +++++++++++++++---- drivers/net/dsa/b53/b53_priv.h | 9 +++++- drivers/net/dsa/b53/b53_regs.h | 1 + 5 files changed, 40 insertions(+), 8 deletions(-) -- 2.30.2 ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs 2023-03-20 15:50 [PATCH 0/4] net: dsa: b53: configure BCM63268 RGMII ports Álvaro Fernández Rojas @ 2023-03-20 15:50 ` Álvaro Fernández Rojas 2023-03-20 19:49 ` Simon Horman ` (2 more replies) 2023-03-20 15:50 ` [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs Álvaro Fernández Rojas ` (3 subsequent siblings) 4 siblings, 3 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-20 15:50 UTC (permalink / raw) To: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml index 5bef4128d175..57e0ef93b134 100644 --- a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml +++ b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml @@ -57,8 +57,11 @@ properties: - items: - enum: - brcm,bcm3384-switch + - brcm,bcm6318-switch - brcm,bcm6328-switch + - brcm,bcm6362-switch - brcm,bcm6368-switch + - brcm,bcm63268-switch - const: brcm,bcm63xx-switch required: -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs 2023-03-20 15:50 ` [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas @ 2023-03-20 19:49 ` Simon Horman 2023-03-20 19:51 ` Florian Fainelli 2023-03-21 7:14 ` Krzysztof Kozlowski 2 siblings, 0 replies; 26+ messages in thread From: Simon Horman @ 2023-03-20 19:49 UTC (permalink / raw) To: Álvaro Fernández Rojas Cc: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On Mon, Mar 20, 2023 at 04:50:21PM +0100, Álvaro Fernández Rojas wrote: > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs 2023-03-20 15:50 ` [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas 2023-03-20 19:49 ` Simon Horman @ 2023-03-20 19:51 ` Florian Fainelli 2023-03-21 7:14 ` Krzysztof Kozlowski 2 siblings, 0 replies; 26+ messages in thread From: Florian Fainelli @ 2023-03-20 19:51 UTC (permalink / raw) To: Álvaro Fernández Rojas, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On 3/20/23 08:50, Álvaro Fernández Rojas wrote: > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -- Florian ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs 2023-03-20 15:50 ` [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas 2023-03-20 19:49 ` Simon Horman 2023-03-20 19:51 ` Florian Fainelli @ 2023-03-21 7:14 ` Krzysztof Kozlowski 2 siblings, 0 replies; 26+ messages in thread From: Krzysztof Kozlowski @ 2023-03-21 7:14 UTC (permalink / raw) To: Álvaro Fernández Rojas, f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On 20/03/2023 16:50, Álvaro Fernández Rojas wrote: > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs 2023-03-20 15:50 [PATCH 0/4] net: dsa: b53: configure BCM63268 RGMII ports Álvaro Fernández Rojas 2023-03-20 15:50 ` [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas @ 2023-03-20 15:50 ` Álvaro Fernández Rojas 2023-03-20 19:52 ` Florian Fainelli 2023-03-20 19:54 ` Simon Horman 2023-03-20 15:50 ` [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas ` (2 subsequent siblings) 4 siblings, 2 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-20 15:50 UTC (permalink / raw) To: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- drivers/net/dsa/b53/b53_mmap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c index 70887e0aece3..464c77e10f60 100644 --- a/drivers/net/dsa/b53/b53_mmap.c +++ b/drivers/net/dsa/b53/b53_mmap.c @@ -331,8 +331,11 @@ static void b53_mmap_shutdown(struct platform_device *pdev) static const struct of_device_id b53_mmap_of_table[] = { { .compatible = "brcm,bcm3384-switch" }, + { .compatible = "brcm,bcm6318-switch" }, { .compatible = "brcm,bcm6328-switch" }, + { .compatible = "brcm,bcm6362-switch" }, { .compatible = "brcm,bcm6368-switch" }, + { .compatible = "brcm,bcm63268-switch" }, { .compatible = "brcm,bcm63xx-switch" }, { /* sentinel */ }, }; -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs 2023-03-20 15:50 ` [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs Álvaro Fernández Rojas @ 2023-03-20 19:52 ` Florian Fainelli 2023-03-20 19:54 ` Simon Horman 1 sibling, 0 replies; 26+ messages in thread From: Florian Fainelli @ 2023-03-20 19:52 UTC (permalink / raw) To: Álvaro Fernández Rojas, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On 3/20/23 08:50, Álvaro Fernández Rojas wrote: > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -- Florian ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs 2023-03-20 15:50 ` [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs Álvaro Fernández Rojas 2023-03-20 19:52 ` Florian Fainelli @ 2023-03-20 19:54 ` Simon Horman 2023-03-20 19:56 ` Álvaro Fernández Rojas 1 sibling, 1 reply; 26+ messages in thread From: Simon Horman @ 2023-03-20 19:54 UTC (permalink / raw) To: Álvaro Fernández Rojas Cc: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On Mon, Mar 20, 2023 at 04:50:22PM +0100, Álvaro Fernández Rojas wrote: > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > drivers/net/dsa/b53/b53_mmap.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c > index 70887e0aece3..464c77e10f60 100644 > --- a/drivers/net/dsa/b53/b53_mmap.c > +++ b/drivers/net/dsa/b53/b53_mmap.c > @@ -331,8 +331,11 @@ static void b53_mmap_shutdown(struct platform_device *pdev) > > static const struct of_device_id b53_mmap_of_table[] = { > { .compatible = "brcm,bcm3384-switch" }, > + { .compatible = "brcm,bcm6318-switch" }, > { .compatible = "brcm,bcm6328-switch" }, > + { .compatible = "brcm,bcm6362-switch" }, > { .compatible = "brcm,bcm6368-switch" }, > + { .compatible = "brcm,bcm63268-switch" }, This patch adds support to this driver for "brcm,bcm63268-switch". However, less I am mistaken, this support doesn't work without patches 3/4 and 4/4 of this series. I think it would be better to re-range this series so that support for "brcm,bcm63268-switch" works when it is added to/enabled in the driver. > { .compatible = "brcm,bcm63xx-switch" }, > { /* sentinel */ }, > }; > -- > 2.30.2 > ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs 2023-03-20 19:54 ` Simon Horman @ 2023-03-20 19:56 ` Álvaro Fernández Rojas 2023-03-20 20:11 ` Simon Horman 0 siblings, 1 reply; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-20 19:56 UTC (permalink / raw) To: Simon Horman Cc: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel El lun, 20 mar 2023 a las 20:54, Simon Horman (<simon.horman@corigine.com>) escribió: > > On Mon, Mar 20, 2023 at 04:50:22PM +0100, Álvaro Fernández Rojas wrote: > > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > > --- > > drivers/net/dsa/b53/b53_mmap.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c > > index 70887e0aece3..464c77e10f60 100644 > > --- a/drivers/net/dsa/b53/b53_mmap.c > > +++ b/drivers/net/dsa/b53/b53_mmap.c > > @@ -331,8 +331,11 @@ static void b53_mmap_shutdown(struct platform_device *pdev) > > > > static const struct of_device_id b53_mmap_of_table[] = { > > { .compatible = "brcm,bcm3384-switch" }, > > + { .compatible = "brcm,bcm6318-switch" }, > > { .compatible = "brcm,bcm6328-switch" }, > > + { .compatible = "brcm,bcm6362-switch" }, > > { .compatible = "brcm,bcm6368-switch" }, > > + { .compatible = "brcm,bcm63268-switch" }, > > This patch adds support to this driver for "brcm,bcm63268-switch". > However, less I am mistaken, this support doesn't work without > patches 3/4 and 4/4 of this series. It works for those devices which only use ports 0-3 (Comtrend VR-3032u for example). If the device has a external switch or uses any of the RGMIIs then it won't configure those ports properly. > > I think it would be better to re-range this series so > that support for "brcm,bcm63268-switch" works when it is > added to/enabled in the driver. > > > { .compatible = "brcm,bcm63xx-switch" }, > > { /* sentinel */ }, > > }; > > -- > > 2.30.2 > > ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs 2023-03-20 19:56 ` Álvaro Fernández Rojas @ 2023-03-20 20:11 ` Simon Horman 0 siblings, 0 replies; 26+ messages in thread From: Simon Horman @ 2023-03-20 20:11 UTC (permalink / raw) To: Álvaro Fernández Rojas Cc: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On Mon, Mar 20, 2023 at 08:56:58PM +0100, Álvaro Fernández Rojas wrote: > El lun, 20 mar 2023 a las 20:54, Simon Horman > (<simon.horman@corigine.com>) escribió: > > > > On Mon, Mar 20, 2023 at 04:50:22PM +0100, Álvaro Fernández Rojas wrote: > > > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > > > > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > > > --- > > > drivers/net/dsa/b53/b53_mmap.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c > > > index 70887e0aece3..464c77e10f60 100644 > > > --- a/drivers/net/dsa/b53/b53_mmap.c > > > +++ b/drivers/net/dsa/b53/b53_mmap.c > > > @@ -331,8 +331,11 @@ static void b53_mmap_shutdown(struct platform_device *pdev) > > > > > > static const struct of_device_id b53_mmap_of_table[] = { > > > { .compatible = "brcm,bcm3384-switch" }, > > > + { .compatible = "brcm,bcm6318-switch" }, > > > { .compatible = "brcm,bcm6328-switch" }, > > > + { .compatible = "brcm,bcm6362-switch" }, > > > { .compatible = "brcm,bcm6368-switch" }, > > > + { .compatible = "brcm,bcm63268-switch" }, > > > > This patch adds support to this driver for "brcm,bcm63268-switch". > > However, less I am mistaken, this support doesn't work without > > patches 3/4 and 4/4 of this series. > > It works for those devices which only use ports 0-3 (Comtrend VR-3032u > for example). > If the device has a external switch or uses any of the RGMIIs then it > won't configure those ports properly. Ok, I guess that all drivers have incomplete support, so from that point of view I guess this is fine. > > I think it would be better to re-range this series so > > that support for "brcm,bcm63268-switch" works when it is > > added to/enabled in the driver. > > > > > { .compatible = "brcm,bcm63xx-switch" }, > > > { /* sentinel */ }, > > > }; > > > -- > > > 2.30.2 > > > ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID 2023-03-20 15:50 [PATCH 0/4] net: dsa: b53: configure BCM63268 RGMII ports Álvaro Fernández Rojas 2023-03-20 15:50 ` [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas 2023-03-20 15:50 ` [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs Álvaro Fernández Rojas @ 2023-03-20 15:50 ` Álvaro Fernández Rojas 2023-03-20 19:57 ` Florian Fainelli 2023-03-20 20:01 ` Simon Horman 2023-03-20 15:50 ` [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas 4 siblings, 2 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-20 15:50 UTC (permalink / raw) To: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM63268 SoCs require a special handling for their RGMIIs, so we should be able to identify them as a special BCM63xx switch. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- drivers/net/dsa/b53/b53_mmap.c | 32 +++++++++++++++++++++++--------- drivers/net/dsa/b53/b53_priv.h | 9 ++++++++- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c index 464c77e10f60..706df04b6cee 100644 --- a/drivers/net/dsa/b53/b53_mmap.c +++ b/drivers/net/dsa/b53/b53_mmap.c @@ -248,7 +248,7 @@ static int b53_mmap_probe_of(struct platform_device *pdev, return -ENOMEM; pdata->regs = mem; - pdata->chip_id = BCM63XX_DEVICE_ID; + pdata->chip_id = (u32)device_get_match_data(dev); pdata->big_endian = of_property_read_bool(np, "big-endian"); of_ports = of_get_child_by_name(np, "ports"); @@ -330,14 +330,28 @@ static void b53_mmap_shutdown(struct platform_device *pdev) } static const struct of_device_id b53_mmap_of_table[] = { - { .compatible = "brcm,bcm3384-switch" }, - { .compatible = "brcm,bcm6318-switch" }, - { .compatible = "brcm,bcm6328-switch" }, - { .compatible = "brcm,bcm6362-switch" }, - { .compatible = "brcm,bcm6368-switch" }, - { .compatible = "brcm,bcm63268-switch" }, - { .compatible = "brcm,bcm63xx-switch" }, - { /* sentinel */ }, + { + .compatible = "brcm,bcm3384-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm6318-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm6328-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm6362-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm6368-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm63268-switch", + .data = (void *)BCM63268_DEVICE_ID, + }, { + .compatible = "brcm,bcm63xx-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, b53_mmap_of_table); diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index 4cf9f540696e..a689a6950189 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -70,6 +70,7 @@ enum { BCM53125_DEVICE_ID = 0x53125, BCM53128_DEVICE_ID = 0x53128, BCM63XX_DEVICE_ID = 0x6300, + BCM63268_DEVICE_ID = 0x63268, BCM53010_DEVICE_ID = 0x53010, BCM53011_DEVICE_ID = 0x53011, BCM53012_DEVICE_ID = 0x53012, @@ -191,7 +192,13 @@ static inline int is531x5(struct b53_device *dev) static inline int is63xx(struct b53_device *dev) { - return dev->chip_id == BCM63XX_DEVICE_ID; + return dev->chip_id == BCM63XX_DEVICE_ID || + dev->chip_id == BCM63268_DEVICE_ID; +} + +static inline int is63268(struct b53_device *dev) +{ + return dev->chip_id == BCM63268_DEVICE_ID; } static inline int is5301x(struct b53_device *dev) -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID 2023-03-20 15:50 ` [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas @ 2023-03-20 19:57 ` Florian Fainelli 2023-03-20 20:01 ` Simon Horman 1 sibling, 0 replies; 26+ messages in thread From: Florian Fainelli @ 2023-03-20 19:57 UTC (permalink / raw) To: Álvaro Fernández Rojas, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On 3/20/23 08:50, Álvaro Fernández Rojas wrote: > BCM63268 SoCs require a special handling for their RGMIIs, so we should be > able to identify them as a special BCM63xx switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > drivers/net/dsa/b53/b53_mmap.c | 32 +++++++++++++++++++++++--------- > drivers/net/dsa/b53/b53_priv.h | 9 ++++++++- > 2 files changed, 31 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c > index 464c77e10f60..706df04b6cee 100644 > --- a/drivers/net/dsa/b53/b53_mmap.c > +++ b/drivers/net/dsa/b53/b53_mmap.c > @@ -248,7 +248,7 @@ static int b53_mmap_probe_of(struct platform_device *pdev, > return -ENOMEM; > > pdata->regs = mem; > - pdata->chip_id = BCM63XX_DEVICE_ID; > + pdata->chip_id = (u32)device_get_match_data(dev); > pdata->big_endian = of_property_read_bool(np, "big-endian"); > > of_ports = of_get_child_by_name(np, "ports"); > @@ -330,14 +330,28 @@ static void b53_mmap_shutdown(struct platform_device *pdev) > } > > static const struct of_device_id b53_mmap_of_table[] = { > - { .compatible = "brcm,bcm3384-switch" }, > - { .compatible = "brcm,bcm6318-switch" }, > - { .compatible = "brcm,bcm6328-switch" }, > - { .compatible = "brcm,bcm6362-switch" }, > - { .compatible = "brcm,bcm6368-switch" }, > - { .compatible = "brcm,bcm63268-switch" }, > - { .compatible = "brcm,bcm63xx-switch" }, > - { /* sentinel */ }, > + { > + .compatible = "brcm,bcm3384-switch", > + .data = (void *)BCM63XX_DEVICE_ID, > + }, { > + .compatible = "brcm,bcm6318-switch", > + .data = (void *)BCM63XX_DEVICE_ID, You will want to also pass BCM63268_DEVICE_ID here, see my comment in patch 4. -- Florian ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID 2023-03-20 15:50 ` [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas 2023-03-20 19:57 ` Florian Fainelli @ 2023-03-20 20:01 ` Simon Horman 1 sibling, 0 replies; 26+ messages in thread From: Simon Horman @ 2023-03-20 20:01 UTC (permalink / raw) To: Álvaro Fernández Rojas Cc: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On Mon, Mar 20, 2023 at 04:50:23PM +0100, Álvaro Fernández Rojas wrote: > BCM63268 SoCs require a special handling for their RGMIIs, so we should be > able to identify them as a special BCM63xx switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > drivers/net/dsa/b53/b53_mmap.c | 32 +++++++++++++++++++++++--------- > drivers/net/dsa/b53/b53_priv.h | 9 ++++++++- > 2 files changed, 31 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c > index 464c77e10f60..706df04b6cee 100644 > --- a/drivers/net/dsa/b53/b53_mmap.c > +++ b/drivers/net/dsa/b53/b53_mmap.c > @@ -248,7 +248,7 @@ static int b53_mmap_probe_of(struct platform_device *pdev, > return -ENOMEM; > > pdata->regs = mem; > - pdata->chip_id = BCM63XX_DEVICE_ID; > + pdata->chip_id = (u32)device_get_match_data(dev); make W=1 with gcc-12 tells me: drivers/net/dsa/b53/b53_mmap.c: In function 'b53_mmap_probe_of': drivers/net/dsa/b53/b53_mmap.c:251:26: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 251 | pdata->chip_id = (u32)device_get_match_data(dev); I don't like casts much, but looking in b53_srab.c I see what appears to be a solution to this problem: pdata->chip_id = (u32)(unsigned long)of_id->data; > pdata->big_endian = of_property_read_bool(np, "big-endian"); > > of_ports = of_get_child_by_name(np, "ports"); > @@ -330,14 +330,28 @@ static void b53_mmap_shutdown(struct platform_device *pdev) > } > > static const struct of_device_id b53_mmap_of_table[] = { > - { .compatible = "brcm,bcm3384-switch" }, > - { .compatible = "brcm,bcm6318-switch" }, > - { .compatible = "brcm,bcm6328-switch" }, > - { .compatible = "brcm,bcm6362-switch" }, > - { .compatible = "brcm,bcm6368-switch" }, > - { .compatible = "brcm,bcm63268-switch" }, > - { .compatible = "brcm,bcm63xx-switch" }, > - { /* sentinel */ }, > + { > + .compatible = "brcm,bcm3384-switch", > + .data = (void *)BCM63XX_DEVICE_ID, > + }, { > + .compatible = "brcm,bcm6318-switch", > + .data = (void *)BCM63XX_DEVICE_ID, > + }, { > + .compatible = "brcm,bcm6328-switch", > + .data = (void *)BCM63XX_DEVICE_ID, > + }, { > + .compatible = "brcm,bcm6362-switch", > + .data = (void *)BCM63XX_DEVICE_ID, > + }, { > + .compatible = "brcm,bcm6368-switch", > + .data = (void *)BCM63XX_DEVICE_ID, > + }, { > + .compatible = "brcm,bcm63268-switch", > + .data = (void *)BCM63268_DEVICE_ID, > + }, { > + .compatible = "brcm,bcm63xx-switch", > + .data = (void *)BCM63XX_DEVICE_ID, > + }, { /* sentinel */ } This boilerplate doesn't seem ideal. But it does seem to follow other examples in drivers/net/dsa/ FWIIW, I might have used of_device_is_compatible() without .data. Or only provided data for the exception case(s) and used something like this. (*completely untested*!) pdata->chip_id = (u32)(unsigned long)of_id->data ? : BCM63XX_DEVICE_ID; > }; > MODULE_DEVICE_TABLE(of, b53_mmap_of_table); > > diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h > index 4cf9f540696e..a689a6950189 100644 > --- a/drivers/net/dsa/b53/b53_priv.h > +++ b/drivers/net/dsa/b53/b53_priv.h > @@ -70,6 +70,7 @@ enum { > BCM53125_DEVICE_ID = 0x53125, > BCM53128_DEVICE_ID = 0x53128, > BCM63XX_DEVICE_ID = 0x6300, > + BCM63268_DEVICE_ID = 0x63268, > BCM53010_DEVICE_ID = 0x53010, > BCM53011_DEVICE_ID = 0x53011, > BCM53012_DEVICE_ID = 0x53012, > @@ -191,7 +192,13 @@ static inline int is531x5(struct b53_device *dev) > > static inline int is63xx(struct b53_device *dev) > { > - return dev->chip_id == BCM63XX_DEVICE_ID; > + return dev->chip_id == BCM63XX_DEVICE_ID || > + dev->chip_id == BCM63268_DEVICE_ID; > +} > + > +static inline int is63268(struct b53_device *dev) > +{ > + return dev->chip_id == BCM63268_DEVICE_ID; > } > > static inline int is5301x(struct b53_device *dev) > -- > 2.30.2 > ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration 2023-03-20 15:50 [PATCH 0/4] net: dsa: b53: configure BCM63268 RGMII ports Álvaro Fernández Rojas ` (2 preceding siblings ...) 2023-03-20 15:50 ` [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas @ 2023-03-20 15:50 ` Álvaro Fernández Rojas 2023-03-20 20:00 ` Florian Fainelli 2023-03-20 20:07 ` Simon Horman 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas 4 siblings, 2 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-20 15:50 UTC (permalink / raw) To: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM63268 requires special RGMII configuration to work. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- drivers/net/dsa/b53/b53_common.c | 6 +++++- drivers/net/dsa/b53/b53_regs.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 6e212f6f1cb9..d0a22c8a55c9 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1240,8 +1240,12 @@ static void b53_adjust_63xx_rgmii(struct dsa_switch *ds, int port, break; } - if (port != dev->imp_port) + if (port != dev->imp_port) { + if (is63268(dev)) + rgmii_ctrl |= RGMII_CTRL_MII_OVERRIDE; + rgmii_ctrl |= RGMII_CTRL_ENABLE_GMII; + } b53_write8(dev, B53_CTRL_PAGE, off, rgmii_ctrl); diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index b2c539a42154..bfbcb66bef66 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -138,6 +138,7 @@ #define B53_RGMII_CTRL_IMP 0x60 #define RGMII_CTRL_ENABLE_GMII BIT(7) +#define RGMII_CTRL_MII_OVERRIDE BIT(6) #define RGMII_CTRL_TIMING_SEL BIT(2) #define RGMII_CTRL_DLL_RXC BIT(1) #define RGMII_CTRL_DLL_TXC BIT(0) -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration 2023-03-20 15:50 ` [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas @ 2023-03-20 20:00 ` Florian Fainelli 2023-03-21 9:10 ` Álvaro Fernández Rojas 2023-03-20 20:07 ` Simon Horman 1 sibling, 1 reply; 26+ messages in thread From: Florian Fainelli @ 2023-03-20 20:00 UTC (permalink / raw) To: Álvaro Fernández Rojas, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On 3/20/23 08:50, Álvaro Fernández Rojas wrote: > BCM63268 requires special RGMII configuration to work. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > drivers/net/dsa/b53/b53_common.c | 6 +++++- > drivers/net/dsa/b53/b53_regs.h | 1 + > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c > index 6e212f6f1cb9..d0a22c8a55c9 100644 > --- a/drivers/net/dsa/b53/b53_common.c > +++ b/drivers/net/dsa/b53/b53_common.c > @@ -1240,8 +1240,12 @@ static void b53_adjust_63xx_rgmii(struct dsa_switch *ds, int port, > break; > } > > - if (port != dev->imp_port) > + if (port != dev->imp_port) { > + if (is63268(dev)) > + rgmii_ctrl |= RGMII_CTRL_MII_OVERRIDE; AFAICT the override bit is defined and valid for both 63268 and 6318, essentially whenever more than one RGMII control register for port 4, but also for other ports, it seems like the bit becomes valid. The comment I have says that the override bit ensures that what is populated in bits 5:4 which is the actual RGMII interface mode is applied. That mode can be one of: 0b00: RGMII mode 0b01: MII mode 0b10: RVMII mode 0b11: GMII mode even though this is not documented as such, I suspect that the override bit does not only set the mode, but also ensures that the delays are also applied. Once you update patch 3, this LGTM and you may add: Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> For your v2. Thanks! -- Florian ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration 2023-03-20 20:00 ` Florian Fainelli @ 2023-03-21 9:10 ` Álvaro Fernández Rojas 0 siblings, 0 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-21 9:10 UTC (permalink / raw) To: Florian Fainelli Cc: andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel (Excuse me for my previous email in HTML, but I forgot Android Gmail app uses HTML) 2023-03-20 21:00 GMT+01:00, Florian Fainelli <f.fainelli@gmail.com>: > On 3/20/23 08:50, Álvaro Fernández Rojas wrote: >> BCM63268 requires special RGMII configuration to work. >> >> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> >> --- >> drivers/net/dsa/b53/b53_common.c | 6 +++++- >> drivers/net/dsa/b53/b53_regs.h | 1 + >> 2 files changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/dsa/b53/b53_common.c >> b/drivers/net/dsa/b53/b53_common.c >> index 6e212f6f1cb9..d0a22c8a55c9 100644 >> --- a/drivers/net/dsa/b53/b53_common.c >> +++ b/drivers/net/dsa/b53/b53_common.c >> @@ -1240,8 +1240,12 @@ static void b53_adjust_63xx_rgmii(struct dsa_switch >> *ds, int port, >> break; >> } >> >> - if (port != dev->imp_port) >> + if (port != dev->imp_port) { >> + if (is63268(dev)) >> + rgmii_ctrl |= RGMII_CTRL_MII_OVERRIDE; > > AFAICT the override bit is defined and valid for both 63268 and 6318, Should we add a specific ID for the 6318? I don't know if it's different enough from the 63268 to need a special treatment such as is6318()... > essentially whenever more than one RGMII control register for port 4, > but also for other ports, it seems like the bit becomes valid. The > comment I have says that the override bit ensures that what is populated > in bits 5:4 which is the actual RGMII interface mode is applied. That > mode can be one of: > > 0b00: RGMII mode > 0b01: MII mode > 0b10: RVMII mode > 0b11: GMII mode This is interesting since we never set those bits in the bcm63xx enetsw controller... Should we add configuration for those bits in future patches? Which SoCs hace those bits? Only 6318 and 63268 or every 63xx has them? > > even though this is not documented as such, I suspect that the override > bit does not only set the mode, but also ensures that the delays are > also applied. > > Once you update patch 3, this LGTM and you may add: > > Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> > > For your v2. Thanks! > -- > Florian > > -- Álvaro ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration 2023-03-20 15:50 ` [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas 2023-03-20 20:00 ` Florian Fainelli @ 2023-03-20 20:07 ` Simon Horman 1 sibling, 0 replies; 26+ messages in thread From: Simon Horman @ 2023-03-20 20:07 UTC (permalink / raw) To: Álvaro Fernández Rojas Cc: f.fainelli, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On Mon, Mar 20, 2023 at 04:50:24PM +0100, Álvaro Fernández Rojas wrote: > BCM63268 requires special RGMII configuration to work. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports 2023-03-20 15:50 [PATCH 0/4] net: dsa: b53: configure BCM63268 RGMII ports Álvaro Fernández Rojas ` (3 preceding siblings ...) 2023-03-20 15:50 ` [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas @ 2023-03-21 17:33 ` Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas ` (4 more replies) 4 siblings, 5 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-21 17:33 UTC (permalink / raw) To: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM6318 and BCM63268 need special configuration for their RGMII ports, so we need to be able to identify them as a special BCM63xx switch. In the meantime, let's add some missing BCM63xx SoCs to B53 MMAP device table. This should be applied after "net: dsa: b53: add support for BCM63xx RGMIIs": https://patchwork.kernel.org/project/netdevbpf/patch/20230319220805.124024-1-noltari@gmail.com/ Álvaro Fernández Rojas (4): dt-bindings: net: dsa: b53: add more 63xx SoCs net: dsa: b53: mmap: add more 63xx SoCs net: dsa: b53: mmap: allow passing a chip ID net: dsa: b53: add BCM63268 RGMII configuration .../devicetree/bindings/net/dsa/brcm,b53.yaml | 3 ++ drivers/net/dsa/b53/b53_common.c | 19 +++++++++++- drivers/net/dsa/b53/b53_mmap.c | 29 +++++++++++++++---- drivers/net/dsa/b53/b53_priv.h | 9 +++++- drivers/net/dsa/b53/b53_regs.h | 1 + 5 files changed, 53 insertions(+), 8 deletions(-) -- 2.30.2 ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas @ 2023-03-21 17:33 ` Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 2/4] net: dsa: b53: mmap: " Álvaro Fernández Rojas ` (3 subsequent siblings) 4 siblings, 0 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-21 17:33 UTC (permalink / raw) To: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas, Simon Horman, Krzysztof Kozlowski BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- v2: no changes. Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml index 5bef4128d175..57e0ef93b134 100644 --- a/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml +++ b/Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml @@ -57,8 +57,11 @@ properties: - items: - enum: - brcm,bcm3384-switch + - brcm,bcm6318-switch - brcm,bcm6328-switch + - brcm,bcm6362-switch - brcm,bcm6368-switch + - brcm,bcm63268-switch - const: brcm,bcm63xx-switch required: -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 2/4] net: dsa: b53: mmap: add more 63xx SoCs 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas @ 2023-03-21 17:33 ` Álvaro Fernández Rojas 2023-03-22 11:11 ` Simon Horman 2023-03-21 17:33 ` [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas ` (2 subsequent siblings) 4 siblings, 1 reply; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-21 17:33 UTC (permalink / raw) To: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> --- v2: no changes. drivers/net/dsa/b53/b53_mmap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c index e968322dfbf0..f63aebd445e8 100644 --- a/drivers/net/dsa/b53/b53_mmap.c +++ b/drivers/net/dsa/b53/b53_mmap.c @@ -331,8 +331,11 @@ static void b53_mmap_shutdown(struct platform_device *pdev) static const struct of_device_id b53_mmap_of_table[] = { { .compatible = "brcm,bcm3384-switch" }, + { .compatible = "brcm,bcm6318-switch" }, { .compatible = "brcm,bcm6328-switch" }, + { .compatible = "brcm,bcm6362-switch" }, { .compatible = "brcm,bcm6368-switch" }, + { .compatible = "brcm,bcm63268-switch" }, { .compatible = "brcm,bcm63xx-switch" }, { /* sentinel */ }, }; -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v2 2/4] net: dsa: b53: mmap: add more 63xx SoCs 2023-03-21 17:33 ` [PATCH v2 2/4] net: dsa: b53: mmap: " Álvaro Fernández Rojas @ 2023-03-22 11:11 ` Simon Horman 0 siblings, 0 replies; 26+ messages in thread From: Simon Horman @ 2023-03-22 11:11 UTC (permalink / raw) To: Álvaro Fernández Rojas Cc: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On Tue, Mar 21, 2023 at 06:33:57PM +0100, Álvaro Fernández Rojas wrote: > BCM6318, BCM6362 and BCM63268 are SoCs with a B53 MMAP switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 2/4] net: dsa: b53: mmap: " Álvaro Fernández Rojas @ 2023-03-21 17:33 ` Álvaro Fernández Rojas 2023-03-21 18:19 ` Florian Fainelli 2023-03-22 11:12 ` Simon Horman 2023-03-21 17:33 ` [PATCH v2 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas 2023-03-23 4:50 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports patchwork-bot+netdevbpf 4 siblings, 2 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-21 17:33 UTC (permalink / raw) To: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas BCM6318 and BCM63268 SoCs require a special handling for their RGMIIs, so we should be able to identify them as a special BCM63xx switch. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- v2: - Add missing chip to b53_switch_chips[]. - Fix device_get_match_data() casting warning. - Add BCM63268_DEVICE_ID to BCM6318 too. - Add BCM6318 in commit description. drivers/net/dsa/b53/b53_common.c | 13 +++++++++++++ drivers/net/dsa/b53/b53_mmap.c | 32 +++++++++++++++++++++++--------- drivers/net/dsa/b53/b53_priv.h | 9 ++++++++- 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 6e212f6f1cb9..97327d7a6760 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2465,6 +2465,19 @@ static const struct b53_chip_data b53_switch_chips[] = { .jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX, .jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX, }, + { + .chip_id = BCM63268_DEVICE_ID, + .dev_name = "BCM63268", + .vlans = 4096, + .enabled_ports = 0, /* pdata must provide them */ + .arl_bins = 4, + .arl_buckets = 1024, + .imp_port = 8, + .vta_regs = B53_VTA_REGS_63XX, + .duplex_reg = B53_DUPLEX_STAT_63XX, + .jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX, + .jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX, + }, { .chip_id = BCM53010_DEVICE_ID, .dev_name = "BCM53010", diff --git a/drivers/net/dsa/b53/b53_mmap.c b/drivers/net/dsa/b53/b53_mmap.c index f63aebd445e8..a83a0c9d6939 100644 --- a/drivers/net/dsa/b53/b53_mmap.c +++ b/drivers/net/dsa/b53/b53_mmap.c @@ -248,7 +248,7 @@ static int b53_mmap_probe_of(struct platform_device *pdev, return -ENOMEM; pdata->regs = mem; - pdata->chip_id = BCM63XX_DEVICE_ID; + pdata->chip_id = (u32)(unsigned long)device_get_match_data(dev); pdata->big_endian = of_property_read_bool(np, "big-endian"); of_ports = of_get_child_by_name(np, "ports"); @@ -330,14 +330,28 @@ static void b53_mmap_shutdown(struct platform_device *pdev) } static const struct of_device_id b53_mmap_of_table[] = { - { .compatible = "brcm,bcm3384-switch" }, - { .compatible = "brcm,bcm6318-switch" }, - { .compatible = "brcm,bcm6328-switch" }, - { .compatible = "brcm,bcm6362-switch" }, - { .compatible = "brcm,bcm6368-switch" }, - { .compatible = "brcm,bcm63268-switch" }, - { .compatible = "brcm,bcm63xx-switch" }, - { /* sentinel */ }, + { + .compatible = "brcm,bcm3384-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm6318-switch", + .data = (void *)BCM63268_DEVICE_ID, + }, { + .compatible = "brcm,bcm6328-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm6362-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm6368-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { + .compatible = "brcm,bcm63268-switch", + .data = (void *)BCM63268_DEVICE_ID, + }, { + .compatible = "brcm,bcm63xx-switch", + .data = (void *)BCM63XX_DEVICE_ID, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, b53_mmap_of_table); diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index 4cf9f540696e..a689a6950189 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -70,6 +70,7 @@ enum { BCM53125_DEVICE_ID = 0x53125, BCM53128_DEVICE_ID = 0x53128, BCM63XX_DEVICE_ID = 0x6300, + BCM63268_DEVICE_ID = 0x63268, BCM53010_DEVICE_ID = 0x53010, BCM53011_DEVICE_ID = 0x53011, BCM53012_DEVICE_ID = 0x53012, @@ -191,7 +192,13 @@ static inline int is531x5(struct b53_device *dev) static inline int is63xx(struct b53_device *dev) { - return dev->chip_id == BCM63XX_DEVICE_ID; + return dev->chip_id == BCM63XX_DEVICE_ID || + dev->chip_id == BCM63268_DEVICE_ID; +} + +static inline int is63268(struct b53_device *dev) +{ + return dev->chip_id == BCM63268_DEVICE_ID; } static inline int is5301x(struct b53_device *dev) -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID 2023-03-21 17:33 ` [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas @ 2023-03-21 18:19 ` Florian Fainelli 2023-03-22 11:12 ` Simon Horman 1 sibling, 0 replies; 26+ messages in thread From: Florian Fainelli @ 2023-03-21 18:19 UTC (permalink / raw) To: Álvaro Fernández Rojas, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On 3/21/23 10:33, Álvaro Fernández Rojas wrote: > BCM6318 and BCM63268 SoCs require a special handling for their RGMIIs, so we > should be able to identify them as a special BCM63xx switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> -- Florian ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID 2023-03-21 17:33 ` [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas 2023-03-21 18:19 ` Florian Fainelli @ 2023-03-22 11:12 ` Simon Horman 1 sibling, 0 replies; 26+ messages in thread From: Simon Horman @ 2023-03-22 11:12 UTC (permalink / raw) To: Álvaro Fernández Rojas Cc: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel On Tue, Mar 21, 2023 at 06:33:58PM +0100, Álvaro Fernández Rojas wrote: > BCM6318 and BCM63268 SoCs require a special handling for their RGMIIs, so we > should be able to identify them as a special BCM63xx switch. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> ^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 4/4] net: dsa: b53: add BCM63268 RGMII configuration 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas ` (2 preceding siblings ...) 2023-03-21 17:33 ` [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas @ 2023-03-21 17:33 ` Álvaro Fernández Rojas 2023-03-23 4:50 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports patchwork-bot+netdevbpf 4 siblings, 0 replies; 26+ messages in thread From: Álvaro Fernández Rojas @ 2023-03-21 17:33 UTC (permalink / raw) To: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Cc: Álvaro Fernández Rojas, Simon Horman BCM63268 requires special RGMII configuration to work. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Simon Horman <simon.horman@corigine.com> --- v2: no changes. drivers/net/dsa/b53/b53_common.c | 6 +++++- drivers/net/dsa/b53/b53_regs.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 97327d7a6760..1f9b251a5452 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1240,8 +1240,12 @@ static void b53_adjust_63xx_rgmii(struct dsa_switch *ds, int port, break; } - if (port != dev->imp_port) + if (port != dev->imp_port) { + if (is63268(dev)) + rgmii_ctrl |= RGMII_CTRL_MII_OVERRIDE; + rgmii_ctrl |= RGMII_CTRL_ENABLE_GMII; + } b53_write8(dev, B53_CTRL_PAGE, off, rgmii_ctrl); diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index b2c539a42154..bfbcb66bef66 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -138,6 +138,7 @@ #define B53_RGMII_CTRL_IMP 0x60 #define RGMII_CTRL_ENABLE_GMII BIT(7) +#define RGMII_CTRL_MII_OVERRIDE BIT(6) #define RGMII_CTRL_TIMING_SEL BIT(2) #define RGMII_CTRL_DLL_RXC BIT(1) #define RGMII_CTRL_DLL_TXC BIT(0) -- 2.30.2 ^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas ` (3 preceding siblings ...) 2023-03-21 17:33 ` [PATCH v2 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas @ 2023-03-23 4:50 ` patchwork-bot+netdevbpf 4 siblings, 0 replies; 26+ messages in thread From: patchwork-bot+netdevbpf @ 2023-03-23 4:50 UTC (permalink / raw) To: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas_=3Cnoltari=40gmail=2Ecom=3E?= Cc: f.fainelli, jonas.gorski, andrew, olteanv, davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt, netdev, devicetree, linux-kernel Hello: This series was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Tue, 21 Mar 2023 18:33:55 +0100 you wrote: > BCM6318 and BCM63268 need special configuration for their RGMII ports, so we > need to be able to identify them as a special BCM63xx switch. > In the meantime, let's add some missing BCM63xx SoCs to B53 MMAP device table. > > This should be applied after "net: dsa: b53: add support for BCM63xx RGMIIs": > https://patchwork.kernel.org/project/netdevbpf/patch/20230319220805.124024-1-noltari@gmail.com/ > > [...] Here is the summary with links: - [v2,1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs https://git.kernel.org/netdev/net-next/c/3ec5ac3133b5 - [v2,2/4] net: dsa: b53: mmap: add more 63xx SoCs https://git.kernel.org/netdev/net-next/c/a2b212fe5c32 - [v2,3/4] net: dsa: b53: mmap: allow passing a chip ID https://git.kernel.org/netdev/net-next/c/260887c770eb - [v2,4/4] net: dsa: b53: add BCM63268 RGMII configuration https://git.kernel.org/netdev/net-next/c/594c6c2e3ea2 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html ^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2023-03-23 4:51 UTC | newest] Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-03-20 15:50 [PATCH 0/4] net: dsa: b53: configure BCM63268 RGMII ports Álvaro Fernández Rojas 2023-03-20 15:50 ` [PATCH 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas 2023-03-20 19:49 ` Simon Horman 2023-03-20 19:51 ` Florian Fainelli 2023-03-21 7:14 ` Krzysztof Kozlowski 2023-03-20 15:50 ` [PATCH 2/4] net: dsa: b53: mmap: add more BCM63xx SoCs Álvaro Fernández Rojas 2023-03-20 19:52 ` Florian Fainelli 2023-03-20 19:54 ` Simon Horman 2023-03-20 19:56 ` Álvaro Fernández Rojas 2023-03-20 20:11 ` Simon Horman 2023-03-20 15:50 ` [PATCH 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas 2023-03-20 19:57 ` Florian Fainelli 2023-03-20 20:01 ` Simon Horman 2023-03-20 15:50 ` [PATCH 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas 2023-03-20 20:00 ` Florian Fainelli 2023-03-21 9:10 ` Álvaro Fernández Rojas 2023-03-20 20:07 ` Simon Horman 2023-03-21 17:33 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 1/4] dt-bindings: net: dsa: b53: add more 63xx SoCs Álvaro Fernández Rojas 2023-03-21 17:33 ` [PATCH v2 2/4] net: dsa: b53: mmap: " Álvaro Fernández Rojas 2023-03-22 11:11 ` Simon Horman 2023-03-21 17:33 ` [PATCH v2 3/4] net: dsa: b53: mmap: allow passing a chip ID Álvaro Fernández Rojas 2023-03-21 18:19 ` Florian Fainelli 2023-03-22 11:12 ` Simon Horman 2023-03-21 17:33 ` [PATCH v2 4/4] net: dsa: b53: add BCM63268 RGMII configuration Álvaro Fernández Rojas 2023-03-23 4:50 ` [PATCH v2 0/4] net: dsa: b53: configure 6318 and 63268 RGMII ports patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).