On Thu 11/14/2024 12:39 AM, Rob Herring wrote: > On Tue, Nov 12, 2024 at 05:17:57PM +0530, Renjiang Han wrote: > > Add support for Qualcomm video acceleration hardware used for video > > stream decoding and encoding on QCOM QCS615. > > > > Signed-off-by: Renjiang Han <quic_renjiang@xxxxxxxxxxx> > > > --- > > .../bindings/media/qcom,qcs615-venus.yaml | 181 +++++++++++++++++++++ > > 1 file changed, 181 insertions(+) > > > > diff --git > > a/Documentation/devicetree/bindings/media/qcom,qcs615-venus.yaml > > b/Documentation/devicetree/bindings/media/qcom,qcs615-venus.yaml > > new file mode 100644 > > index > > 0000000000000000000000000000000000000000..a807f4c7e94c635ef1662971b687 > > db9bdce1b74a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/media/qcom,qcs615-venus.yaml > > @@ -0,0 +1,181 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/media/qcom,qcs615-venus.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Qualcomm QCS615 Venus video encode and decode accelerators > > + > > +maintainers: > > + - Stanimir Varbanov <stanimir.k.varbanov@xxxxxxxxx> > > > + - Vikash Garodia <quic_vgarodia@xxxxxxxxxxx> > > > + > > +description: | > Don't need '|' if no formatting. > > + The Venus IP is a video encode and decode accelerator present on > > + Qualcomm platforms > > + > > +allOf: > > + - $ref: qcom,venus-common.yaml# > > + > > +properties: > > + compatible: > > + const: qcom,qcs615-venus > > + > > + power-domains: > > + minItems: 2 > > + maxItems: 3 > > + > > + power-domain-names: > > + minItems: 2 > > + items: > > + - const: venus > > + - const: vcodec0 > > + - const: cx > > + > > + clocks: > > + maxItems: 5 > > + > > + clock-names: > > + items: > > + - const: core > > + - const: iface > > + - const: bus > > + - const: vcodec0_core > > + - const: vcodec0_bus > > + > > + iommus: > > + maxItems: 1 > > + > > + memory-region: > > + maxItems: 1 > > + > > + interconnects: > > + maxItems: 2 > > + > > + interconnect-names: > > + items: > > + - const: video-mem > > + - const: cpu-cfg > > + > > + operating-points-v2: true > blank line > > + opp-table: > > + type: object > > + > > + video-decoder: > > + type: object > > + > > + properties: > > + compatible: > > + const: venus-decoder > > + > > + required: > > + - compatible > > + > > + additionalProperties: false > Put this before 'properties' for indented cases. Do you mean let me put 'additionalProperties' before 'properties'? like this? video-decoder: type: object additionalProperties: false properties: compatible: const: venus-decoder > > + > > + video-encoder: > > + type: object > > + > > + properties: > > + compatible: > > + const: venus-encoder > > + > > + required: > > + - compatible > > + > > + additionalProperties: false > > + > > +required: > > + - compatible > > + - power-domain-names > > + - iommus > > + - video-decoder > > + - video-encoder > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/arm-gic.h> > > > + #include <dt-bindings/clock/qcom,qcs615-videocc.h> > > > + #include <dt-bindings/interconnect/qcom,qcs615-rpmh.h> > > > + #include <dt-bindings/power/qcom,rpmhpd.h> > > > + > > + venus: video-codec@aa00000 { > > + compatible = "qcom,qcs615-venus"; > > + reg = <0xaa00000 0x100000> >; > > + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH> >; > > + > > + clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK> >, > > + <&videocc VIDEO_CC_VENUS_AHB_CLK> >, > > + <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK> >, > > + <&videocc VIDEO_CC_VCODEC0_CORE_CLK> >, > > + <&videocc VIDEO_CC_VCODEC0_AXI_CLK> >; > > + clock-names = "core", > > + "iface", > > + "bus", > > + "vcodec0_core", > > + "vcodec0_bus"; > > + > > + power-domains = <&videocc VENUS_GDSC> >, > > + <&videocc VCODEC0_GDSC> >, > > + <&rpmhpd RPMHPD_CX> >; > > + power-domain-names = "venus", > > + "vcodec0", > > + "cx"; > > + > > + operating-points-v2 = <&venus_opp_table> >; > > + > > + interconnects = <&mmss_noc MASTER_VIDEO_P0 0 > > + &mc_virt SLAVE_EBI1 0> >, > > + <&gem_noc MASTER_APPSS_PROC 0 > > + &config_noc SLAVE_VENUS_CFG 0> >; > > + interconnect-names = "video-mem", > > + "cpu-cfg"; > > + > > + iommus = <&apps_smmu 0xe40 0x20> >; > > + > > + memory-region = <&pil_video_mem> >; > > + > > + video-decoder { > > + compatible = "venus-decoder"; > > + }; > > + > > + video-encoder { > > + compatible = "venus-encoder"; > > + }; > > + > > + venus_opp_table: opp-table { > > + compatible = "operating-points-v2"; > > + > > + opp-133330000 { > > + opp-hz = /bits/ 64 <133330000> >; > > + required-opps = <&rpmhpd_opp_low_svs> >; > > + }; > > + > > + opp-240000000 { > > + opp-hz = /bits/ 64 <240000000> >; > > + required-opps = <&rpmhpd_opp_svs> >; > > + }; > > + > > + opp-300000000 { > > + opp-hz = /bits/ 64 <300000000> >; > > + required-opps = <&rpmhpd_opp_svs_l1> >; > > + }; > > + > > + opp-380000000 { > > + opp-hz = /bits/ 64 <380000000> >; > > + required-opps = <&rpmhpd_opp_nom> >; > > + }; > > + > > + opp-410000000 { > > + opp-hz = /bits/ 64 <410000000> >; > > + required-opps = <&rpmhpd_opp_turbo> >; > > + }; > > + > > + opp-460000000 { > > + opp-hz = /bits/ 64 <460000000> >; > > + required-opps = <&rpmhpd_opp_turbo_l1> >; > > + }; > > + }; > > + }; > > > > -- > > 2.34.1 > >