xref: /openbmc/linux/Documentation/devicetree/bindings/media/mediatek,vcodec-decoder.yaml (revision 93b9368de87590a4e59f84f96ab0fce7ad686ed7)
19cdd70ceSYunfei Dong# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
29cdd70ceSYunfei Dong
39cdd70ceSYunfei Dong%YAML 1.2
49cdd70ceSYunfei Dong---
59cdd70ceSYunfei Dong$id: http://devicetree.org/schemas/media/mediatek,vcodec-decoder.yaml#
69cdd70ceSYunfei Dong$schema: http://devicetree.org/meta-schemas/core.yaml#
79cdd70ceSYunfei Dong
89cdd70ceSYunfei Dongtitle: Mediatek Video Decode Accelerator
99cdd70ceSYunfei Dong
109cdd70ceSYunfei Dongmaintainers:
119cdd70ceSYunfei Dong  - Yunfei Dong <yunfei.dong@mediatek.com>
129cdd70ceSYunfei Dong
139cdd70ceSYunfei Dongdescription: |+
149cdd70ceSYunfei Dong  Mediatek Video Decode is the video decode hardware present in Mediatek
159cdd70ceSYunfei Dong  SoCs which supports high resolution decoding functionalities.
169cdd70ceSYunfei Dong
179cdd70ceSYunfei Dongproperties:
189cdd70ceSYunfei Dong  compatible:
199cdd70ceSYunfei Dong    enum:
209cdd70ceSYunfei Dong      - mediatek,mt8173-vcodec-dec
219cdd70ceSYunfei Dong      - mediatek,mt8183-vcodec-dec
229cdd70ceSYunfei Dong
239cdd70ceSYunfei Dong  reg:
249cdd70ceSYunfei Dong    maxItems: 12
259cdd70ceSYunfei Dong
269cdd70ceSYunfei Dong  interrupts:
279cdd70ceSYunfei Dong    maxItems: 1
289cdd70ceSYunfei Dong
299cdd70ceSYunfei Dong  clocks:
30*93b9368dSNícolas F. R. A. Prado    minItems: 1
319cdd70ceSYunfei Dong    maxItems: 8
329cdd70ceSYunfei Dong
339cdd70ceSYunfei Dong  clock-names:
34*93b9368dSNícolas F. R. A. Prado    minItems: 1
35*93b9368dSNícolas F. R. A. Prado    maxItems: 8
369cdd70ceSYunfei Dong
379cdd70ceSYunfei Dong  assigned-clocks: true
389cdd70ceSYunfei Dong
399cdd70ceSYunfei Dong  assigned-clock-parents: true
409cdd70ceSYunfei Dong
419cdd70ceSYunfei Dong  assigned-clock-rates: true
429cdd70ceSYunfei Dong
439cdd70ceSYunfei Dong  power-domains:
449cdd70ceSYunfei Dong    maxItems: 1
459cdd70ceSYunfei Dong
469cdd70ceSYunfei Dong  iommus:
479cdd70ceSYunfei Dong    minItems: 1
489cdd70ceSYunfei Dong    maxItems: 32
499cdd70ceSYunfei Dong    description: |
509cdd70ceSYunfei Dong      List of the hardware port in respective IOMMU block for current Socs.
519cdd70ceSYunfei Dong      Refer to bindings/iommu/mediatek,iommu.yaml.
529cdd70ceSYunfei Dong
539cdd70ceSYunfei Dong  mediatek,vpu:
549cdd70ceSYunfei Dong    $ref: /schemas/types.yaml#/definitions/phandle
559cdd70ceSYunfei Dong    description:
569cdd70ceSYunfei Dong      Describes point to vpu.
579cdd70ceSYunfei Dong
589cdd70ceSYunfei Dong  mediatek,scp:
599cdd70ceSYunfei Dong    $ref: /schemas/types.yaml#/definitions/phandle
609cdd70ceSYunfei Dong    description:
619cdd70ceSYunfei Dong      Describes point to scp.
629cdd70ceSYunfei Dong
639cdd70ceSYunfei Dongrequired:
649cdd70ceSYunfei Dong  - compatible
659cdd70ceSYunfei Dong  - reg
669cdd70ceSYunfei Dong  - interrupts
679cdd70ceSYunfei Dong  - clocks
689cdd70ceSYunfei Dong  - clock-names
699cdd70ceSYunfei Dong  - iommus
709cdd70ceSYunfei Dong  - assigned-clocks
719cdd70ceSYunfei Dong  - assigned-clock-parents
729cdd70ceSYunfei Dong
739cdd70ceSYunfei DongallOf:
749cdd70ceSYunfei Dong  - if:
759cdd70ceSYunfei Dong      properties:
769cdd70ceSYunfei Dong        compatible:
779cdd70ceSYunfei Dong          contains:
789cdd70ceSYunfei Dong            enum:
799cdd70ceSYunfei Dong              - mediatek,mt8183-vcodec-dec
809cdd70ceSYunfei Dong
819cdd70ceSYunfei Dong    then:
829cdd70ceSYunfei Dong      required:
839cdd70ceSYunfei Dong        - mediatek,scp
849cdd70ceSYunfei Dong
85*93b9368dSNícolas F. R. A. Prado      properties:
86*93b9368dSNícolas F. R. A. Prado        clocks:
87*93b9368dSNícolas F. R. A. Prado          minItems: 1
88*93b9368dSNícolas F. R. A. Prado          maxItems: 1
89*93b9368dSNícolas F. R. A. Prado
90*93b9368dSNícolas F. R. A. Prado        clock-names:
91*93b9368dSNícolas F. R. A. Prado          items:
92*93b9368dSNícolas F. R. A. Prado            - const: vdec
93*93b9368dSNícolas F. R. A. Prado
949cdd70ceSYunfei Dong  - if:
959cdd70ceSYunfei Dong      properties:
969cdd70ceSYunfei Dong        compatible:
979cdd70ceSYunfei Dong          contains:
989cdd70ceSYunfei Dong            enum:
999cdd70ceSYunfei Dong              - mediatek,mt8173-vcodec-dec
1009cdd70ceSYunfei Dong
1019cdd70ceSYunfei Dong    then:
1029cdd70ceSYunfei Dong      required:
1039cdd70ceSYunfei Dong        - mediatek,vpu
1049cdd70ceSYunfei Dong
105*93b9368dSNícolas F. R. A. Prado      properties:
106*93b9368dSNícolas F. R. A. Prado        clocks:
107*93b9368dSNícolas F. R. A. Prado          minItems: 8
108*93b9368dSNícolas F. R. A. Prado          maxItems: 8
109*93b9368dSNícolas F. R. A. Prado
110*93b9368dSNícolas F. R. A. Prado        clock-names:
111*93b9368dSNícolas F. R. A. Prado          items:
112*93b9368dSNícolas F. R. A. Prado            - const: vcodecpll
113*93b9368dSNícolas F. R. A. Prado            - const: univpll_d2
114*93b9368dSNícolas F. R. A. Prado            - const: clk_cci400_sel
115*93b9368dSNícolas F. R. A. Prado            - const: vdec_sel
116*93b9368dSNícolas F. R. A. Prado            - const: vdecpll
117*93b9368dSNícolas F. R. A. Prado            - const: vencpll
118*93b9368dSNícolas F. R. A. Prado            - const: venc_lt_sel
119*93b9368dSNícolas F. R. A. Prado            - const: vdec_bus_clk_src
120*93b9368dSNícolas F. R. A. Prado
1219cdd70ceSYunfei DongadditionalProperties: false
1229cdd70ceSYunfei Dong
1239cdd70ceSYunfei Dongexamples:
1249cdd70ceSYunfei Dong  - |
1259cdd70ceSYunfei Dong    #include <dt-bindings/interrupt-controller/arm-gic.h>
1269cdd70ceSYunfei Dong    #include <dt-bindings/clock/mt8173-clk.h>
1279cdd70ceSYunfei Dong    #include <dt-bindings/memory/mt8173-larb-port.h>
1289cdd70ceSYunfei Dong    #include <dt-bindings/interrupt-controller/irq.h>
1299cdd70ceSYunfei Dong    #include <dt-bindings/power/mt8173-power.h>
1309cdd70ceSYunfei Dong
1319cdd70ceSYunfei Dong    vcodec_dec: vcodec@16000000 {
1329cdd70ceSYunfei Dong      compatible = "mediatek,mt8173-vcodec-dec";
1339cdd70ceSYunfei Dong      reg = <0x16000000 0x100>,   /*VDEC_SYS*/
1349cdd70ceSYunfei Dong          <0x16020000 0x1000>,  /*VDEC_MISC*/
1359cdd70ceSYunfei Dong          <0x16021000 0x800>,   /*VDEC_LD*/
1369cdd70ceSYunfei Dong          <0x16021800 0x800>,   /*VDEC_TOP*/
1379cdd70ceSYunfei Dong          <0x16022000 0x1000>,  /*VDEC_CM*/
1389cdd70ceSYunfei Dong          <0x16023000 0x1000>,  /*VDEC_AD*/
1399cdd70ceSYunfei Dong          <0x16024000 0x1000>,  /*VDEC_AV*/
1409cdd70ceSYunfei Dong          <0x16025000 0x1000>,  /*VDEC_PP*/
1419cdd70ceSYunfei Dong          <0x16026800 0x800>,   /*VP8_VD*/
1429cdd70ceSYunfei Dong          <0x16027000 0x800>,   /*VP6_VD*/
1439cdd70ceSYunfei Dong          <0x16027800 0x800>,   /*VP8_VL*/
1449cdd70ceSYunfei Dong          <0x16028400 0x400>;   /*VP9_VD*/
1459cdd70ceSYunfei Dong      interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
1469cdd70ceSYunfei Dong      iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
1479cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_PP_EXT>,
1489cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>,
1499cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_PRED_RD_EXT>,
1509cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>,
1519cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_UFO_EXT>,
1529cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_VLD_EXT>,
1539cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_VLD2_EXT>;
1549cdd70ceSYunfei Dong      mediatek,vpu = <&vpu>;
1559cdd70ceSYunfei Dong      power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
1569cdd70ceSYunfei Dong      clocks = <&apmixedsys CLK_APMIXED_VCODECPLL>,
1579cdd70ceSYunfei Dong             <&topckgen CLK_TOP_UNIVPLL_D2>,
1589cdd70ceSYunfei Dong             <&topckgen CLK_TOP_CCI400_SEL>,
1599cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VDEC_SEL>,
1609cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VCODECPLL>,
1619cdd70ceSYunfei Dong             <&apmixedsys CLK_APMIXED_VENCPLL>,
1629cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VENC_LT_SEL>,
1639cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VCODECPLL_370P5>;
1649cdd70ceSYunfei Dong      clock-names = "vcodecpll",
1659cdd70ceSYunfei Dong                  "univpll_d2",
1669cdd70ceSYunfei Dong                  "clk_cci400_sel",
1679cdd70ceSYunfei Dong                  "vdec_sel",
1689cdd70ceSYunfei Dong                  "vdecpll",
1699cdd70ceSYunfei Dong                  "vencpll",
1709cdd70ceSYunfei Dong                  "venc_lt_sel",
1719cdd70ceSYunfei Dong                  "vdec_bus_clk_src";
1729cdd70ceSYunfei Dong      assigned-clocks = <&topckgen CLK_TOP_VENC_LT_SEL>,
1739cdd70ceSYunfei Dong                      <&topckgen CLK_TOP_CCI400_SEL>,
1749cdd70ceSYunfei Dong                      <&topckgen CLK_TOP_VDEC_SEL>,
1759cdd70ceSYunfei Dong                      <&apmixedsys CLK_APMIXED_VCODECPLL>,
1769cdd70ceSYunfei Dong                      <&apmixedsys CLK_APMIXED_VENCPLL>;
1779cdd70ceSYunfei Dong      assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL_370P5>,
1789cdd70ceSYunfei Dong                             <&topckgen CLK_TOP_UNIVPLL_D2>,
1799cdd70ceSYunfei Dong                             <&topckgen CLK_TOP_VCODECPLL>;
1809cdd70ceSYunfei Dong      assigned-clock-rates = <0>, <0>, <0>, <1482000000>, <800000000>;
1819cdd70ceSYunfei Dong    };
182