summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
blob: 3f4262e93c789c849a94f4a9e52f21edb3142d58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek mmsys controller

maintainers:
  - Matthias Brugger <matthias.bgg@gmail.com>

description:
  The MediaTek mmsys system controller provides clock control, routing control,
  and miscellaneous control in mmsys partition.

properties:
  $nodename:
    pattern: "^syscon@[0-9a-f]+$"

  compatible:
    oneOf:
      - items:
          - enum:
              - mediatek,mt2701-mmsys
              - mediatek,mt2712-mmsys
              - mediatek,mt6765-mmsys
              - mediatek,mt6779-mmsys
              - mediatek,mt6795-mmsys
              - mediatek,mt6797-mmsys
              - mediatek,mt8167-mmsys
              - mediatek,mt8173-mmsys
              - mediatek,mt8183-mmsys
              - mediatek,mt8186-mmsys
              - mediatek,mt8188-vdosys0
              - mediatek,mt8188-vdosys1
              - mediatek,mt8188-vppsys0
              - mediatek,mt8188-vppsys1
              - mediatek,mt8192-mmsys
              - mediatek,mt8195-vdosys1
              - mediatek,mt8195-vppsys0
              - mediatek,mt8195-vppsys1
              - mediatek,mt8365-mmsys
          - const: syscon

      - description: vdosys0 and vdosys1 are 2 display HW pipelines,
                     so mt8195 binding should be deprecated.
        deprecated: true
        items:
          - const: mediatek,mt8195-mmsys
          - const: syscon

      - items:
          - const: mediatek,mt7623-mmsys
          - const: mediatek,mt2701-mmsys
          - const: syscon

      - items:
          - const: mediatek,mt8195-vdosys0
          - const: mediatek,mt8195-mmsys
          - const: syscon

  reg:
    maxItems: 1

  power-domains:
    description:
      A phandle and PM domain specifier as defined by bindings
      of the power controller specified by phandle. See
      Documentation/devicetree/bindings/power/power-domain.yaml for details.

  mboxes:
    description:
      Using mailbox to communicate with GCE, it should have this
      property and list of phandle, mailbox specifiers. See
      Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
      for details.
    $ref: /schemas/types.yaml#/definitions/phandle-array

  mediatek,gce-client-reg:
    description:
      The register of client driver can be configured by gce with 4 arguments
      defined in this property, such as phandle of gce, subsys id,
      register offset and size.
      Each subsys id is mapping to a base address of display function blocks
      register which is defined in the gce header
      include/dt-bindings/gce/<chip>-gce.h.
    $ref: /schemas/types.yaml#/definitions/phandle-array
    maxItems: 1

  "#clock-cells":
    const: 1

  '#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 multiple 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

    anyOf:
      - required:
          - endpoint@0
      - required:
          - endpoint@1
      - required:
          - endpoint@2

required:
  - compatible
  - reg
  - "#clock-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/power/mt8173-power.h>
    #include <dt-bindings/gce/mt8173-gce.h>

    mmsys: syscon@14000000 {
        compatible = "mediatek,mt8173-mmsys", "syscon";
        reg = <0x14000000 0x1000>;
        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
        #clock-cells = <1>;
        #reset-cells = <1>;
        mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>,
                 <&gce 1 CMDQ_THR_PRIO_HIGHEST>;
        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>;
    };