On Tuesday, 28 October 2025 18:12:35 Central European Standard Time Liviu Dudau
wrote:
> On Fri, Oct 17, 2025 at 05:31:08PM +0200, Nicolas Frattaroli wrote:
> > The Mali-based GPU on the MediaTek MT8196 SoC uses a separate MCU to
> > control the power and frequency of the GPU. This is modelled as a power
> > domain and clock provider.
> >
> > It lets us omit the OPP tables from the device tree, as those can now be
> > enumerated at runtime from the MCU.
> >
> > Add the necessary schema logic to handle what this SoC expects in terms
> > of clocks and power-domains.
> >
> > Reviewed-by: Rob Herring (Arm) <[email protected]>
> > Reviewed-by: AngeloGioacchino Del Regno
> > <[email protected]>
> > Signed-off-by: Nicolas Frattaroli <[email protected]>
> > ---
> > .../bindings/gpu/arm,mali-valhall-csf.yaml | 37
> > +++++++++++++++++++++-
> > 1 file changed, 36 insertions(+), 1 deletion(-)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml
> > b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml
> > index 613040fdb444..860691ce985e 100644
> > --- a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml
> > +++ b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml
> > @@ -45,7 +45,9 @@ properties:
> > minItems: 1
> > items:
> > - const: core
> > - - const: coregroup
> > + - enum:
> > + - coregroup
> > + - stacks
> > - const: stacks
>
> I'm not sure how to parse this part of the change. We're overwriting the
> property
> for mt8196-mali anyway so why do we need this? And if we do, should 'stacks'
> still remain as a const?
The properties section outside of the if branches outside here
specifies a pattern of properties that matches for all devices.
In this case, I changed it so that the second clock-names item
may either be "coregroup" or "stacks". Yes, the third "stacks"
remains, though if you wanted to be extra precise you could
then specify in the non-MT8196 cases that we should not have
stacks followed by stacks, but I'd wager some checker for
duplicate names may already catch that.
However, I don't think it's a big enough deal to reroll this
series again.
Kind regards,
Nicolas Frattaroli
>
> Best regards,
> Liviu
>
> >
> > mali-supply: true
> > @@ -110,6 +112,27 @@ allOf:
> > power-domain-names: false
> > required:
> > - mali-supply
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: mediatek,mt8196-mali
> > + then:
> > + properties:
> > + mali-supply: false
> > + sram-supply: false
> > + operating-points-v2: false
> > + power-domains:
> > + maxItems: 1
> > + power-domain-names: false
> > + clocks:
> > + maxItems: 2
> > + clock-names:
> > + items:
> > + - const: core
> > + - const: stacks
> > + required:
> > + - power-domains
> >
> > examples:
> > - |
> > @@ -145,5 +168,17 @@ examples:
> > };
> > };
> > };
> > + - |
> > + gpu@48000000 {
> > + compatible = "mediatek,mt8196-mali", "arm,mali-valhall-csf";
> > + reg = <0x48000000 0x480000>;
> > + clocks = <&gpufreq 0>, <&gpufreq 1>;
> > + clock-names = "core", "stacks";
> > + interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH 0>,
> > + <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH 0>,
> > + <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH 0>;
> > + interrupt-names = "job", "mmu", "gpu";
> > + power-domains = <&gpufreq>;
> > + };
> >
> > ...
> >
>
>