Message ID | 1623650391-28144-1-git-send-email-dikshita@codeaurora.org |
---|---|
State | Superseded |
Headers | show |
Series | [v4] arm64: dts: qcom: sc7280: Add venus DT node | expand |
Hi, > @@ -850,6 +855,76 @@ > interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; > }; > > + venus: video-codec@0aa00000 { Please remove the leading 0 after the "@" sign > + compatible = "qcom,sc7280-venus"; > + reg = <0 0x0aa00000 0 0xd0600>; > + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; > + > + clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>, > + <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>, > + <&videocc VIDEO_CC_VENUS_AHB_CLK>, > + <&videocc VIDEO_CC_MVS0_CORE_CLK>, > + <&videocc VIDEO_CC_MVS0_AXI_CLK>; > + clock-names = "core", "bus", "iface", > + "vcodec_core", "vcodec_bus"; > + > + power-domains = <&videocc MVSC_GDSC>, > + <&videocc MVS0_GDSC>; > + <&rpmhpd SC7280_CX>; > + power-domain-names = "venus", "vcodec0", "cx"; Unless there was a newer revision of [1], the cx pd will most likely be unused due to it not being specified under opp_pmdomain. > + operating-points-v2 = <&venus_opp_table>; > + > + interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>, > + <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>; > + interconnect-names = "cpu-cfg", "video-mem"; > + > + iommus = <&apps_smmu 0x2180 0x20>, > + <&apps_smmu 0x2184 0x20>; > + memory-region = <&video_mem>; > + > + video-decoder { > + compatible = "venus-decoder"; > + }; > + > + video-encoder { > + compatible = "venus-encoder"; > + }; > + > + video-firmware { > + iommus = <&apps_smmu 0x21a2 0x0>; > + }; > + > + venus_opp_table: venus-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-335000000 { > + opp-hz = /bits/ 64 <335000000>; > + required-opps = <&rpmhpd_opp_svs_l1>; > + }; > + > + opp-424000000 { > + opp-hz = /bits/ 64 <424000000>; > + required-opps = <&rpmhpd_opp_nom>; > + }; > + > + opp-460000000 { > + opp-hz = /bits/ 64 <460000000>; > + required-opps = <&rpmhpd_opp_turbo>; > + }; > + }; > + > + }; > > Is there a downstream kernel source available for sc7280 to compare against? I don't see it in sm8350 releases and it's hard to tell out of thin air what values should be in there.. Unless qcom decides to share some documentation ;) Besides that, I don't see the driver part being merged neither in linux-next, nor media-next but I may be looking at the wrong tree. [1] https://lkml.org/lkml/2021/5/19/364 Konrad
Quoting Dikshita Agarwal (2021-06-13 22:59:51) > Add DT entries for the sc7280 venus encoder/decoder. > > Co-developed-by: Mansur Alisha Shaik <mansur@codeaurora.org> > Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> > > change since v3: > - added firmware node back. > change since v2: > - removed firmware node. > change since v1: > - added rpmh power domain and opp table. > > this patch depends on [1],[2] & [3]. > > [1] https://patchwork.kernel.org/project/linux-clk/list/?series=449621 > [2] https://lkml.org/lkml/2021/4/9/812 > [3] https://lore.kernel.org/patchwork/project/lkml/list/?series=488429# > --- Is this going to be resent?
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi index 4c44a52..4982f96 100644 --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -60,6 +60,11 @@ no-map; reg = <0x0 0x80b00000 0x0 0x100000>; }; + + video_mem: memory@8b200000 { + reg = <0x0 0x8b200000 0x0 0x500000>; + no-map; + }; }; cpus { @@ -850,6 +855,76 @@ interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>; }; + venus: video-codec@0aa00000 { + compatible = "qcom,sc7280-venus"; + reg = <0 0x0aa00000 0 0xd0600>; + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&videocc VIDEO_CC_MVSC_CORE_CLK>, + <&videocc VIDEO_CC_MVSC_CTL_AXI_CLK>, + <&videocc VIDEO_CC_VENUS_AHB_CLK>, + <&videocc VIDEO_CC_MVS0_CORE_CLK>, + <&videocc VIDEO_CC_MVS0_AXI_CLK>; + clock-names = "core", "bus", "iface", + "vcodec_core", "vcodec_bus"; + + power-domains = <&videocc MVSC_GDSC>, + <&videocc MVS0_GDSC>; + <&rpmhpd SC7280_CX>; + power-domain-names = "venus", "vcodec0", "cx"; + operating-points-v2 = <&venus_opp_table>; + + interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_VENUS_CFG 0>, + <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names = "cpu-cfg", "video-mem"; + + iommus = <&apps_smmu 0x2180 0x20>, + <&apps_smmu 0x2184 0x20>; + memory-region = <&video_mem>; + + video-decoder { + compatible = "venus-decoder"; + }; + + video-encoder { + compatible = "venus-encoder"; + }; + + video-firmware { + iommus = <&apps_smmu 0x21a2 0x0>; + }; + + venus_opp_table: venus-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-335000000 { + opp-hz = /bits/ 64 <335000000>; + required-opps = <&rpmhpd_opp_svs_l1>; + }; + + opp-424000000 { + opp-hz = /bits/ 64 <424000000>; + required-opps = <&rpmhpd_opp_nom>; + }; + + opp-460000000 { + opp-hz = /bits/ 64 <460000000>; + required-opps = <&rpmhpd_opp_turbo>; + }; + }; + + }; + videocc: clock-controller@aaf0000 { compatible = "qcom,sc7280-videocc"; reg = <0 0xaaf0000 0 0x10000>;
Add DT entries for the sc7280 venus encoder/decoder. Co-developed-by: Mansur Alisha Shaik <mansur@codeaurora.org> Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org> change since v3: - added firmware node back. change since v2: - removed firmware node. change since v1: - added rpmh power domain and opp table. this patch depends on [1],[2] & [3]. [1] https://patchwork.kernel.org/project/linux-clk/list/?series=449621 [2] https://lkml.org/lkml/2021/4/9/812 [3] https://lore.kernel.org/patchwork/project/lkml/list/?series=488429# --- arch/arm64/boot/dts/qcom/sc7280.dtsi | 75 ++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+)