blob: 59db8306485b328deb763ce260002dadffaf7da4 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/mediatek,mdp3-rdma.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MediaTek Read Direct Memory Access
8
9maintainers:
10 - Matthias Brugger <matthias.bgg@gmail.com>
11 - Moudy Ho <moudy.ho@mediatek.com>
12
13description: |
14 MediaTek Read Direct Memory Access(RDMA) component used to do read DMA.
15 It contains one line buffer to store the sufficient pixel data, and
16 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:
Tom Rini93743d22024-04-01 09:08:13 -040023 oneOf:
24 - enum:
25 - mediatek,mt8183-mdp3-rdma
26 - mediatek,mt8195-mdp3-rdma
27 - mediatek,mt8195-vdo1-rdma
28 - items:
29 - const: mediatek,mt8188-vdo1-rdma
30 - const: mediatek,mt8195-vdo1-rdma
Tom Rini53633a82024-02-29 12:33:36 -050031
32 reg:
33 maxItems: 1
34
35 mediatek,gce-client-reg:
36 $ref: /schemas/types.yaml#/definitions/phandle-array
37 items:
38 items:
39 - description: phandle of GCE
40 - description: GCE subsys id
41 - description: register offset
42 - description: register size
43 description: The register of client driver can be configured by gce with
44 4 arguments defined in this property. Each GCE subsys id is mapping to
45 a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
46
47 mediatek,gce-events:
48 description:
49 The event id which is mapping to the specific hardware event signal
50 to gce. The event id is defined in the gce header
51 include/dt-bindings/gce/<chip>-gce.h of each chips.
52 $ref: /schemas/types.yaml#/definitions/uint32-array
53
Tom Rini93743d22024-04-01 09:08:13 -040054 mediatek,scp:
55 $ref: /schemas/types.yaml#/definitions/phandle
56 description:
57 Phandle to the System Control Processor (SCP) used for initializing
58 and stopping the MDP3, for sending frame data locations to the MDP3's
59 VPU and to install Inter-Processor Interrupt handlers to control
60 processing states.
61
Tom Rini53633a82024-02-29 12:33:36 -050062 power-domains:
63 maxItems: 1
64
65 clocks:
66 items:
67 - description: RDMA clock
68 - description: RSZ clock
Tom Rini93743d22024-04-01 09:08:13 -040069 minItems: 1
Tom Rini53633a82024-02-29 12:33:36 -050070
71 iommus:
72 maxItems: 1
73
74 mboxes:
75 items:
76 - description: used for 1st data pipe from RDMA
77 - description: used for 2nd data pipe from RDMA
Tom Rini93743d22024-04-01 09:08:13 -040078 - description: used for 3rd data pipe from RDMA
79 - description: used for 4th data pipe from RDMA
80 - description: used for the data pipe from SPLIT
81 minItems: 1
82
83 interrupts:
84 maxItems: 1
85
86 '#dma-cells':
87 const: 1
Tom Rini53633a82024-02-29 12:33:36 -050088
89required:
90 - compatible
91 - reg
92 - mediatek,gce-client-reg
Tom Rini53633a82024-02-29 12:33:36 -050093 - power-domains
94 - clocks
95 - iommus
Tom Rini93743d22024-04-01 09:08:13 -040096 - '#dma-cells'
97
98allOf:
99 - if:
100 properties:
101 compatible:
102 contains:
103 const: mediatek,mt8183-mdp3-rdma
104
105 then:
106 properties:
107 clocks:
108 minItems: 2
109
110 mboxes:
111 minItems: 2
112
113 required:
114 - mboxes
115 - mediatek,gce-events
116
117 - if:
118 properties:
119 compatible:
120 contains:
121 const: mediatek,mt8195-mdp3-rdma
122
123 then:
124 properties:
125 clocks:
126 maxItems: 1
127
128 mboxes:
129 minItems: 5
130
131 required:
132 - mediatek,gce-events
133
134 - if:
135 properties:
136 compatible:
137 contains:
138 const: mediatek,mt8195-vdo1-rdma
139
140 then:
141 properties:
142 clocks:
143 maxItems: 1
Tom Rini53633a82024-02-29 12:33:36 -0500144
145additionalProperties: false
146
147examples:
148 - |
149 #include <dt-bindings/clock/mt8183-clk.h>
150 #include <dt-bindings/gce/mt8183-gce.h>
151 #include <dt-bindings/power/mt8183-power.h>
152 #include <dt-bindings/memory/mt8183-larb-port.h>
153
Tom Rini93743d22024-04-01 09:08:13 -0400154 dma-controller@14001000 {
155 compatible = "mediatek,mt8183-mdp3-rdma";
156 reg = <0x14001000 0x1000>;
157 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>;
158 mediatek,gce-events = <CMDQ_EVENT_MDP_RDMA0_SOF>,
159 <CMDQ_EVENT_MDP_RDMA0_EOF>;
160 power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
161 clocks = <&mmsys CLK_MM_MDP_RDMA0>,
162 <&mmsys CLK_MM_MDP_RSZ1>;
163 iommus = <&iommu>;
164 mboxes = <&gce 20 CMDQ_THR_PRIO_LOWEST>,
165 <&gce 21 CMDQ_THR_PRIO_LOWEST>;
166 #dma-cells = <1>;
Tom Rini53633a82024-02-29 12:33:36 -0500167 };