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:
24*5ee1b02aSNícolas F. R. A. Prado    minItems: 11
25*5ee1b02aSNícolas F. R. A. Prado    maxItems: 11
26*5ee1b02aSNícolas F. R. A. Prado
27*5ee1b02aSNícolas F. R. A. Prado  reg-names:
28*5ee1b02aSNícolas F. R. A. Prado    items:
29*5ee1b02aSNícolas F. R. A. Prado      - const: misc
30*5ee1b02aSNícolas F. R. A. Prado      - const: ld
31*5ee1b02aSNícolas F. R. A. Prado      - const: top
32*5ee1b02aSNícolas F. R. A. Prado      - const: cm
33*5ee1b02aSNícolas F. R. A. Prado      - const: ad
34*5ee1b02aSNícolas F. R. A. Prado      - const: av
35*5ee1b02aSNícolas F. R. A. Prado      - const: pp
36*5ee1b02aSNícolas F. R. A. Prado      - const: hwd
37*5ee1b02aSNícolas F. R. A. Prado      - const: hwq
38*5ee1b02aSNícolas F. R. A. Prado      - const: hwb
39*5ee1b02aSNícolas F. R. A. Prado      - const: hwg
409cdd70ceSYunfei Dong
419cdd70ceSYunfei Dong  interrupts:
429cdd70ceSYunfei Dong    maxItems: 1
439cdd70ceSYunfei Dong
449cdd70ceSYunfei Dong  clocks:
4593b9368dSNícolas F. R. A. Prado    minItems: 1
469cdd70ceSYunfei Dong    maxItems: 8
479cdd70ceSYunfei Dong
489cdd70ceSYunfei Dong  clock-names:
4993b9368dSNícolas F. R. A. Prado    minItems: 1
5093b9368dSNícolas F. R. A. Prado    maxItems: 8
519cdd70ceSYunfei Dong
529cdd70ceSYunfei Dong  assigned-clocks: true
539cdd70ceSYunfei Dong
549cdd70ceSYunfei Dong  assigned-clock-parents: true
559cdd70ceSYunfei Dong
569cdd70ceSYunfei Dong  assigned-clock-rates: true
579cdd70ceSYunfei Dong
589cdd70ceSYunfei Dong  power-domains:
599cdd70ceSYunfei Dong    maxItems: 1
609cdd70ceSYunfei Dong
619cdd70ceSYunfei Dong  iommus:
629cdd70ceSYunfei Dong    minItems: 1
639cdd70ceSYunfei Dong    maxItems: 32
649cdd70ceSYunfei Dong    description: |
659cdd70ceSYunfei Dong      List of the hardware port in respective IOMMU block for current Socs.
669cdd70ceSYunfei Dong      Refer to bindings/iommu/mediatek,iommu.yaml.
679cdd70ceSYunfei Dong
689cdd70ceSYunfei Dong  mediatek,vpu:
699cdd70ceSYunfei Dong    $ref: /schemas/types.yaml#/definitions/phandle
709cdd70ceSYunfei Dong    description:
719cdd70ceSYunfei Dong      Describes point to vpu.
729cdd70ceSYunfei Dong
739cdd70ceSYunfei Dong  mediatek,scp:
749cdd70ceSYunfei Dong    $ref: /schemas/types.yaml#/definitions/phandle
759cdd70ceSYunfei Dong    description:
769cdd70ceSYunfei Dong      Describes point to scp.
779cdd70ceSYunfei Dong
78*5ee1b02aSNícolas F. R. A. Prado  mediatek,vdecsys:
79*5ee1b02aSNícolas F. R. A. Prado    $ref: /schemas/types.yaml#/definitions/phandle
80*5ee1b02aSNícolas F. R. A. Prado    description: Phandle to the vdecsys syscon node.
81*5ee1b02aSNícolas F. R. A. Prado
829cdd70ceSYunfei Dongrequired:
839cdd70ceSYunfei Dong  - compatible
849cdd70ceSYunfei Dong  - reg
859cdd70ceSYunfei Dong  - interrupts
869cdd70ceSYunfei Dong  - clocks
879cdd70ceSYunfei Dong  - clock-names
889cdd70ceSYunfei Dong  - iommus
89*5ee1b02aSNícolas F. R. A. Prado  - mediatek,vdecsys
909cdd70ceSYunfei Dong
919cdd70ceSYunfei DongallOf:
929cdd70ceSYunfei Dong  - if:
939cdd70ceSYunfei Dong      properties:
949cdd70ceSYunfei Dong        compatible:
959cdd70ceSYunfei Dong          contains:
969cdd70ceSYunfei Dong            enum:
979cdd70ceSYunfei Dong              - mediatek,mt8183-vcodec-dec
989cdd70ceSYunfei Dong
999cdd70ceSYunfei Dong    then:
1009cdd70ceSYunfei Dong      required:
1019cdd70ceSYunfei Dong        - mediatek,scp
1029cdd70ceSYunfei Dong
10393b9368dSNícolas F. R. A. Prado      properties:
10493b9368dSNícolas F. R. A. Prado        clocks:
10593b9368dSNícolas F. R. A. Prado          minItems: 1
10693b9368dSNícolas F. R. A. Prado          maxItems: 1
10793b9368dSNícolas F. R. A. Prado
10893b9368dSNícolas F. R. A. Prado        clock-names:
10993b9368dSNícolas F. R. A. Prado          items:
11093b9368dSNícolas F. R. A. Prado            - const: vdec
11193b9368dSNícolas F. R. A. Prado
1129cdd70ceSYunfei Dong  - if:
1139cdd70ceSYunfei Dong      properties:
1149cdd70ceSYunfei Dong        compatible:
1159cdd70ceSYunfei Dong          contains:
1169cdd70ceSYunfei Dong            enum:
1179cdd70ceSYunfei Dong              - mediatek,mt8173-vcodec-dec
1189cdd70ceSYunfei Dong
1199cdd70ceSYunfei Dong    then:
1209cdd70ceSYunfei Dong      required:
1219cdd70ceSYunfei Dong        - mediatek,vpu
1229cdd70ceSYunfei Dong
12393b9368dSNícolas F. R. A. Prado      properties:
12493b9368dSNícolas F. R. A. Prado        clocks:
12593b9368dSNícolas F. R. A. Prado          minItems: 8
12693b9368dSNícolas F. R. A. Prado          maxItems: 8
12793b9368dSNícolas F. R. A. Prado
12893b9368dSNícolas F. R. A. Prado        clock-names:
12993b9368dSNícolas F. R. A. Prado          items:
13093b9368dSNícolas F. R. A. Prado            - const: vcodecpll
13193b9368dSNícolas F. R. A. Prado            - const: univpll_d2
13293b9368dSNícolas F. R. A. Prado            - const: clk_cci400_sel
13393b9368dSNícolas F. R. A. Prado            - const: vdec_sel
13493b9368dSNícolas F. R. A. Prado            - const: vdecpll
13593b9368dSNícolas F. R. A. Prado            - const: vencpll
13693b9368dSNícolas F. R. A. Prado            - const: venc_lt_sel
13793b9368dSNícolas F. R. A. Prado            - const: vdec_bus_clk_src
13893b9368dSNícolas F. R. A. Prado
1399cdd70ceSYunfei DongadditionalProperties: false
1409cdd70ceSYunfei Dong
1419cdd70ceSYunfei Dongexamples:
1429cdd70ceSYunfei Dong  - |
1439cdd70ceSYunfei Dong    #include <dt-bindings/interrupt-controller/arm-gic.h>
1449cdd70ceSYunfei Dong    #include <dt-bindings/clock/mt8173-clk.h>
1459cdd70ceSYunfei Dong    #include <dt-bindings/memory/mt8173-larb-port.h>
1469cdd70ceSYunfei Dong    #include <dt-bindings/interrupt-controller/irq.h>
1479cdd70ceSYunfei Dong    #include <dt-bindings/power/mt8173-power.h>
1489cdd70ceSYunfei Dong
149*5ee1b02aSNícolas F. R. A. Prado    vcodec_dec: vcodec@16020000 {
1509cdd70ceSYunfei Dong      compatible = "mediatek,mt8173-vcodec-dec";
151*5ee1b02aSNícolas F. R. A. Prado      reg = <0x16020000 0x1000>,  /*VDEC_MISC*/
1529cdd70ceSYunfei Dong          <0x16021000 0x800>,   /*VDEC_LD*/
1539cdd70ceSYunfei Dong          <0x16021800 0x800>,   /*VDEC_TOP*/
1549cdd70ceSYunfei Dong          <0x16022000 0x1000>,  /*VDEC_CM*/
1559cdd70ceSYunfei Dong          <0x16023000 0x1000>,  /*VDEC_AD*/
1569cdd70ceSYunfei Dong          <0x16024000 0x1000>,  /*VDEC_AV*/
1579cdd70ceSYunfei Dong          <0x16025000 0x1000>,  /*VDEC_PP*/
1589cdd70ceSYunfei Dong          <0x16026800 0x800>,   /*VP8_VD*/
1599cdd70ceSYunfei Dong          <0x16027000 0x800>,   /*VP6_VD*/
1609cdd70ceSYunfei Dong          <0x16027800 0x800>,   /*VP8_VL*/
1619cdd70ceSYunfei Dong          <0x16028400 0x400>;   /*VP9_VD*/
1629cdd70ceSYunfei Dong      interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
1639cdd70ceSYunfei Dong      iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
1649cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_PP_EXT>,
1659cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>,
1669cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_PRED_RD_EXT>,
1679cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>,
1689cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_UFO_EXT>,
1699cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_VLD_EXT>,
1709cdd70ceSYunfei Dong             <&iommu M4U_PORT_HW_VDEC_VLD2_EXT>;
1719cdd70ceSYunfei Dong      mediatek,vpu = <&vpu>;
172*5ee1b02aSNícolas F. R. A. Prado      mediatek,vdecsys = <&vdecsys>;
1739cdd70ceSYunfei Dong      power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
1749cdd70ceSYunfei Dong      clocks = <&apmixedsys CLK_APMIXED_VCODECPLL>,
1759cdd70ceSYunfei Dong             <&topckgen CLK_TOP_UNIVPLL_D2>,
1769cdd70ceSYunfei Dong             <&topckgen CLK_TOP_CCI400_SEL>,
1779cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VDEC_SEL>,
1789cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VCODECPLL>,
1799cdd70ceSYunfei Dong             <&apmixedsys CLK_APMIXED_VENCPLL>,
1809cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VENC_LT_SEL>,
1819cdd70ceSYunfei Dong             <&topckgen CLK_TOP_VCODECPLL_370P5>;
1829cdd70ceSYunfei Dong      clock-names = "vcodecpll",
1839cdd70ceSYunfei Dong                  "univpll_d2",
1849cdd70ceSYunfei Dong                  "clk_cci400_sel",
1859cdd70ceSYunfei Dong                  "vdec_sel",
1869cdd70ceSYunfei Dong                  "vdecpll",
1879cdd70ceSYunfei Dong                  "vencpll",
1889cdd70ceSYunfei Dong                  "venc_lt_sel",
1899cdd70ceSYunfei Dong                  "vdec_bus_clk_src";
1909cdd70ceSYunfei Dong      assigned-clocks = <&topckgen CLK_TOP_VENC_LT_SEL>,
1919cdd70ceSYunfei Dong                      <&topckgen CLK_TOP_CCI400_SEL>,
1929cdd70ceSYunfei Dong                      <&topckgen CLK_TOP_VDEC_SEL>,
1939cdd70ceSYunfei Dong                      <&apmixedsys CLK_APMIXED_VCODECPLL>,
1949cdd70ceSYunfei Dong                      <&apmixedsys CLK_APMIXED_VENCPLL>;
1959cdd70ceSYunfei Dong      assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL_370P5>,
1969cdd70ceSYunfei Dong                             <&topckgen CLK_TOP_UNIVPLL_D2>,
1979cdd70ceSYunfei Dong                             <&topckgen CLK_TOP_VCODECPLL>;
1989cdd70ceSYunfei Dong      assigned-clock-rates = <0>, <0>, <0>, <1482000000>, <800000000>;
1999cdd70ceSYunfei Dong    };
200