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 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 31 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 54 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 62 power-domains: 63 maxItems: 1 64 65 clocks: 66 items: 67 - description: RDMA clock 68 - description: RSZ clock 69 minItems: 1 70 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 78 - 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 88 89required: 90 - compatible 91 - reg 92 - mediatek,gce-client-reg 93 - power-domains 94 - clocks 95 - iommus 96 - '#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 144 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 154 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>; 167 }; 168