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,milos-iris.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Milos SoC Iris video encoder and decoder 8 9maintainers: 10 - Alexander Koskovich <akoskovich@pm.me> 11 12description: 13 The Iris video processing unit on Qualcomm Milos SoC is a video encode and 14 decode accelerator. 15 16properties: 17 compatible: 18 enum: 19 - qcom,milos-iris 20 21 clocks: 22 maxItems: 3 23 24 clock-names: 25 items: 26 - const: iface 27 - const: core 28 - const: vcodec0_core 29 30 dma-coherent: true 31 32 interconnects: 33 maxItems: 2 34 35 interconnect-names: 36 items: 37 - const: cpu-cfg 38 - const: video-mem 39 40 iommus: 41 maxItems: 2 42 43 operating-points-v2: true 44 opp-table: 45 type: object 46 47 power-domains: 48 maxItems: 4 49 50 power-domain-names: 51 items: 52 - const: venus 53 - const: vcodec0 54 - const: cx 55 - const: mx 56 57 resets: 58 maxItems: 2 59 60 reset-names: 61 items: 62 - const: bus 63 - const: core 64 65required: 66 - compatible 67 - dma-coherent 68 - interconnects 69 - interconnect-names 70 - iommus 71 - power-domain-names 72 - resets 73 - reset-names 74 75allOf: 76 - $ref: qcom,venus-common.yaml# 77 78unevaluatedProperties: false 79 80examples: 81 - | 82 #include <dt-bindings/clock/qcom,rpmh.h> 83 #include <dt-bindings/clock/qcom,milos-gcc.h> 84 #include <dt-bindings/clock/qcom,milos-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,milos-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,milos-iris"; 93 reg = <0x0aa00000 0xf0000>; 94 95 clocks = <&gcc GCC_VIDEO_AXI0_CLK>, 96 <&videocc VIDEO_CC_MVS0C_CLK>, 97 <&videocc VIDEO_CC_MVS0_CLK>; 98 clock-names = "iface", 99 "core", 100 "vcodec0_core"; 101 102 dma-coherent; 103 iommus = <&apps_smmu 0x1960 0>, 104 <&apps_smmu 0x1967 0>; 105 106 interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY 107 &cnoc_cfg SLAVE_VENUS_CFG QCOM_ICC_TAG_ACTIVE_ONLY>, 108 <&mmss_noc MASTER_VIDEO QCOM_ICC_TAG_ALWAYS 109 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; 110 interconnect-names = "cpu-cfg", 111 "video-mem"; 112 113 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 114 115 operating-points-v2 = <&iris_opp_table>; 116 117 memory-region = <&video_mem>; 118 119 power-domains = <&videocc VIDEO_CC_MVS0C_GDSC>, 120 <&videocc VIDEO_CC_MVS0_GDSC>, 121 <&rpmhpd RPMHPD_CX>, 122 <&rpmhpd RPMHPD_MX>; 123 power-domain-names = "venus", 124 "vcodec0", 125 "cx", 126 "mx"; 127 128 resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>, 129 <&videocc VIDEO_CC_MVS0C_CLK_ARES>; 130 reset-names = "bus", 131 "core"; 132 133 iris_opp_table: opp-table { 134 compatible = "operating-points-v2"; 135 136 opp-240000000 { 137 opp-hz = /bits/ 64 <240000000>; 138 required-opps = <&rpmhpd_opp_low_svs>, 139 <&rpmhpd_opp_svs>; 140 }; 141 142 opp-338000000 { 143 opp-hz = /bits/ 64 <338000000>; 144 required-opps = <&rpmhpd_opp_svs>, 145 <&rpmhpd_opp_svs>; 146 }; 147 148 opp-366000000 { 149 opp-hz = /bits/ 64 <366000000>; 150 required-opps = <&rpmhpd_opp_svs_l1>, 151 <&rpmhpd_opp_svs>; 152 }; 153 154 opp-444000000 { 155 opp-hz = /bits/ 64 <444000000>; 156 required-opps = <&rpmhpd_opp_nom>, 157 <&rpmhpd_opp_svs_l1>; 158 }; 159 160 opp-552000000 { 161 opp-hz = /bits/ 64 <552000000>; 162 required-opps = <&rpmhpd_opp_turbo>, 163 <&rpmhpd_opp_nom>; 164 }; 165 }; 166 }; 167