| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/media/mediatek,mdp3-rdma.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: MediaTek Read Direct Memory Access |
| |
| maintainers: |
| - Matthias Brugger <matthias.bgg@gmail.com> |
| - Moudy Ho <moudy.ho@mediatek.com> |
| |
| description: | |
| MediaTek Read Direct Memory Access(RDMA) component used to do read DMA. |
| It contains one line buffer to store the sufficient pixel data, and |
| must be siblings to the central MMSYS_CONFIG node. |
| For a description of the MMSYS_CONFIG binding, see |
| Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml |
| for details. |
| |
| properties: |
| compatible: |
| oneOf: |
| - enum: |
| - mediatek,mt8183-mdp3-rdma |
| - mediatek,mt8188-mdp3-rdma |
| - mediatek,mt8195-mdp3-rdma |
| - mediatek,mt8195-vdo1-rdma |
| - items: |
| - const: mediatek,mt8188-vdo1-rdma |
| - const: mediatek,mt8195-vdo1-rdma |
| |
| reg: |
| maxItems: 1 |
| |
| mediatek,gce-client-reg: |
| $ref: /schemas/types.yaml#/definitions/phandle-array |
| items: |
| items: |
| - description: phandle of GCE |
| - description: GCE subsys id |
| - description: register offset |
| - description: register size |
| description: The register of client driver can be configured by gce with |
| 4 arguments defined in this property. Each GCE subsys id is mapping to |
| a client defined in the header include/dt-bindings/gce/<chip>-gce.h. |
| |
| mediatek,gce-events: |
| description: |
| The event id which is mapping to the specific hardware event signal |
| to gce. The event id is defined in the gce header |
| include/dt-bindings/gce/<chip>-gce.h of each chips. |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| |
| mediatek,scp: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| Phandle to the System Control Processor (SCP) used for initializing |
| and stopping the MDP3, for sending frame data locations to the MDP3's |
| VPU and to install Inter-Processor Interrupt handlers to control |
| processing states. |
| |
| power-domains: |
| maxItems: 1 |
| |
| clocks: |
| items: |
| - description: RDMA clock |
| - description: RSZ clock |
| minItems: 1 |
| |
| iommus: |
| maxItems: 1 |
| |
| mboxes: |
| items: |
| - description: used for 1st data pipe from RDMA |
| - description: used for 2nd data pipe from RDMA |
| - description: used for 3rd data pipe from RDMA |
| - description: used for 4th data pipe from RDMA |
| - description: used for the data pipe from SPLIT |
| minItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| '#dma-cells': |
| const: 1 |
| |
| required: |
| - compatible |
| - reg |
| - mediatek,gce-client-reg |
| - power-domains |
| - clocks |
| - iommus |
| - '#dma-cells' |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: mediatek,mt8183-mdp3-rdma |
| |
| then: |
| properties: |
| clocks: |
| minItems: 2 |
| |
| mboxes: |
| minItems: 2 |
| |
| required: |
| - mboxes |
| - mediatek,gce-events |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: mediatek,mt8195-mdp3-rdma |
| |
| then: |
| properties: |
| clocks: |
| maxItems: 1 |
| |
| mboxes: |
| minItems: 5 |
| |
| required: |
| - mediatek,gce-events |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: mediatek,mt8195-vdo1-rdma |
| |
| then: |
| properties: |
| clocks: |
| maxItems: 1 |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/mt8183-clk.h> |
| #include <dt-bindings/gce/mt8183-gce.h> |
| #include <dt-bindings/power/mt8183-power.h> |
| #include <dt-bindings/memory/mt8183-larb-port.h> |
| |
| dma-controller@14001000 { |
| compatible = "mediatek,mt8183-mdp3-rdma"; |
| reg = <0x14001000 0x1000>; |
| mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x1000 0x1000>; |
| mediatek,gce-events = <CMDQ_EVENT_MDP_RDMA0_SOF>, |
| <CMDQ_EVENT_MDP_RDMA0_EOF>; |
| power-domains = <&spm MT8183_POWER_DOMAIN_DISP>; |
| clocks = <&mmsys CLK_MM_MDP_RDMA0>, |
| <&mmsys CLK_MM_MDP_RSZ1>; |
| iommus = <&iommu>; |
| mboxes = <&gce 20 CMDQ_THR_PRIO_LOWEST>, |
| <&gce 21 CMDQ_THR_PRIO_LOWEST>; |
| #dma-cells = <1>; |
| }; |