Re: [PATCH v1 2/3] dt-bindings: arm: mediatek: mmsys: Add OF graph support for board path

From: Chen-Yu Tsai
Date: Mon Apr 08 2024 - 23:39:55 EST


On Mon, Apr 8, 2024 at 6:16 PM AngeloGioacchino Del Regno
<angelogioacchino.delregno@xxxxxxxxxxxxx> wrote:
>
> Il 08/04/24 05:20, Chen-Yu Tsai ha scritto:
> > On Thu, Apr 4, 2024 at 4:16 PM AngeloGioacchino Del Regno
> > <angelogioacchino.delregno@xxxxxxxxxxxxx> wrote:
> >>
> >> Document OF graph on MMSYS/VDOSYS: this supports up to three DDP paths
> >> per HW instance (so potentially up to six displays for multi-vdo SoCs).
> >>
> >> The MMSYS or VDOSYS is always the first component in the DDP pipeline,
> >> so it only supports an output port with multiple endpoints - where each
> >> endpoint defines the starting point for one of the (currently three)
> >> possible hardware paths.
> >>
> >> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
> >> ---
> >> .../bindings/arm/mediatek/mediatek,mmsys.yaml | 23 +++++++++++++++++++
> >> 1 file changed, 23 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
> >> index b3c6888c1457..90758bb5bcb1 100644
> >> --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
> >> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
> >> @@ -93,6 +93,29 @@ properties:
> >> '#reset-cells':
> >> const: 1
> >>
> >> + port:
> >> + $ref: /schemas/graph.yaml#/properties/port
> >> + description:
> >> + Output port node. This port connects the MMSYS/VDOSYS output to
> >> + the first component of one display pipeline, for example one of
> >> + the available OVL or RDMA blocks.
> >> + Some MediaTek SoCs support up to three display outputs per MMSYS.
> >> + properties:
> >> + endpoint@0:
> >> + $ref: /schemas/graph.yaml#/properties/endpoint
> >> + description: Output to the primary display pipeline
> >> +
> >> + endpoint@1:
> >> + $ref: /schemas/graph.yaml#/properties/endpoint
> >> + description: Output to the secondary display pipeline
> >> +
> >> + endpoint@2:
> >> + $ref: /schemas/graph.yaml#/properties/endpoint
> >> + description: Output to the tertiary display pipeline
> >> +
> >> + required:
> >> + - endpoint@0
> >> +
> >
> > Technically the mmsys device serves as an glue layer for the display
> > pipeline, providing things like clock control and signal routing; the
> > device itself is not part of the pipeline, and probably shouldn't be
> > part of the graph?
> >
>
> That is (only) partially true: in the case of older SoCs, the MMSYS can only
> connect to a single first IP of the pipeline, but in the case of newer ones,
> and especially (but not limited to) MT8195 onwards having multiple instances
> of VDOSYS, that really becomes part of the pipeline.
>
> This is not because of the possible different first IP in the pipeline, but
> because of support for dual-interface (DSI and DP) that, in even newer SoCs,
> can be done with cross-mmsys (cross-vdosys, actually...) as some of those do
> have the two in different VDOs.
>
> So yes, this can be done without the graph in MMSYS *in this precise moment in
> time*, but we'll anyway end up adding it sooner than later - and I'm doing this
> right now, instead of later, because it's also simplifying the implementation
> so like that I'm "catching two birds with one stone" :-)

I see. Thanks for sorting it out. We had something similar on Allwinner
platforms but it was never as complex or flexible as this.

ChenYu

> Cheers,
> Angelo
>
> > ChenYu
> >
> >> required:
> >> - compatible
> >> - reg
> >> --
> >> 2.44.0
> >>
>
>