xref: /linux/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
14ed545e7Sjason-jh.lin# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
24ed545e7Sjason-jh.lin%YAML 1.2
34ed545e7Sjason-jh.lin---
44ed545e7Sjason-jh.lin$id: http://devicetree.org/schemas/display/mediatek/mediatek,merge.yaml#
54ed545e7Sjason-jh.lin$schema: http://devicetree.org/meta-schemas/core.yaml#
64ed545e7Sjason-jh.lin
74ed545e7Sjason-jh.lintitle: Mediatek display merge
84ed545e7Sjason-jh.lin
94ed545e7Sjason-jh.linmaintainers:
104ed545e7Sjason-jh.lin  - Chun-Kuang Hu <chunkuang.hu@kernel.org>
114ed545e7Sjason-jh.lin  - Philipp Zabel <p.zabel@pengutronix.de>
124ed545e7Sjason-jh.lin
134ed545e7Sjason-jh.lindescription: |
144ed545e7Sjason-jh.lin  Mediatek display merge, namely MERGE, is used to merge two slice-per-line
154ed545e7Sjason-jh.lin  inputs into one side-by-side output.
164ed545e7Sjason-jh.lin  MERGE device node must be siblings to the central MMSYS_CONFIG node.
174ed545e7Sjason-jh.lin  For a description of the MMSYS_CONFIG binding, see
184ed545e7Sjason-jh.lin  Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
194ed545e7Sjason-jh.lin  for details.
204ed545e7Sjason-jh.lin
214ed545e7Sjason-jh.linproperties:
224ed545e7Sjason-jh.lin  compatible:
234ed545e7Sjason-jh.lin    oneOf:
24112d5560SKrzysztof Kozlowski      - enum:
25112d5560SKrzysztof Kozlowski          - mediatek,mt8173-disp-merge
26112d5560SKrzysztof Kozlowski          - mediatek,mt8195-disp-merge
274ae88e9cSMoudy Ho          - mediatek,mt8195-mdp3-merge
28400ab909SAngeloGioacchino Del Regno      - items:
29*2971de06SAngeloGioacchino Del Regno          - enum:
30*2971de06SAngeloGioacchino Del Regno              - mediatek,mt8188-mdp3-merge
31*2971de06SAngeloGioacchino Del Regno          - const: mediatek,mt8195-mdp3-merge
32*2971de06SAngeloGioacchino Del Regno      - items:
33400ab909SAngeloGioacchino Del Regno          - const: mediatek,mt6795-disp-merge
34400ab909SAngeloGioacchino Del Regno          - const: mediatek,mt8173-disp-merge
35c2501ad2SHsiao Chien Sung      - items:
36c2501ad2SHsiao Chien Sung          - const: mediatek,mt8188-disp-merge
37c2501ad2SHsiao Chien Sung          - const: mediatek,mt8195-disp-merge
384ed545e7Sjason-jh.lin
394ed545e7Sjason-jh.lin  reg:
404ed545e7Sjason-jh.lin    maxItems: 1
414ed545e7Sjason-jh.lin
424ed545e7Sjason-jh.lin  interrupts:
434ed545e7Sjason-jh.lin    maxItems: 1
444ed545e7Sjason-jh.lin
454ed545e7Sjason-jh.lin  power-domains:
464ed545e7Sjason-jh.lin    description: A phandle and PM domain specifier as defined by bindings of
474ed545e7Sjason-jh.lin      the power controller specified by phandle. See
484ed545e7Sjason-jh.lin      Documentation/devicetree/bindings/power/power-domain.yaml for details.
494ed545e7Sjason-jh.lin
504ed545e7Sjason-jh.lin  clocks:
51bff4e302SAngeloGioacchino Del Regno    minItems: 1
521cffdf60Sjason-jh.lin    maxItems: 2
531cffdf60Sjason-jh.lin
541cffdf60Sjason-jh.lin  clock-names:
55bff4e302SAngeloGioacchino Del Regno    oneOf:
56bff4e302SAngeloGioacchino Del Regno      - items:
57bff4e302SAngeloGioacchino Del Regno          - const: merge
58bff4e302SAngeloGioacchino Del Regno      - items:
591cffdf60Sjason-jh.lin          - const: merge
601cffdf60Sjason-jh.lin          - const: merge_async
611cffdf60Sjason-jh.lin
621cffdf60Sjason-jh.lin  mediatek,merge-fifo-en:
631cffdf60Sjason-jh.lin    description:
641cffdf60Sjason-jh.lin      The setting of merge fifo is mainly provided for the display latency
651cffdf60Sjason-jh.lin      buffer to ensure that the back-end panel display data will not be
661cffdf60Sjason-jh.lin      underrun, a little more data is needed in the fifo.
671cffdf60Sjason-jh.lin      According to the merge fifo settings, when the water level is detected
681cffdf60Sjason-jh.lin      to be insufficient, it will trigger RDMA sending ultra and preulra
691cffdf60Sjason-jh.lin      command to SMI to speed up the data rate.
701cffdf60Sjason-jh.lin    type: boolean
714ed545e7Sjason-jh.lin
7287e70353SNancy.Lin  mediatek,merge-mute:
7387e70353SNancy.Lin    description: Support mute function. Mute the content of merge output.
7487e70353SNancy.Lin    type: boolean
7587e70353SNancy.Lin
764ed545e7Sjason-jh.lin  mediatek,gce-client-reg:
774ed545e7Sjason-jh.lin    description: The register of client driver can be configured by gce with
784ed545e7Sjason-jh.lin      4 arguments defined in this property, such as phandle of gce, subsys id,
794ed545e7Sjason-jh.lin      register offset and size. Each GCE subsys id is mapping to a client
804ed545e7Sjason-jh.lin      defined in the header include/dt-bindings/gce/<chip>-gce.h.
814ed545e7Sjason-jh.lin    $ref: /schemas/types.yaml#/definitions/phandle-array
824ed545e7Sjason-jh.lin    maxItems: 1
834ed545e7Sjason-jh.lin
842b6433f3SAngeloGioacchino Del Regno  ports:
852b6433f3SAngeloGioacchino Del Regno    $ref: /schemas/graph.yaml#/properties/ports
862b6433f3SAngeloGioacchino Del Regno    description:
872b6433f3SAngeloGioacchino Del Regno      Input and output ports can have multiple endpoints, each of those
882b6433f3SAngeloGioacchino Del Regno      connects to either the primary, secondary, etc, display pipeline.
892b6433f3SAngeloGioacchino Del Regno
902b6433f3SAngeloGioacchino Del Regno    properties:
912b6433f3SAngeloGioacchino Del Regno      port@0:
922b6433f3SAngeloGioacchino Del Regno        $ref: /schemas/graph.yaml#/properties/port
932b6433f3SAngeloGioacchino Del Regno        description:
942b6433f3SAngeloGioacchino Del Regno          MERGE input port, usually from DITHER, DPI, DSC, DSI, MDP_RDMA,
952b6433f3SAngeloGioacchino Del Regno          ETHDR or even from a different MERGE block
962b6433f3SAngeloGioacchino Del Regno
972b6433f3SAngeloGioacchino Del Regno      port@1:
982b6433f3SAngeloGioacchino Del Regno        $ref: /schemas/graph.yaml#/properties/port
992b6433f3SAngeloGioacchino Del Regno        description:
1002b6433f3SAngeloGioacchino Del Regno          MERGE output to a DSC, DPI, DP_INTF, DSI, ETHDR, Write DMA, or
1012b6433f3SAngeloGioacchino Del Regno          a different MERGE block, or others.
1022b6433f3SAngeloGioacchino Del Regno
1032b6433f3SAngeloGioacchino Del Regno    required:
1042b6433f3SAngeloGioacchino Del Regno      - port@0
1052b6433f3SAngeloGioacchino Del Regno      - port@1
1062b6433f3SAngeloGioacchino Del Regno
1071cffdf60Sjason-jh.lin  resets:
1081cffdf60Sjason-jh.lin    description: reset controller
1091cffdf60Sjason-jh.lin      See Documentation/devicetree/bindings/reset/reset.txt for details.
1101cffdf60Sjason-jh.lin    maxItems: 1
1111cffdf60Sjason-jh.lin
1124ed545e7Sjason-jh.linrequired:
1134ed545e7Sjason-jh.lin  - compatible
1144ed545e7Sjason-jh.lin  - reg
1154ed545e7Sjason-jh.lin  - power-domains
1164ed545e7Sjason-jh.lin  - clocks
1174ed545e7Sjason-jh.lin
1184ed545e7Sjason-jh.linadditionalProperties: false
1194ed545e7Sjason-jh.lin
1204ed545e7Sjason-jh.linexamples:
1214ed545e7Sjason-jh.lin  - |
122bff4e302SAngeloGioacchino Del Regno    #include <dt-bindings/interrupt-controller/arm-gic.h>
123bff4e302SAngeloGioacchino Del Regno    #include <dt-bindings/clock/mt8173-clk.h>
124bff4e302SAngeloGioacchino Del Regno    #include <dt-bindings/power/mt8173-power.h>
125bff4e302SAngeloGioacchino Del Regno
126bff4e302SAngeloGioacchino Del Regno    soc {
127bff4e302SAngeloGioacchino Del Regno        #address-cells = <2>;
128bff4e302SAngeloGioacchino Del Regno        #size-cells = <2>;
1294ed545e7Sjason-jh.lin
1304ed545e7Sjason-jh.lin        merge@14017000 {
1314ed545e7Sjason-jh.lin            compatible = "mediatek,mt8173-disp-merge";
1324ed545e7Sjason-jh.lin            reg = <0 0x14017000 0 0x1000>;
1334ed545e7Sjason-jh.lin            power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
1344ed545e7Sjason-jh.lin            clocks = <&mmsys CLK_MM_DISP_MERGE>;
135bff4e302SAngeloGioacchino Del Regno            clock-names = "merge";
136bff4e302SAngeloGioacchino Del Regno        };
1374ed545e7Sjason-jh.lin    };
138