1# 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:
23    items:
24      - const: mediatek,mt8183-mdp3-rdma
25
26  reg:
27    maxItems: 1
28
29  mediatek,gce-client-reg:
30    $ref: /schemas/types.yaml#/definitions/phandle-array
31    items:
32      items:
33        - description: phandle of GCE
34        - description: GCE subsys id
35        - description: register offset
36        - description: register size
37    description: The register of client driver can be configured by gce with
38      4 arguments defined in this property. Each GCE subsys id is mapping to
39      a client defined in the header include/dt-bindings/gce/<chip>-gce.h.
40
41  mediatek,gce-events:
42    description:
43      The event id which is mapping to the specific hardware event signal
44      to gce. The event id is defined in the gce header
45      include/dt-bindings/gce/<chip>-gce.h of each chips.
46    $ref: /schemas/types.yaml#/definitions/uint32-array
47
48  power-domains:
49    maxItems: 1
50
51  clocks:
52    items:
53      - description: RDMA clock
54      - description: RSZ clock
55
56  iommus:
57    maxItems: 1
58
59  mboxes:
60    items:
61      - description: used for 1st data pipe from RDMA
62      - description: used for 2nd data pipe from RDMA
63
64  '#dma-cells':
65    const: 1
66
67required:
68  - compatible
69  - reg
70  - mediatek,gce-client-reg
71  - mediatek,gce-events
72  - power-domains
73  - clocks
74  - iommus
75  - mboxes
76  - '#dma-cells'
77
78additionalProperties: false
79
80examples:
81  - |
82    #include <dt-bindings/clock/mt8183-clk.h>
83    #include <dt-bindings/gce/mt8183-gce.h>
84    #include <dt-bindings/power/mt8183-power.h>
85    #include <dt-bindings/memory/mt8183-larb-port.h>
86
87    dma-controller@14001000 {
88        compatible = "mediatek,mt8183-mdp3-rdma";
89        reg = <0x14001000 0x1000>;
90        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>;
91        mediatek,gce-events = <CMDQ_EVENT_MDP_RDMA0_SOF>,
92                              <CMDQ_EVENT_MDP_RDMA0_EOF>;
93        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
94        clocks = <&mmsys CLK_MM_MDP_RDMA0>,
95                 <&mmsys CLK_MM_MDP_RSZ1>;
96        iommus = <&iommu>;
97        mboxes = <&gce 20 CMDQ_THR_PRIO_LOWEST>,
98                 <&gce 21 CMDQ_THR_PRIO_LOWEST>;
99        #dma-cells = <1>;
100    };
101