Re: [PATCH 15/15] dt-bindings: net: dsa: mediatek,mt7530: add mediatek,mt7988-switch

From: Daniel Golle
Date: Mon Apr 03 2023 - 14:24:22 EST


Hi!

Now that I see the email, see my reply below.

On Fri, Mar 31, 2023 at 08:27:54AM +0300, Arınç ÜNAL wrote:
> On 30.03.2023 18:23, Daniel Golle wrote:
> > Add documentation for the built-in switch which can be found in the
> > MediaTek MT7988 SoC.
> >
> > Signed-off-by: Daniel Golle <daniel@xxxxxxxxxxxxxx>
> > ---
> > .../bindings/net/dsa/mediatek,mt7530.yaml | 26 +++++++++++++++++--
> > 1 file changed, 24 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > index 5ae9cd8f99a24..15953f0e9d1a6 100644
> > --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml
> > @@ -11,16 +11,23 @@ maintainers:
> > - Landen Chao <Landen.Chao@xxxxxxxxxxxx>
> > - DENG Qingfang <dqfext@xxxxxxxxx>
> > - Sean Wang <sean.wang@xxxxxxxxxxxx>
> > + - Daniel Golle <daniel@xxxxxxxxxxxxxx>
>
> Please put it in alphabetical order by the first name.
>
> > description: |
> > - There are two versions of MT7530, standalone and in a multi-chip module.
> > + There are three versions of MT7530, standalone, in a multi-chip module and
> > + built-into a SoC.
>
> I assume you put this to point out the situation with MT7988?
>
> This brings to light an underlying problem with the description as the
> MT7620 SoCs described below have the MT7530 switch built into the SoC,
> instead of being part of the MCM.

That's true, also MT7620A/N are not MCM but rather a single die which
includes the MT7530 switch afaik.

>
> The switch IP on MT7988 is for sure not MT7530 so either fix this and the
> text below as a separate patch or let me handle it.
>
> > MT7530 is a part of the multi-chip module in MT7620AN, MT7620DA, MT7620DAN,
> > MT7620NN, MT7621AT, MT7621DAT, MT7621ST and MT7623AI SoCs.
> > + The MT7988 SoC comes a built-in switch similar to MT7531 as well as 4 Gigabit
>
> s/comes a/comes with a
>
> > + Ethernet PHYs and the switch registers are directly mapped into SoC's memory
> > + map rather than using MDIO. It comes with an internally connected 10G CPU port
> > + and 4 user ports connected to the built-in Gigabit Ethernet PHYs.
>
> Are you sure this is not the MT7531 IP built into the SoC, like MT7530 on
> the MT7620 SoCs? Maybe DENG Qingfang would like to clarify as they did for
> MT7530.

It's basically MT7531 without port 5, without the SGMII units and with
different built-in PHYs for port 0~3 (driver for those will follow in
the next days, I'm still cleaning it).

Similar to other in-SoC switches also the reset routine works a bit
differently, ie. instead of using a GPIO we use a bit of the reset
controller, similar to how it works also for MCM.

>
> > +
> > MT7530 in MT7620AN, MT7620DA, MT7620DAN and MT7620NN SoCs has got 10/100 PHYs
> > and the switch registers are directly mapped into SoC's memory map rather than
> > - using MDIO. The DSA driver currently doesn't support this.
> > + using MDIO. The DSA driver currently doesn't support MT7620 variants.
> > There is only the standalone version of MT7531.
>
> Can you put the MT7988 information below here instead.
>
> > @@ -81,6 +88,10 @@ properties:
> > Multi-chip module MT7530 in MT7621AT, MT7621DAT and MT7621ST SoCs
> > const: mediatek,mt7621
> > + - description:
> > + Built-in switch of the MT7988 SoC
> > + const: mediatek,mt7988-switch
> > +
> > reg:
> > maxItems: 1
> > @@ -268,6 +279,17 @@ allOf:
> > required:
> > - mediatek,mcm
> > + - if:
> > + properties:
> > + compatible:
> > + const: mediatek,mt7988-switch
> > + then:
> > + $ref: "#/$defs/mt7530-dsa-port"
>
> The CPU ports bindings for MT7530 don't match the characteristics of the
> switch on the MT7988 SoC you described above. We need new definitions for
> the CPU ports on the switch on the MT7988 SoC.
>
> What's the CPU port number? Does it accept rgmii or only the 10G phy-mode?

CPU port is port 6. Port 5 is unused in MT7988 design.
It uses an internal 10G link, so I've decided to use 'internal' as phy
mode which best describes that situation.

>
> > + properties:
> > + gpio-controller: false
> > + mediatek,mcm: false
> > + reset-names: false
>
> I'd rather not add reset-names here and do:
>
> - if:
> required:
> - mediatek,mcm
> then:
> properties:
> reset-gpios: false
>
> required:
> - resets
> - reset-names
> else:
> properties:
> resets: false
> reset-names: false
>
> I can handle this if you'd like.

Oh yes, that would be very nice. I'm definitely not an expert on
dt-bindings and will probably need several attempts to correctly
address all of that.

Thank you!


Daniel