xref: /linux/Documentation/devicetree/bindings/display/mediatek/mediatek,merge.yaml (revision df9c299371054cb725eef730fd0f1d0fe2ed6bb0)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/display/mediatek/mediatek,merge.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Mediatek display merge
8
9maintainers:
10  - Chun-Kuang Hu <chunkuang.hu@kernel.org>
11  - Philipp Zabel <p.zabel@pengutronix.de>
12
13description: |
14  Mediatek display merge, namely MERGE, is used to merge two slice-per-line
15  inputs into one side-by-side output.
16  MERGE device node must be siblings to the central MMSYS_CONFIG node.
17  For a description of the MMSYS_CONFIG binding, see
18  Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
19  for details.
20
21properties:
22  compatible:
23    oneOf:
24      - enum:
25          - mediatek,mt8173-disp-merge
26          - mediatek,mt8195-disp-merge
27          - mediatek,mt8195-mdp3-merge
28      - items:
29          - enum:
30              - mediatek,mt8188-mdp3-merge
31          - const: mediatek,mt8195-mdp3-merge
32      - items:
33          - const: mediatek,mt6795-disp-merge
34          - const: mediatek,mt8173-disp-merge
35      - items:
36          - const: mediatek,mt8188-disp-merge
37          - const: mediatek,mt8195-disp-merge
38
39  reg:
40    maxItems: 1
41
42  interrupts:
43    maxItems: 1
44
45  power-domains:
46    description: A phandle and PM domain specifier as defined by bindings of
47      the power controller specified by phandle. See
48      Documentation/devicetree/bindings/power/power-domain.yaml for details.
49
50  clocks:
51    minItems: 1
52    maxItems: 2
53
54  clock-names:
55    oneOf:
56      - items:
57          - const: merge
58      - items:
59          - const: merge
60          - const: merge_async
61
62  mediatek,merge-fifo-en:
63    description:
64      The setting of merge fifo is mainly provided for the display latency
65      buffer to ensure that the back-end panel display data will not be
66      underrun, a little more data is needed in the fifo.
67      According to the merge fifo settings, when the water level is detected
68      to be insufficient, it will trigger RDMA sending ultra and preulra
69      command to SMI to speed up the data rate.
70    type: boolean
71
72  mediatek,merge-mute:
73    description: Support mute function. Mute the content of merge output.
74    type: boolean
75
76  mediatek,gce-client-reg:
77    description: The register of client driver can be configured by gce with
78      4 arguments defined in this property, such as phandle of gce, subsys id,
79      register offset and size. Each GCE subsys id is mapping to a client
80      defined in the header include/dt-bindings/gce/<chip>-gce.h.
81    $ref: /schemas/types.yaml#/definitions/phandle-array
82    maxItems: 1
83
84  ports:
85    $ref: /schemas/graph.yaml#/properties/ports
86    description:
87      Input and output ports can have multiple endpoints, each of those
88      connects to either the primary, secondary, etc, display pipeline.
89
90    properties:
91      port@0:
92        $ref: /schemas/graph.yaml#/properties/port
93        description:
94          MERGE input port, usually from DITHER, DPI, DSC, DSI, MDP_RDMA,
95          ETHDR or even from a different MERGE block
96
97      port@1:
98        $ref: /schemas/graph.yaml#/properties/port
99        description:
100          MERGE output to a DSC, DPI, DP_INTF, DSI, ETHDR, Write DMA, or
101          a different MERGE block, or others.
102
103    required:
104      - port@0
105      - port@1
106
107  resets:
108    description: reset controller
109      See Documentation/devicetree/bindings/reset/reset.txt for details.
110    maxItems: 1
111
112required:
113  - compatible
114  - reg
115  - power-domains
116  - clocks
117
118additionalProperties: false
119
120examples:
121  - |
122    #include <dt-bindings/interrupt-controller/arm-gic.h>
123    #include <dt-bindings/clock/mt8173-clk.h>
124    #include <dt-bindings/power/mt8173-power.h>
125
126    soc {
127        #address-cells = <2>;
128        #size-cells = <2>;
129
130        merge@14017000 {
131            compatible = "mediatek,mt8173-disp-merge";
132            reg = <0 0x14017000 0 0x1000>;
133            power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
134            clocks = <&mmsys CLK_MM_DISP_MERGE>;
135            clock-names = "merge";
136        };
137    };
138