[Freedreno] [PATCH] arm64: dts: Add Adreno GPU and GPU smmu definitions
Stephen Boyd
sboyd at codeaurora.org
Fri Dec 2 18:30:59 UTC 2016
On 12/02/2016 07:30 AM, Jordan Crouse wrote:
> Add an initial node for the Adreno GPU and it's companion
> SMMU. The GPU node is mostly complete except for a bare
> bones power table that will be filled out more completely
> later.
>
> Signed-off-by: Jordan Crouse <jcrouse at codeaurora.org>
> ---
Hm.. I see that I missed the 8064 dts update and Andy has already
applied it. Sigh.
> arch/arm64/boot/dts/qcom/msm8996.dtsi | 78 +++++++++++++++++++++++++++++++++++
> 1 file changed, 78 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
> index a3a4dee..4108f21 100644
> --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
> @@ -473,6 +473,84 @@
> };
> };
>
> + adreno_smmu: arm,smmu at b40000 {
iommu at b40000 ?
> + compatible = "arm,smmu-v2";
> + reg = <0xb40000 0x10000>;
> +
> + #global-interrupts = <1>;
> + interrupts = <0 334 0>,
> + <0 329 0>,
> + <0 330 0>;
We're using the pretty macros now for GIC_SPI and irq triggers. Please
add them on interrupts.
> + #iommu-cells = <1>;
> +
> + clocks = <&mmcc MMSS_MMAGIC_AHB_CLK>,
> + <&mmcc MMSS_MMAGIC_CFG_AHB_CLK>,
> + <&mmcc GPU_AHB_CLK>,
> + <&gcc GCC_MMSS_BIMC_GFX_CLK>,
> + <&gcc GCC_BIMC_GFX_CLK>,
> + <&mmcc MMSS_MISC_AHB_CLK>;
> + clock-names = "mmagic_ahb_clk",
> + "mmagic_cfg_ahb_clk",
> + "gpu_ahb_clk",
> + "gcc_mmss_bimc_gfx_clk",
> + "gcc_bimc_gfx_clk",
> + "mmss_misc_bus_clk";
Please remove _clk from all clock names as it's redundant.
> +
> + power-domains = <&mmcc GPU_GDSC>;
> +
> + qcom,skip-init;
> + qcom,register-save;
> +
> + status = "okay";
We don't need status = "okay" here. Typically those are just in the
board files.
> + };
> +
> + adreno-3xx at b00000 {
gpu at b00000 ?
> + compatible = "qcom,adreno-3xx";
> + #stream-id-cells = <16>;
> +
> + reg = <0xb00000 0x3f000>;
> + reg-names = "kgsl_3d0_reg_memory";
> +
> + interrupts = <0 300 0>;
> + interrupt-names = "kgsl_3d0_irq";
> +
> + clocks = <&mmcc GPU_GX_GFX3D_CLK>,
> + <&mmcc GPU_AHB_CLK>,
> + <&mmcc GPU_GX_RBBMTIMER_CLK>,
> + <&gcc GCC_BIMC_GFX_CLK>,
> + <&gcc GCC_MMSS_BIMC_GFX_CLK>,
> + <&mmcc MMSS_MMAGIC_AHB_CLK>;
> +
> + clock-names = "core_clk",
> + "iface_clk",
> + "rbbmtimer_clk",
> + "mem_clk",
> + "mem_iface_clk",
> + "alt_mem_iface_clk";
Is there a binding update for new clock names? I haven't seen it. Sad
that we couldn't remove _clk from the names here like everywhere else.
> +
> + power-domains = <&mmcc GPU_GDSC>;
> + iommus = <&adreno_smmu 0>;
> +
> + /* There are patchlevel 3 chips in the world (Snapdragon
> + * (820) but they are functionally similar to the 821 in
> + * the code so we can safely set the chipset as
> + * patchlevel 4. */
> + qcom,chipid = <0x05030004>;
> +
> + /* This is a safe speed for bring up in all bin levels.
> + * This isn't the fastest the chip can go, but we can
> + * get there eventually */
> + qcom,gpu-pwrlevels {
> + compatible = "qcom,gpu-pwrlevels";
> + qcom,gpu-pwrlevel at 0 {
> + qcom,gpu-freq = <205000000>;
> + };
> + qcom,gpu-pwrlevel at 1 {
> + qcom,gpu-freq = <27000000>;
> + };
> + };
These should be OPPs.
> + };
> +
> mdp_smmu: arm,smmu at d00000 {
> compatible = "arm,smmu-v2";
> reg = <0xd00000 0x10000>;
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
More information about the Freedreno
mailing list