1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-C 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> 2 2 %YAML 1.2 3 %YAML 1.2 3 --- 4 --- 4 $id: http://devicetree.org/schemas/media/qcom, !! 5 $id: "http://devicetree.org/schemas/media/qcom,sm8250-venus.yaml#" 5 $schema: http://devicetree.org/meta-schemas/co !! 6 $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 7 7 title: Qualcomm SM8250 Venus video encode and !! 8 title: Qualcomm Venus video encode and decode accelerators 8 9 9 maintainers: 10 maintainers: 10 - Stanimir Varbanov <stanimir.varbanov@linaro 11 - Stanimir Varbanov <stanimir.varbanov@linaro.org> 11 12 12 description: | 13 description: | 13 The Venus IP is a video encode and decode ac 14 The Venus IP is a video encode and decode accelerator present 14 on Qualcomm platforms 15 on Qualcomm platforms 15 16 16 allOf: << 17 - $ref: qcom,venus-common.yaml# << 18 << 19 properties: 17 properties: 20 compatible: 18 compatible: 21 const: qcom,sm8250-venus 19 const: qcom,sm8250-venus 22 20 >> 21 reg: >> 22 maxItems: 1 >> 23 >> 24 interrupts: >> 25 maxItems: 1 >> 26 23 power-domains: 27 power-domains: 24 minItems: 2 28 minItems: 2 25 maxItems: 3 29 maxItems: 3 26 30 27 power-domain-names: 31 power-domain-names: 28 minItems: 2 32 minItems: 2 29 items: 33 items: 30 - const: venus 34 - const: venus 31 - const: vcodec0 35 - const: vcodec0 32 - const: mx 36 - const: mx 33 37 34 clocks: 38 clocks: 35 maxItems: 3 39 maxItems: 3 36 40 37 clock-names: 41 clock-names: 38 items: 42 items: 39 - const: iface 43 - const: iface 40 - const: core 44 - const: core 41 - const: vcodec0_core 45 - const: vcodec0_core 42 46 43 iommus: 47 iommus: 44 maxItems: 1 48 maxItems: 1 45 49 >> 50 memory-region: >> 51 maxItems: 1 >> 52 46 interconnects: 53 interconnects: 47 maxItems: 2 54 maxItems: 2 48 55 49 interconnect-names: 56 interconnect-names: 50 items: 57 items: 51 - const: cpu-cfg 58 - const: cpu-cfg 52 - const: video-mem 59 - const: video-mem 53 60 54 operating-points-v2: true << 55 opp-table: << 56 type: object << 57 << 58 resets: 61 resets: 59 maxItems: 2 62 maxItems: 2 60 63 61 reset-names: 64 reset-names: 62 items: 65 items: 63 - const: bus 66 - const: bus 64 - const: core 67 - const: core 65 68 66 video-decoder: 69 video-decoder: 67 type: object 70 type: object 68 71 69 properties: 72 properties: 70 compatible: 73 compatible: 71 const: venus-decoder 74 const: venus-decoder 72 75 73 required: 76 required: 74 - compatible 77 - compatible 75 78 76 additionalProperties: false 79 additionalProperties: false 77 80 78 video-encoder: 81 video-encoder: 79 type: object 82 type: object 80 83 81 properties: 84 properties: 82 compatible: 85 compatible: 83 const: venus-encoder 86 const: venus-encoder 84 87 85 required: 88 required: 86 - compatible 89 - compatible 87 90 88 additionalProperties: false 91 additionalProperties: false 89 92 >> 93 video-firmware: >> 94 type: object >> 95 additionalProperties: false >> 96 >> 97 description: | >> 98 Firmware subnode is needed when the platform does not >> 99 have TrustZone. >> 100 >> 101 properties: >> 102 iommus: >> 103 maxItems: 1 >> 104 >> 105 required: >> 106 - iommus >> 107 90 required: 108 required: 91 - compatible 109 - compatible >> 110 - reg >> 111 - interrupts >> 112 - power-domains 92 - power-domain-names 113 - power-domain-names >> 114 - clocks >> 115 - clock-names 93 - interconnects 116 - interconnects 94 - interconnect-names 117 - interconnect-names 95 - iommus 118 - iommus >> 119 - memory-region 96 - resets 120 - resets 97 - reset-names 121 - reset-names 98 - video-decoder 122 - video-decoder 99 - video-encoder 123 - video-encoder 100 124 101 unevaluatedProperties: false !! 125 additionalProperties: false 102 126 103 examples: 127 examples: 104 - | 128 - | 105 #include <dt-bindings/interrupt-controller !! 129 #include <dt-bindings/interrupt-controller/arm-gic.h> 106 #include <dt-bindings/clock/qcom,videocc-s !! 130 #include <dt-bindings/clock/qcom,videocc-sm8250.h> 107 #include <dt-bindings/interconnect/qcom,sm !! 131 #include <dt-bindings/interconnect/qcom,sm8250.h> 108 #include <dt-bindings/clock/qcom,gcc-sm825 !! 132 #include <dt-bindings/clock/qcom,gcc-sm8250.h> 109 #include <dt-bindings/power/qcom,rpmhpd.h> !! 133 #include <dt-bindings/power/qcom-rpmpd.h> 110 !! 134 111 venus: video-codec@aa00000 { !! 135 venus: video-codec@aa00000 { 112 compatible = "qcom,sm8250-venus"; !! 136 compatible = "qcom,sm8250-venus"; 113 reg = <0x0aa00000 0xff000>; !! 137 reg = <0x0aa00000 0xff000>; 114 interrupts = <GIC_SPI 174 IRQ_TYPE_LEV !! 138 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 115 power-domains = <&videocc MVS0C_GDSC>, !! 139 power-domains = <&videocc MVS0C_GDSC>, 116 <&videocc MVS0_GDSC>, !! 140 <&videocc MVS0_GDSC>, 117 <&rpmhpd RPMHPD_MX>; !! 141 <&rpmhpd SM8250_MX>; 118 power-domain-names = "venus", "vcodec0 !! 142 power-domain-names = "venus", "vcodec0", "mx"; 119 !! 143 120 clocks = <&gcc GCC_VIDEO_AXI0_CLK>, !! 144 clocks = <&gcc GCC_VIDEO_AXI0_CLK>, 121 <&videocc VIDEO_CC_MVS0C_CLK> !! 145 <&videocc VIDEO_CC_MVS0C_CLK>, 122 <&videocc VIDEO_CC_MVS0_CLK>; !! 146 <&videocc VIDEO_CC_MVS0_CLK>; 123 clock-names = "iface", "core", "vcodec !! 147 clock-names = "iface", "core", "vcodec0_core"; 124 !! 148 125 interconnects = <&gem_noc MASTER_AMPSS !! 149 interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_VENUS_CFG>, 126 <&mmss_noc MASTER_VIDE !! 150 <&mmss_noc MASTER_VIDEO_P0 &mc_virt SLAVE_EBI_CH0>; 127 interconnect-names = "cpu-cfg", "video !! 151 interconnect-names = "cpu-cfg", "video-mem"; 128 !! 152 129 iommus = <&apps_smmu 0x2100 0x0400>; !! 153 iommus = <&apps_smmu 0x2100 0x0400>; 130 memory-region = <&video_mem>; !! 154 memory-region = <&video_mem>; 131 !! 155 132 resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES !! 156 resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>, 133 <&videocc VIDEO_CC_MVS0C_CLK_ !! 157 <&videocc VIDEO_CC_MVS0C_CLK_ARES>; 134 reset-names = "bus", "core"; !! 158 reset-names = "bus", "core"; 135 !! 159 136 video-decoder { !! 160 video-decoder { 137 compatible = "venus-decoder"; !! 161 compatible = "venus-decoder"; 138 }; !! 162 }; 139 !! 163 140 video-encoder { !! 164 video-encoder { 141 compatible = "venus-encoder"; !! 165 compatible = "venus-encoder"; >> 166 }; 142 }; 167 }; 143 }; <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.