Re: [PATCH v3 2/4] dt-bindings: clock: mediatek: add clock controllers of MT7988

Daniel Golle
2023-12-06T12:46:05Z

On Wed, Dec 06, 2023 at 11:59:54AM +0100, AngeloGioacchino Del Regno wrote:
> Il 06/12/23 01:57, Daniel Golle ha scritto:
> > Add various clock controllers found in the MT7988 SoC to existing
> > bindings (if applicable) and add files for the new ethwarp, mcusys
> > and xfi-pll clock controllers not previously present in any SoC.
> >
> > Signed-off-by: Daniel Golle <daniel@makrotopia.org>
> > ---
> > v3:
> > * move clock bindings to clock folder
> > * drop ti,syscon-reset from bindings and example
> > * merge mcusys with topckgen bindings
> >
> > v2:
> > * dropped unused labels
> > * add 'type: object' declaration for reset-controller found in new
> > ethwarp controller and represented as ti,syscon-reset
> > * rebase on top of
> > "dt-bindings: arm: mediatek: move ethsys controller & convert to DT schema"
> >
> > .../arm/mediatek/mediatek,infracfg.yaml | 1 +
> > .../bindings/clock/mediatek,apmixedsys.yaml | 1 +
> > .../bindings/clock/mediatek,ethsys.yaml | 1 +
> > .../clock/mediatek,mt7988-ethwarp.yaml | 49 +++++++++++++++++++
> > .../clock/mediatek,mt7988-xfi-pll.yaml | 48 ++++++++++++++++++
> > .../bindings/clock/mediatek,topckgen.yaml | 2 +
> > .../bindings/net/pcs/mediatek,sgmiisys.yaml | 13 +++--
> > 7 files changed, 112 insertions(+), 3 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/clock/mediatek,mt7988-ethwarp.yaml
> > create mode 100644 Documentation/devicetree/bindings/clock/mediatek,mt7988-xfi-pll.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.yaml
> > index ea98043c6ba3d..230b5188a88db 100644
> > --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.yaml
> > +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.yaml
> > @@ -30,6 +30,7 @@ properties:
> > - mediatek,mt7629-infracfg
> > - mediatek,mt7981-infracfg
> > - mediatek,mt7986-infracfg
> > + - mediatek,mt7988-infracfg
> > - mediatek,mt8135-infracfg
> > - mediatek,mt8167-infracfg
> > - mediatek,mt8173-infracfg
> > diff --git a/Documentation/devicetree/bindings/clock/mediatek,apmixedsys.yaml b/Documentation/devicetree/bindings/clock/mediatek,apmixedsys.yaml
> > index 372c1d744bc27..685535846cbb7 100644
> > --- a/Documentation/devicetree/bindings/clock/mediatek,apmixedsys.yaml
> > +++ b/Documentation/devicetree/bindings/clock/mediatek,apmixedsys.yaml
> > @@ -22,6 +22,7 @@ properties:
> > - mediatek,mt7622-apmixedsys
> > - mediatek,mt7981-apmixedsys
> > - mediatek,mt7986-apmixedsys
> > + - mediatek,mt7988-apmixedsys
> > - mediatek,mt8135-apmixedsys
> > - mediatek,mt8173-apmixedsys
> > - mediatek,mt8516-apmixedsys
> > diff --git a/Documentation/devicetree/bindings/clock/mediatek,ethsys.yaml b/Documentation/devicetree/bindings/clock/mediatek,ethsys.yaml
> > index 94d42c8647777..f9cddacc2eae1 100644
> > --- a/Documentation/devicetree/bindings/clock/mediatek,ethsys.yaml
> > +++ b/Documentation/devicetree/bindings/clock/mediatek,ethsys.yaml
> > @@ -22,6 +22,7 @@ properties:
> > - mediatek,mt7629-ethsys
> > - mediatek,mt7981-ethsys
> > - mediatek,mt7986-ethsys
> > + - mediatek,mt7988-ethsys
> > - const: syscon
> > - items:
> > - const: mediatek,mt7623-ethsys
> > diff --git a/Documentation/devicetree/bindings/clock/mediatek,mt7988-ethwarp.yaml b/Documentation/devicetree/bindings/clock/mediatek,mt7988-ethwarp.yaml
> > new file mode 100644
> > index 0000000000000..9b919a155eb13
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/mediatek,mt7988-ethwarp.yaml
> > @@ -0,0 +1,49 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mt7988-ethwarp.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: MediaTek MT7988 ethwarp Controller
> > +
> > +maintainers:
> > + - Daniel Golle <daniel@makrotopia.org>
> > +
> > +description:
> > + The Mediatek MT7988 ethwarp controller provides clocks and resets for the
> > + Ethernet related subsystems found the MT7988 SoC.
> > + The clock values can be found in <dt-bindings/clock/mt*-clk.h>.
> > +
> > +properties:
> > + compatible:
> > + items:
> > + - const: mediatek,mt7988-ethwarp
> > + - const: syscon
> > + - const: simple-mfd
>
> No, this is not a mfd, I say.
>
> Prove me wrong! :-)

https://github.com/dangowrt/linux/blob/mt7988-for-next/arch/arm64/boot/dts/mediatek/mt7988a.dtsi#L564

The 'simple-mfd' compatible is required to have the Linux
kernel probe drivers for sub-nodes -- several drivers will act on
the different aspects of the circuit exposed at this memory range.
From what I understand, this is the definition of a MFD.

>
> ..snip..
>
> > diff --git a/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
> > index 66a95191bd776..68632cda334bd 100644
> > --- a/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
> > +++ b/Documentation/devicetree/bindings/net/pcs/mediatek,sgmiisys.yaml
> > @@ -15,15 +15,22 @@ description:
> > properties:
> > compatible:
> > - items:
> > - - enum:
> > + oneOf:
> > + - items:
> > + - enum:
> > - mediatek,mt7622-sgmiisys
> > - mediatek,mt7629-sgmiisys
> > - mediatek,mt7981-sgmiisys_0
> > - mediatek,mt7981-sgmiisys_1
> > - mediatek,mt7986-sgmiisys_0
> > - mediatek,mt7986-sgmiisys_1
> > - - const: syscon
> > + - const: syscon
> > + - items:
> > + - enum:
> > + - mediatek,mt7988-sgmiisys_0
> > + - mediatek,mt7988-sgmiisys_1
> > + - const: syscon
> > + - const: simple-mfd
>
> Same.
>
> Cheers,
> Angelo