Re: [PATCH v4 03/16] dt-binding: mediatek: add MediaTek mt8195 MDP3 components

From: Rob Herring
Date: Thu Feb 09 2023 - 13:01:33 EST


On Wed, Feb 08, 2023 at 05:21:56PM +0800, Moudy Ho wrote:
> Adds support for MT8195 MDP3 RDMA, and introduce more MDP3 components
> present in MT8195.

I'm sure I asked this before, but how are these blocks different from
what we already have in bindings/display/mediatek/. It's all the same
block names. If they are the same/similar h/w, then it should be 1
binding even if you have different consumers in the kernel.

If my questions aren't answered in the patches, then I'll just keep
asking because I won't remember...

>
> Signed-off-by: Moudy Ho <moudy.ho@xxxxxxxxxxxx>
> ---
> .../bindings/media/mediatek,mdp3-rdma.yaml | 30 +--
> .../bindings/media/mediatek,mdp3-rsz.yaml | 5 +-
> .../bindings/media/mediatek,mt8195-mdp3.yaml | 174 ++++++++++++++++++
> 3 files changed, 197 insertions(+), 12 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8195-mdp3.yaml
>
> diff --git a/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml b/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml
> index 46730687c662..abc3284b21d0 100644
> --- a/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml
> +++ b/Documentation/devicetree/bindings/media/mediatek,mdp3-rdma.yaml
> @@ -20,8 +20,9 @@ description: |
>
> properties:
> compatible:
> - items:
> - - const: mediatek,mt8183-mdp3-rdma
> + enum:
> + - mediatek,mt8183-mdp3-rdma
> + - mediatek,mt8195-mdp3-rdma
>
> reg:
> maxItems: 1
> @@ -46,20 +47,28 @@ properties:
> $ref: /schemas/types.yaml#/definitions/uint32-array
>
> power-domains:
> - maxItems: 1
> + oneOf:
> + - items:
> + - description: for RDMA
> + - items:
> + - description: for vppsys 0
> + - description: for vppsys 1
>
> clocks:
> - items:
> - - description: RDMA clock
> - - description: RSZ clock
> + minItems: 2
> + maxItems: 19
>
> iommus:
> - maxItems: 1
> + oneOf:
> + - items:
> + - description: RDMA port
> + - items:
> + - description: RDMA port
> + - description: RDMA to WROT DL port
>
> mboxes:
> - items:
> - - description: used for 1st data pipe from RDMA
> - - description: used for 2nd data pipe from RDMA
> + minItems: 1
> + maxItems: 5
>
> '#dma-cells':
> const: 1
> @@ -72,7 +81,6 @@ required:
> - power-domains
> - clocks
> - iommus
> - - mboxes
> - '#dma-cells'
>
> additionalProperties: false
> diff --git a/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml b/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml
> index 78f9de6192ef..4bc5ac112d2a 100644
> --- a/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml
> +++ b/Documentation/devicetree/bindings/media/mediatek,mdp3-rsz.yaml
> @@ -43,12 +43,15 @@ properties:
>
> clocks:
> minItems: 1
> + maxItems: 2
> +
> + power-domains:
> + maxItems: 1
>
> required:
> - compatible
> - reg
> - mediatek,gce-client-reg
> - - mediatek,gce-events
> - clocks
>
> additionalProperties: false
> diff --git a/Documentation/devicetree/bindings/media/mediatek,mt8195-mdp3.yaml b/Documentation/devicetree/bindings/media/mediatek,mt8195-mdp3.yaml
> new file mode 100644
> index 000000000000..d2b01456c495
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/mediatek,mt8195-mdp3.yaml
> @@ -0,0 +1,174 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/mediatek,mt8195-mdp3.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MediaTek Media Data Path 3 display components
> +
> +maintainers:
> + - Matthias Brugger <matthias.bgg@xxxxxxxxx>
> + - Moudy Ho <moudy.ho@xxxxxxxxxxxx>
> +
> +description:
> + A group of display pipeline components for image quality adjustment,
> + color format conversion and data flow control, and the abbreviations
> + are explained below.
> + AAL - Ambient-light Adaptive Luma.
> + Color - Enhance or reduce color in Y/S/H channel.
> + FG - Fime Grain for AV1 spec.
> + HDR - Perform HDR to SDR.
> + MERGE - Used to merge two slice-per-line into one side-by-side.
> + OVL - Perform alpha blending.
> + PAD - Predefined alpha or color value insertion.
> + SPLIT - Split a HDMI stream into two ouptut.
> + STITCH - Combine multiple video frame with overlapping fields of view.
> + TCC - HDR gamma curve conversion support.
> + TDSHP - Sharpness and contrast improvement.

Each block likely needs its own schema.

> +
> +properties:
> + compatible:
> + enum:
> + - mediatek,mt8195-mdp3-aal
> + - mediatek,mt8195-mdp3-color
> + - mediatek,mt8195-mdp3-fg
> + - mediatek,mt8195-mdp3-hdr
> + - mediatek,mt8195-mdp3-merge
> + - mediatek,mt8195-mdp3-ovl
> + - mediatek,mt8195-mdp3-pad
> + - mediatek,mt8195-mdp3-split
> + - mediatek,mt8195-mdp3-stitch
> + - mediatek,mt8195-mdp3-tcc
> + - mediatek,mt8195-mdp3-tdshp
> +
> + reg:
> + maxItems: 1
> +
> + mediatek,gce-client-reg:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + items:
> + items:
> + - description: phandle of GCE
> + - description: GCE subsys id
> + - description: register offset
> + - description: register size

Given these match up to reg values, I'm really wondering why we have
this.

> + description:
> + Each GCE subsys id is mapping to a base address of display function blocks
> + register which is defined in <include/dt-bindings/gce/mt8195-gce.h>.
> + maxItems: 1
> +
> + clocks:
> + minItems: 1
> + maxItems: 7

You have to define what each clock is which probably depends on each
block.

Rob