1*9cdd70ceSYunfei Dong# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*9cdd70ceSYunfei Dong 3*9cdd70ceSYunfei Dong%YAML 1.2 4*9cdd70ceSYunfei Dong--- 5*9cdd70ceSYunfei Dong$id: http://devicetree.org/schemas/media/mediatek,vcodec-decoder.yaml# 6*9cdd70ceSYunfei Dong$schema: http://devicetree.org/meta-schemas/core.yaml# 7*9cdd70ceSYunfei Dong 8*9cdd70ceSYunfei Dongtitle: Mediatek Video Decode Accelerator 9*9cdd70ceSYunfei Dong 10*9cdd70ceSYunfei Dongmaintainers: 11*9cdd70ceSYunfei Dong - Yunfei Dong <yunfei.dong@mediatek.com> 12*9cdd70ceSYunfei Dong 13*9cdd70ceSYunfei Dongdescription: |+ 14*9cdd70ceSYunfei Dong Mediatek Video Decode is the video decode hardware present in Mediatek 15*9cdd70ceSYunfei Dong SoCs which supports high resolution decoding functionalities. 16*9cdd70ceSYunfei Dong 17*9cdd70ceSYunfei Dongproperties: 18*9cdd70ceSYunfei Dong compatible: 19*9cdd70ceSYunfei Dong enum: 20*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-dec 21*9cdd70ceSYunfei Dong - mediatek,mt8183-vcodec-dec 22*9cdd70ceSYunfei Dong 23*9cdd70ceSYunfei Dong reg: 24*9cdd70ceSYunfei Dong maxItems: 12 25*9cdd70ceSYunfei Dong 26*9cdd70ceSYunfei Dong interrupts: 27*9cdd70ceSYunfei Dong maxItems: 1 28*9cdd70ceSYunfei Dong 29*9cdd70ceSYunfei Dong clocks: 30*9cdd70ceSYunfei Dong maxItems: 8 31*9cdd70ceSYunfei Dong 32*9cdd70ceSYunfei Dong clock-names: 33*9cdd70ceSYunfei Dong items: 34*9cdd70ceSYunfei Dong - const: vcodecpll 35*9cdd70ceSYunfei Dong - const: univpll_d2 36*9cdd70ceSYunfei Dong - const: clk_cci400_sel 37*9cdd70ceSYunfei Dong - const: vdec_sel 38*9cdd70ceSYunfei Dong - const: vdecpll 39*9cdd70ceSYunfei Dong - const: vencpll 40*9cdd70ceSYunfei Dong - const: venc_lt_sel 41*9cdd70ceSYunfei Dong - const: vdec_bus_clk_src 42*9cdd70ceSYunfei Dong 43*9cdd70ceSYunfei Dong assigned-clocks: true 44*9cdd70ceSYunfei Dong 45*9cdd70ceSYunfei Dong assigned-clock-parents: true 46*9cdd70ceSYunfei Dong 47*9cdd70ceSYunfei Dong assigned-clock-rates: true 48*9cdd70ceSYunfei Dong 49*9cdd70ceSYunfei Dong power-domains: 50*9cdd70ceSYunfei Dong maxItems: 1 51*9cdd70ceSYunfei Dong 52*9cdd70ceSYunfei Dong iommus: 53*9cdd70ceSYunfei Dong minItems: 1 54*9cdd70ceSYunfei Dong maxItems: 32 55*9cdd70ceSYunfei Dong description: | 56*9cdd70ceSYunfei Dong List of the hardware port in respective IOMMU block for current Socs. 57*9cdd70ceSYunfei Dong Refer to bindings/iommu/mediatek,iommu.yaml. 58*9cdd70ceSYunfei Dong 59*9cdd70ceSYunfei Dong dma-ranges: 60*9cdd70ceSYunfei Dong maxItems: 1 61*9cdd70ceSYunfei Dong description: | 62*9cdd70ceSYunfei Dong Describes the physical address space of IOMMU maps to memory. 63*9cdd70ceSYunfei Dong 64*9cdd70ceSYunfei Dong mediatek,larb: 65*9cdd70ceSYunfei Dong $ref: /schemas/types.yaml#/definitions/phandle 66*9cdd70ceSYunfei Dong maxItems: 1 67*9cdd70ceSYunfei Dong description: | 68*9cdd70ceSYunfei Dong Must contain the local arbiters in the current Socs. 69*9cdd70ceSYunfei Dong 70*9cdd70ceSYunfei Dong mediatek,vpu: 71*9cdd70ceSYunfei Dong $ref: /schemas/types.yaml#/definitions/phandle 72*9cdd70ceSYunfei Dong maxItems: 1 73*9cdd70ceSYunfei Dong description: 74*9cdd70ceSYunfei Dong Describes point to vpu. 75*9cdd70ceSYunfei Dong 76*9cdd70ceSYunfei Dong mediatek,scp: 77*9cdd70ceSYunfei Dong $ref: /schemas/types.yaml#/definitions/phandle 78*9cdd70ceSYunfei Dong maxItems: 1 79*9cdd70ceSYunfei Dong description: 80*9cdd70ceSYunfei Dong Describes point to scp. 81*9cdd70ceSYunfei Dong 82*9cdd70ceSYunfei Dongrequired: 83*9cdd70ceSYunfei Dong - compatible 84*9cdd70ceSYunfei Dong - reg 85*9cdd70ceSYunfei Dong - interrupts 86*9cdd70ceSYunfei Dong - clocks 87*9cdd70ceSYunfei Dong - clock-names 88*9cdd70ceSYunfei Dong - iommus 89*9cdd70ceSYunfei Dong - assigned-clocks 90*9cdd70ceSYunfei Dong - assigned-clock-parents 91*9cdd70ceSYunfei Dong 92*9cdd70ceSYunfei DongallOf: 93*9cdd70ceSYunfei Dong - if: 94*9cdd70ceSYunfei Dong properties: 95*9cdd70ceSYunfei Dong compatible: 96*9cdd70ceSYunfei Dong contains: 97*9cdd70ceSYunfei Dong enum: 98*9cdd70ceSYunfei Dong - mediatek,mt8183-vcodec-dec 99*9cdd70ceSYunfei Dong 100*9cdd70ceSYunfei Dong then: 101*9cdd70ceSYunfei Dong required: 102*9cdd70ceSYunfei Dong - mediatek,scp 103*9cdd70ceSYunfei Dong 104*9cdd70ceSYunfei Dong - if: 105*9cdd70ceSYunfei Dong properties: 106*9cdd70ceSYunfei Dong compatible: 107*9cdd70ceSYunfei Dong contains: 108*9cdd70ceSYunfei Dong enum: 109*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-dec 110*9cdd70ceSYunfei Dong 111*9cdd70ceSYunfei Dong then: 112*9cdd70ceSYunfei Dong required: 113*9cdd70ceSYunfei Dong - mediatek,vpu 114*9cdd70ceSYunfei Dong 115*9cdd70ceSYunfei DongadditionalProperties: false 116*9cdd70ceSYunfei Dong 117*9cdd70ceSYunfei Dongexamples: 118*9cdd70ceSYunfei Dong - | 119*9cdd70ceSYunfei Dong #include <dt-bindings/interrupt-controller/arm-gic.h> 120*9cdd70ceSYunfei Dong #include <dt-bindings/clock/mt8173-clk.h> 121*9cdd70ceSYunfei Dong #include <dt-bindings/memory/mt8173-larb-port.h> 122*9cdd70ceSYunfei Dong #include <dt-bindings/interrupt-controller/irq.h> 123*9cdd70ceSYunfei Dong #include <dt-bindings/power/mt8173-power.h> 124*9cdd70ceSYunfei Dong 125*9cdd70ceSYunfei Dong vcodec_dec: vcodec@16000000 { 126*9cdd70ceSYunfei Dong compatible = "mediatek,mt8173-vcodec-dec"; 127*9cdd70ceSYunfei Dong reg = <0x16000000 0x100>, /*VDEC_SYS*/ 128*9cdd70ceSYunfei Dong <0x16020000 0x1000>, /*VDEC_MISC*/ 129*9cdd70ceSYunfei Dong <0x16021000 0x800>, /*VDEC_LD*/ 130*9cdd70ceSYunfei Dong <0x16021800 0x800>, /*VDEC_TOP*/ 131*9cdd70ceSYunfei Dong <0x16022000 0x1000>, /*VDEC_CM*/ 132*9cdd70ceSYunfei Dong <0x16023000 0x1000>, /*VDEC_AD*/ 133*9cdd70ceSYunfei Dong <0x16024000 0x1000>, /*VDEC_AV*/ 134*9cdd70ceSYunfei Dong <0x16025000 0x1000>, /*VDEC_PP*/ 135*9cdd70ceSYunfei Dong <0x16026800 0x800>, /*VP8_VD*/ 136*9cdd70ceSYunfei Dong <0x16027000 0x800>, /*VP6_VD*/ 137*9cdd70ceSYunfei Dong <0x16027800 0x800>, /*VP8_VL*/ 138*9cdd70ceSYunfei Dong <0x16028400 0x400>; /*VP9_VD*/ 139*9cdd70ceSYunfei Dong interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>; 140*9cdd70ceSYunfei Dong mediatek,larb = <&larb1>; 141*9cdd70ceSYunfei Dong iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>, 142*9cdd70ceSYunfei Dong <&iommu M4U_PORT_HW_VDEC_PP_EXT>, 143*9cdd70ceSYunfei Dong <&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>, 144*9cdd70ceSYunfei Dong <&iommu M4U_PORT_HW_VDEC_PRED_RD_EXT>, 145*9cdd70ceSYunfei Dong <&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>, 146*9cdd70ceSYunfei Dong <&iommu M4U_PORT_HW_VDEC_UFO_EXT>, 147*9cdd70ceSYunfei Dong <&iommu M4U_PORT_HW_VDEC_VLD_EXT>, 148*9cdd70ceSYunfei Dong <&iommu M4U_PORT_HW_VDEC_VLD2_EXT>; 149*9cdd70ceSYunfei Dong mediatek,vpu = <&vpu>; 150*9cdd70ceSYunfei Dong power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>; 151*9cdd70ceSYunfei Dong clocks = <&apmixedsys CLK_APMIXED_VCODECPLL>, 152*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_UNIVPLL_D2>, 153*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_CCI400_SEL>, 154*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_VDEC_SEL>, 155*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_VCODECPLL>, 156*9cdd70ceSYunfei Dong <&apmixedsys CLK_APMIXED_VENCPLL>, 157*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_VENC_LT_SEL>, 158*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_VCODECPLL_370P5>; 159*9cdd70ceSYunfei Dong clock-names = "vcodecpll", 160*9cdd70ceSYunfei Dong "univpll_d2", 161*9cdd70ceSYunfei Dong "clk_cci400_sel", 162*9cdd70ceSYunfei Dong "vdec_sel", 163*9cdd70ceSYunfei Dong "vdecpll", 164*9cdd70ceSYunfei Dong "vencpll", 165*9cdd70ceSYunfei Dong "venc_lt_sel", 166*9cdd70ceSYunfei Dong "vdec_bus_clk_src"; 167*9cdd70ceSYunfei Dong assigned-clocks = <&topckgen CLK_TOP_VENC_LT_SEL>, 168*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_CCI400_SEL>, 169*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_VDEC_SEL>, 170*9cdd70ceSYunfei Dong <&apmixedsys CLK_APMIXED_VCODECPLL>, 171*9cdd70ceSYunfei Dong <&apmixedsys CLK_APMIXED_VENCPLL>; 172*9cdd70ceSYunfei Dong assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL_370P5>, 173*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_UNIVPLL_D2>, 174*9cdd70ceSYunfei Dong <&topckgen CLK_TOP_VCODECPLL>; 175*9cdd70ceSYunfei Dong assigned-clock-rates = <0>, <0>, <0>, <1482000000>, <800000000>; 176*9cdd70ceSYunfei Dong }; 177