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-encoder.yaml# 6*9cdd70ceSYunfei Dong$schema: http://devicetree.org/meta-schemas/core.yaml# 7*9cdd70ceSYunfei Dong 8*9cdd70ceSYunfei Dongtitle: Mediatek Video Encode 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 Encode is the video encode hardware present in Mediatek 15*9cdd70ceSYunfei Dong SoCs which supports high resolution encoding functionalities. 16*9cdd70ceSYunfei Dong 17*9cdd70ceSYunfei Dongproperties: 18*9cdd70ceSYunfei Dong compatible: 19*9cdd70ceSYunfei Dong enum: 20*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-enc-vp8 21*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-enc 22*9cdd70ceSYunfei Dong - mediatek,mt8183-vcodec-enc 23*9cdd70ceSYunfei Dong - mediatek,mt8192-vcodec-enc 24*9cdd70ceSYunfei Dong - mediatek,mt8195-vcodec-enc 25*9cdd70ceSYunfei Dong 26*9cdd70ceSYunfei Dong reg: 27*9cdd70ceSYunfei Dong maxItems: 1 28*9cdd70ceSYunfei Dong 29*9cdd70ceSYunfei Dong interrupts: 30*9cdd70ceSYunfei Dong maxItems: 1 31*9cdd70ceSYunfei Dong 32*9cdd70ceSYunfei Dong clocks: 33*9cdd70ceSYunfei Dong minItems: 1 34*9cdd70ceSYunfei Dong maxItems: 5 35*9cdd70ceSYunfei Dong 36*9cdd70ceSYunfei Dong clock-names: 37*9cdd70ceSYunfei Dong minItems: 1 38*9cdd70ceSYunfei Dong maxItems: 5 39*9cdd70ceSYunfei Dong 40*9cdd70ceSYunfei Dong assigned-clocks: true 41*9cdd70ceSYunfei Dong 42*9cdd70ceSYunfei Dong assigned-clock-parents: true 43*9cdd70ceSYunfei Dong 44*9cdd70ceSYunfei Dong iommus: 45*9cdd70ceSYunfei Dong minItems: 1 46*9cdd70ceSYunfei Dong maxItems: 32 47*9cdd70ceSYunfei Dong description: | 48*9cdd70ceSYunfei Dong List of the hardware port in respective IOMMU block for current Socs. 49*9cdd70ceSYunfei Dong Refer to bindings/iommu/mediatek,iommu.yaml. 50*9cdd70ceSYunfei Dong 51*9cdd70ceSYunfei Dong dma-ranges: 52*9cdd70ceSYunfei Dong maxItems: 1 53*9cdd70ceSYunfei Dong description: | 54*9cdd70ceSYunfei Dong Describes the physical address space of IOMMU maps to memory. 55*9cdd70ceSYunfei Dong 56*9cdd70ceSYunfei Dong mediatek,larb: 57*9cdd70ceSYunfei Dong $ref: /schemas/types.yaml#/definitions/phandle 58*9cdd70ceSYunfei Dong maxItems: 1 59*9cdd70ceSYunfei Dong description: | 60*9cdd70ceSYunfei Dong Must contain the local arbiters in the current Socs. 61*9cdd70ceSYunfei Dong 62*9cdd70ceSYunfei Dong mediatek,vpu: 63*9cdd70ceSYunfei Dong $ref: /schemas/types.yaml#/definitions/phandle 64*9cdd70ceSYunfei Dong maxItems: 1 65*9cdd70ceSYunfei Dong description: 66*9cdd70ceSYunfei Dong Describes point to vpu. 67*9cdd70ceSYunfei Dong 68*9cdd70ceSYunfei Dong mediatek,scp: 69*9cdd70ceSYunfei Dong $ref: /schemas/types.yaml#/definitions/phandle 70*9cdd70ceSYunfei Dong maxItems: 1 71*9cdd70ceSYunfei Dong description: 72*9cdd70ceSYunfei Dong Describes point to scp. 73*9cdd70ceSYunfei Dong 74*9cdd70ceSYunfei Dongrequired: 75*9cdd70ceSYunfei Dong - compatible 76*9cdd70ceSYunfei Dong - reg 77*9cdd70ceSYunfei Dong - interrupts 78*9cdd70ceSYunfei Dong - clocks 79*9cdd70ceSYunfei Dong - clock-names 80*9cdd70ceSYunfei Dong - iommus 81*9cdd70ceSYunfei Dong - assigned-clocks 82*9cdd70ceSYunfei Dong - assigned-clock-parents 83*9cdd70ceSYunfei Dong 84*9cdd70ceSYunfei DongallOf: 85*9cdd70ceSYunfei Dong - if: 86*9cdd70ceSYunfei Dong properties: 87*9cdd70ceSYunfei Dong compatible: 88*9cdd70ceSYunfei Dong contains: 89*9cdd70ceSYunfei Dong enum: 90*9cdd70ceSYunfei Dong - mediatek,mt8183-vcodec-enc 91*9cdd70ceSYunfei Dong - mediatek,mt8192-vcodec-enc 92*9cdd70ceSYunfei Dong 93*9cdd70ceSYunfei Dong then: 94*9cdd70ceSYunfei Dong required: 95*9cdd70ceSYunfei Dong - mediatek,scp 96*9cdd70ceSYunfei Dong 97*9cdd70ceSYunfei Dong - if: 98*9cdd70ceSYunfei Dong properties: 99*9cdd70ceSYunfei Dong compatible: 100*9cdd70ceSYunfei Dong contains: 101*9cdd70ceSYunfei Dong enum: 102*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-enc-vp8 103*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-enc 104*9cdd70ceSYunfei Dong 105*9cdd70ceSYunfei Dong then: 106*9cdd70ceSYunfei Dong required: 107*9cdd70ceSYunfei Dong - mediatek,vpu 108*9cdd70ceSYunfei Dong 109*9cdd70ceSYunfei Dong - if: 110*9cdd70ceSYunfei Dong properties: 111*9cdd70ceSYunfei Dong compatible: 112*9cdd70ceSYunfei Dong enum: 113*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-enc 114*9cdd70ceSYunfei Dong - mediatek,mt8192-vcodec-enc 115*9cdd70ceSYunfei Dong - mediatek,mt8173-vcodec-enc 116*9cdd70ceSYunfei Dong 117*9cdd70ceSYunfei Dong then: 118*9cdd70ceSYunfei Dong properties: 119*9cdd70ceSYunfei Dong clock: 120*9cdd70ceSYunfei Dong items: 121*9cdd70ceSYunfei Dong minItems: 1 122*9cdd70ceSYunfei Dong maxItems: 1 123*9cdd70ceSYunfei Dong clock-names: 124*9cdd70ceSYunfei Dong items: 125*9cdd70ceSYunfei Dong - const: venc_sel 126*9cdd70ceSYunfei Dong else: # for vp8 hw decoder 127*9cdd70ceSYunfei Dong properties: 128*9cdd70ceSYunfei Dong clock: 129*9cdd70ceSYunfei Dong items: 130*9cdd70ceSYunfei Dong minItems: 1 131*9cdd70ceSYunfei Dong maxItems: 1 132*9cdd70ceSYunfei Dong clock-names: 133*9cdd70ceSYunfei Dong items: 134*9cdd70ceSYunfei Dong - const: venc_lt_sel 135*9cdd70ceSYunfei Dong 136*9cdd70ceSYunfei DongadditionalProperties: false 137*9cdd70ceSYunfei Dong 138*9cdd70ceSYunfei Dongexamples: 139*9cdd70ceSYunfei Dong - | 140*9cdd70ceSYunfei Dong #include <dt-bindings/interrupt-controller/arm-gic.h> 141*9cdd70ceSYunfei Dong #include <dt-bindings/clock/mt8173-clk.h> 142*9cdd70ceSYunfei Dong #include <dt-bindings/memory/mt8173-larb-port.h> 143*9cdd70ceSYunfei Dong #include <dt-bindings/interrupt-controller/irq.h> 144*9cdd70ceSYunfei Dong 145*9cdd70ceSYunfei Dong vcodec_enc_avc: vcodec@18002000 { 146*9cdd70ceSYunfei Dong compatible = "mediatek,mt8173-vcodec-enc"; 147*9cdd70ceSYunfei Dong reg = <0x18002000 0x1000>; 148*9cdd70ceSYunfei Dong interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>; 149*9cdd70ceSYunfei Dong iommus = <&iommu M4U_PORT_VENC_RCPU>, 150*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_REC>, 151*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_BSDMA>, 152*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_SV_COMV>, 153*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_RD_COMV>, 154*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_CUR_LUMA>, 155*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_CUR_CHROMA>, 156*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_REF_LUMA>, 157*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_REF_CHROMA>, 158*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_NBM_RDMA>, 159*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_NBM_WDMA>; 160*9cdd70ceSYunfei Dong mediatek,larb = <&larb3>; 161*9cdd70ceSYunfei Dong mediatek,vpu = <&vpu>; 162*9cdd70ceSYunfei Dong clocks = <&topckgen CLK_TOP_VENC_SEL>; 163*9cdd70ceSYunfei Dong clock-names = "venc_sel"; 164*9cdd70ceSYunfei Dong assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>; 165*9cdd70ceSYunfei Dong assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL>; 166*9cdd70ceSYunfei Dong }; 167*9cdd70ceSYunfei Dong 168*9cdd70ceSYunfei Dong vcodec_enc_vp8: vcodec@19002000 { 169*9cdd70ceSYunfei Dong compatible = "mediatek,mt8173-vcodec-enc-vp8"; 170*9cdd70ceSYunfei Dong reg = <0x19002000 0x1000>; /* VENC_LT_SYS */ 171*9cdd70ceSYunfei Dong interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_LOW>; 172*9cdd70ceSYunfei Dong iommus = <&iommu M4U_PORT_VENC_RCPU_SET2>, 173*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_REC_FRM_SET2>, 174*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_BSDMA_SET2>, 175*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_SV_COMA_SET2>, 176*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_RD_COMA_SET2>, 177*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_CUR_LUMA_SET2>, 178*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_CUR_CHROMA_SET2>, 179*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_REF_LUMA_SET2>, 180*9cdd70ceSYunfei Dong <&iommu M4U_PORT_VENC_REC_CHROMA_SET2>; 181*9cdd70ceSYunfei Dong mediatek,larb = <&larb5>; 182*9cdd70ceSYunfei Dong mediatek,vpu = <&vpu>; 183*9cdd70ceSYunfei Dong clocks = <&topckgen CLK_TOP_VENC_LT_SEL>; 184*9cdd70ceSYunfei Dong clock-names = "venc_lt_sel"; 185*9cdd70ceSYunfei Dong assigned-clocks = <&topckgen CLK_TOP_VENC_LT_SEL>; 186*9cdd70ceSYunfei Dong assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL_370P5>; 187*9cdd70ceSYunfei Dong }; 188