1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/media/qcom,sm8550-iris.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm iris video encode and decode accelerators 8 9maintainers: 10 - Vikash Garodia <quic_vgarodia@quicinc.com> 11 - Dikshita Agarwal <quic_dikshita@quicinc.com> 12 13description: 14 The iris video processing unit is a video encode and decode accelerator 15 present on Qualcomm platforms. 16 17allOf: 18 - $ref: qcom,venus-common.yaml# 19 20properties: 21 compatible: 22 const: qcom,sm8550-iris 23 24 power-domains: 25 maxItems: 4 26 27 power-domain-names: 28 items: 29 - const: venus 30 - const: vcodec0 31 - const: mxc 32 - const: mmcx 33 34 clocks: 35 maxItems: 3 36 37 clock-names: 38 items: 39 - const: iface 40 - const: core 41 - const: vcodec0_core 42 43 interconnects: 44 maxItems: 2 45 46 interconnect-names: 47 items: 48 - const: cpu-cfg 49 - const: video-mem 50 51 resets: 52 maxItems: 1 53 54 reset-names: 55 items: 56 - const: bus 57 58 iommus: 59 maxItems: 2 60 61 dma-coherent: true 62 63 operating-points-v2: true 64 65 opp-table: 66 type: object 67 68required: 69 - compatible 70 - power-domain-names 71 - interconnects 72 - interconnect-names 73 - resets 74 - reset-names 75 - iommus 76 - dma-coherent 77 78unevaluatedProperties: false 79 80examples: 81 - | 82 #include <dt-bindings/clock/qcom,rpmh.h> 83 #include <dt-bindings/clock/qcom,sm8550-gcc.h> 84 #include <dt-bindings/clock/qcom,sm8450-videocc.h> 85 #include <dt-bindings/interrupt-controller/arm-gic.h> 86 #include <dt-bindings/interconnect/qcom,icc.h> 87 #include <dt-bindings/interconnect/qcom,sm8550-rpmh.h> 88 #include <dt-bindings/power/qcom-rpmpd.h> 89 #include <dt-bindings/power/qcom,rpmhpd.h> 90 91 video-codec@aa00000 { 92 compatible = "qcom,sm8550-iris"; 93 reg = <0x0aa00000 0xf0000>; 94 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 95 96 power-domains = <&videocc VIDEO_CC_MVS0C_GDSC>, 97 <&videocc VIDEO_CC_MVS0_GDSC>, 98 <&rpmhpd RPMHPD_MXC>, 99 <&rpmhpd RPMHPD_MMCX>; 100 power-domain-names = "venus", "vcodec0", "mxc", "mmcx"; 101 102 clocks = <&gcc GCC_VIDEO_AXI0_CLK>, 103 <&videocc VIDEO_CC_MVS0C_CLK>, 104 <&videocc VIDEO_CC_MVS0_CLK>; 105 clock-names = "iface", "core", "vcodec0_core"; 106 107 interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS 108 &config_noc SLAVE_VENUS_CFG QCOM_ICC_TAG_ALWAYS>, 109 <&mmss_noc MASTER_VIDEO QCOM_ICC_TAG_ALWAYS 110 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; 111 interconnect-names = "cpu-cfg", "video-mem"; 112 113 memory-region = <&video_mem>; 114 115 resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>; 116 reset-names = "bus"; 117 118 iommus = <&apps_smmu 0x1940 0x0000>, 119 <&apps_smmu 0x1947 0x0000>; 120 dma-coherent; 121 122 operating-points-v2 = <&iris_opp_table>; 123 124 iris_opp_table: opp-table { 125 compatible = "operating-points-v2"; 126 127 opp-240000000 { 128 opp-hz = /bits/ 64 <240000000>; 129 required-opps = <&rpmhpd_opp_svs>, 130 <&rpmhpd_opp_low_svs>; 131 }; 132 133 opp-338000000 { 134 opp-hz = /bits/ 64 <338000000>; 135 required-opps = <&rpmhpd_opp_svs>, 136 <&rpmhpd_opp_svs>; 137 }; 138 139 opp-366000000 { 140 opp-hz = /bits/ 64 <366000000>; 141 required-opps = <&rpmhpd_opp_svs_l1>, 142 <&rpmhpd_opp_svs_l1>; 143 }; 144 145 opp-444000000 { 146 opp-hz = /bits/ 64 <444000000>; 147 required-opps = <&rpmhpd_opp_turbo>, 148 <&rpmhpd_opp_turbo>; 149 }; 150 151 opp-533333334 { 152 opp-hz = /bits/ 64 <533333334>; 153 required-opps = <&rpmhpd_opp_turbo_l1>, 154 <&rpmhpd_opp_turbo_l1>; 155 }; 156 }; 157 }; 158... 159