From 0fe1fb06058644710b63e6b5659b72a522f00382 Mon Sep 17 00:00:00 2001 From: NITHEESH MUTHURAJ Date: Tue, 13 Oct 2020 16:45:17 -0700 Subject: [PATCH] ARM: dts: msm: Add a new power level for supported devices Add speed bin node for efuse check and create speed bins to include TURBO_L2 on supported devices. Change-Id: I9ae248a599d53134b5e7b8a71ad109a34f1dfa0d --- qcom/lahaina-gpu.dtsi | 3 + qcom/lahaina-v2-gpu.dtsi | 435 ++++++++++++++++++++++++++++----------- qcom/lahaina.dtsi | 14 ++ 3 files changed, 330 insertions(+), 122 deletions(-) diff --git a/qcom/lahaina-gpu.dtsi b/qcom/lahaina-gpu.dtsi index 305d9f3b348f..34caf29704f3 100644 --- a/qcom/lahaina-gpu.dtsi +++ b/qcom/lahaina-gpu.dtsi @@ -51,6 +51,9 @@ qcom,gpu-qdss-stm = <0x161c0000 0x40000>; /* base addr, size */ + nvmem-cells = <&gpu_speed_bin>; + nvmem-cell-names = "speed_bin"; + qcom,tzone-names = "gpuss-0-usr", "gpuss-1-usr"; interconnects = <&gem_noc MASTER_GFX3D &mc_virt SLAVE_EBI1>; diff --git a/qcom/lahaina-v2-gpu.dtsi b/qcom/lahaina-v2-gpu.dtsi index 46b86a1604f0..194a286726f2 100644 --- a/qcom/lahaina-v2-gpu.dtsi +++ b/qcom/lahaina-v2-gpu.dtsi @@ -1,173 +1,364 @@ &msm_gpu { qcom,chipid = <0x06060001>; - qcom,initial-pwrlevel = <9>; + /delete-property/qcom,initial-pwrlevel; + /delete-node/qcom,gpu-pwrlevels; - /* Power levels */ - qcom,gpu-pwrlevels { + /* Power levels bins */ + qcom,gpu-pwrlevel-bins { + compatible="qcom,gpu-pwrlevel-bins"; #address-cells = <1>; #size-cells = <0>; - compatible = "qcom,gpu-pwrlevels"; + qcom,gpu-pwrlevels-0 { + #address-cells = <1>; + #size-cells = <0>; + qcom,speed-bin = <0>; + qcom,initial-pwrlevel = <9>; - qcom,gpu-pwrlevel@0 { - reg = <0>; - qcom,gpu-freq = <840000000>; - qcom,level = ; + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <840000000>; + qcom,level = ; - qcom,bus-freq-ddr7 = <11>; - qcom,bus-min-ddr7 = <11>; - qcom,bus-max-ddr7 = <11>; + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; - qcom,bus-freq-ddr8 = <11>; - qcom,bus-min-ddr8 = <11>; - qcom,bus-max-ddr8 = <11>; + qcom,bus-freq-ddr8 = <11>; + qcom,bus-min-ddr8 = <11>; + qcom,bus-max-ddr8 = <11>; + + qcom,acd-level = <0x882a5ffd>; + }; + + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <778000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; + + qcom,bus-freq-ddr8 = <11>; + qcom,bus-min-ddr8 = <11>; + qcom,bus-max-ddr8 = <11>; + + qcom,acd-level = <0xa82a5ffd>; + }; + + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <738000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; + + qcom,bus-freq-ddr8 = <11>; + qcom,bus-min-ddr8 = <11>; + qcom,bus-max-ddr8 = <11>; + + qcom,acd-level = <0xa82a5ffd>; + }; + + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <676000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; + + qcom,bus-freq-ddr8 = <10>; + qcom,bus-min-ddr8 = <10>; + qcom,bus-max-ddr8 = <11>; + + qcom,acd-level = <0x882b5ffd>; + }; + + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <608000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <7>; + qcom,bus-max-ddr7 = <11>; + + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <7>; + qcom,bus-max-ddr8 = <11>; + + qcom,acd-level = <0xa82b5ffd>; + }; + + qcom,gpu-pwrlevel@5 { + reg = <5>; + qcom,gpu-freq = <540000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <7>; + qcom,bus-max-ddr7 = <10>; + + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <7>; + qcom,bus-max-ddr8 = <9>; + + qcom,acd-level = <0xa82c5ffd>; + }; + + qcom,gpu-pwrlevel@6 { + reg = <6>; + qcom,gpu-freq = <491000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <6>; + qcom,bus-max-ddr7 = <10>; + + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <5>; + qcom,bus-max-ddr8 = <7>; + + qcom,acd-level = <0xa82c5ffd>; + }; + + qcom,gpu-pwrlevel@7 { + reg = <7>; + qcom,gpu-freq = <443000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <6>; + qcom,bus-max-ddr7 = <10>; + + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <5>; + qcom,bus-max-ddr8 = <7>; + + qcom,acd-level = <0xa82d5ffd>; + }; + + qcom,gpu-pwrlevel@8 { + reg = <8>; + qcom,gpu-freq = <379000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <6>; + qcom,bus-max-ddr7 = <10>; + + qcom,bus-freq-ddr8 = <6>; + qcom,bus-min-ddr8 = <5>; + qcom,bus-max-ddr8 = <7>; + + qcom,acd-level = <0x882e5ffd>; + }; + + qcom,gpu-pwrlevel@9 { + reg = <9>; + qcom,gpu-freq = <315000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <2>; + qcom,bus-min-ddr7 = <2>; + qcom,bus-max-ddr7 = <9>; + + qcom,bus-freq-ddr8 = <2>; + qcom,bus-min-ddr8 = <2>; + qcom,bus-max-ddr8 = <7>; + + qcom,acd-level = <0x882f5ffd>; + }; - qcom,acd-level = <0x882a5ffd>; }; - qcom,gpu-pwrlevel@1 { - reg = <1>; - qcom,gpu-freq = <778000000>; - qcom,level = ; + qcom,gpu-pwrlevels-1 { + #address-cells = <1>; + #size-cells = <0>; + qcom,speed-bin = <1>; + qcom,initial-pwrlevel = <10>; - qcom,bus-freq-ddr7 = <11>; - qcom,bus-min-ddr7 = <11>; - qcom,bus-max-ddr7 = <11>; + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <900000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <11>; - qcom,bus-min-ddr8 = <11>; - qcom,bus-max-ddr8 = <11>; + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; - qcom,acd-level = <0xa82a5ffd>; - }; + qcom,bus-freq-ddr8 = <11>; + qcom,bus-min-ddr8 = <11>; + qcom,bus-max-ddr8 = <11>; - qcom,gpu-pwrlevel@2 { - reg = <2>; - qcom,gpu-freq = <738000000>; - qcom,level = ; + qcom,acd-level = <0x882a5ffd>; + }; - qcom,bus-freq-ddr7 = <11>; - qcom,bus-min-ddr7 = <11>; - qcom,bus-max-ddr7 = <11>; + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <840000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <11>; - qcom,bus-min-ddr8 = <11>; - qcom,bus-max-ddr8 = <11>; + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; - qcom,acd-level = <0xa82a5ffd>; - }; + qcom,bus-freq-ddr8 = <11>; + qcom,bus-min-ddr8 = <11>; + qcom,bus-max-ddr8 = <11>; - qcom,gpu-pwrlevel@3 { - reg = <3>; - qcom,gpu-freq = <676000000>; - qcom,level = ; + qcom,acd-level = <0x882a5ffd>; + }; - qcom,bus-freq-ddr7 = <11>; - qcom,bus-min-ddr7 = <11>; - qcom,bus-max-ddr7 = <11>; + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <778000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <10>; - qcom,bus-min-ddr8 = <10>; - qcom,bus-max-ddr8 = <11>; + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; - qcom,acd-level = <0x882b5ffd>; - }; + qcom,bus-freq-ddr8 = <11>; + qcom,bus-min-ddr8 = <11>; + qcom,bus-max-ddr8 = <11>; - qcom,gpu-pwrlevel@4 { - reg = <4>; - qcom,gpu-freq = <608000000>; - qcom,level = ; + qcom,acd-level = <0xa82a5ffd>; + }; - qcom,bus-freq-ddr7 = <8>; - qcom,bus-min-ddr7 = <7>; - qcom,bus-max-ddr7 = <11>; + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <738000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <7>; - qcom,bus-min-ddr8 = <7>; - qcom,bus-max-ddr8 = <11>; + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; - qcom,acd-level = <0xa82b5ffd>; - }; + qcom,bus-freq-ddr8 = <11>; + qcom,bus-min-ddr8 = <11>; + qcom,bus-max-ddr8 = <11>; - qcom,gpu-pwrlevel@5 { - reg = <5>; - qcom,gpu-freq = <540000000>; - qcom,level = ; + qcom,acd-level = <0xa82a5ffd>; + }; - qcom,bus-freq-ddr7 = <8>; - qcom,bus-min-ddr7 = <7>; - qcom,bus-max-ddr7 = <10>; + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <676000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <7>; - qcom,bus-min-ddr8 = <7>; - qcom,bus-max-ddr8 = <9>; + qcom,bus-freq-ddr7 = <11>; + qcom,bus-min-ddr7 = <11>; + qcom,bus-max-ddr7 = <11>; - qcom,acd-level = <0xa82c5ffd>; - }; + qcom,bus-freq-ddr8 = <10>; + qcom,bus-min-ddr8 = <10>; + qcom,bus-max-ddr8 = <11>; - qcom,gpu-pwrlevel@6 { - reg = <6>; - qcom,gpu-freq = <491000000>; - qcom,level = ; + qcom,acd-level = <0x882b5ffd>; + }; - qcom,bus-freq-ddr7 = <8>; - qcom,bus-min-ddr7 = <6>; - qcom,bus-max-ddr7 = <10>; + qcom,gpu-pwrlevel@5 { + reg = <5>; + qcom,gpu-freq = <608000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <7>; - qcom,bus-min-ddr8 = <5>; - qcom,bus-max-ddr8 = <7>; + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <7>; + qcom,bus-max-ddr7 = <11>; - qcom,acd-level = <0xa82c5ffd>; - }; + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <7>; + qcom,bus-max-ddr8 = <11>; - qcom,gpu-pwrlevel@7 { - reg = <7>; - qcom,gpu-freq = <443000000>; - qcom,level = ; + qcom,acd-level = <0xa82b5ffd>; + }; - qcom,bus-freq-ddr7 = <8>; - qcom,bus-min-ddr7 = <6>; - qcom,bus-max-ddr7 = <10>; + qcom,gpu-pwrlevel@6 { + reg = <6>; + qcom,gpu-freq = <540000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <7>; - qcom,bus-min-ddr8 = <5>; - qcom,bus-max-ddr8 = <7>; + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <7>; + qcom,bus-max-ddr7 = <10>; - qcom,acd-level = <0xa82d5ffd>; - }; + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <7>; + qcom,bus-max-ddr8 = <9>; - qcom,gpu-pwrlevel@8 { - reg = <8>; - qcom,gpu-freq = <379000000>; - qcom,level = ; + qcom,acd-level = <0xa82c5ffd>; + }; - qcom,bus-freq-ddr7 = <8>; - qcom,bus-min-ddr7 = <6>; - qcom,bus-max-ddr7 = <10>; + qcom,gpu-pwrlevel@7 { + reg = <7>; + qcom,gpu-freq = <491000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <6>; - qcom,bus-min-ddr8 = <5>; - qcom,bus-max-ddr8 = <7>; + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <6>; + qcom,bus-max-ddr7 = <10>; - qcom,acd-level = <0x882e5ffd>; - }; + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <5>; + qcom,bus-max-ddr8 = <7>; - qcom,gpu-pwrlevel@9 { - reg = <9>; - qcom,gpu-freq = <315000000>; - qcom,level = ; + qcom,acd-level = <0xa82c5ffd>; + }; - qcom,bus-freq-ddr7 = <2>; - qcom,bus-min-ddr7 = <2>; - qcom,bus-max-ddr7 = <9>; + qcom,gpu-pwrlevel@8 { + reg = <8>; + qcom,gpu-freq = <443000000>; + qcom,level = ; - qcom,bus-freq-ddr8 = <2>; - qcom,bus-min-ddr8 = <2>; - qcom,bus-max-ddr8 = <7>; + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <6>; + qcom,bus-max-ddr7 = <10>; - qcom,acd-level = <0x882f5ffd>; + qcom,bus-freq-ddr8 = <7>; + qcom,bus-min-ddr8 = <5>; + qcom,bus-max-ddr8 = <7>; + + qcom,acd-level = <0xa82d5ffd>; + }; + + qcom,gpu-pwrlevel@9 { + reg = <9>; + qcom,gpu-freq = <379000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <8>; + qcom,bus-min-ddr7 = <6>; + qcom,bus-max-ddr7 = <10>; + + qcom,bus-freq-ddr8 = <6>; + qcom,bus-min-ddr8 = <5>; + qcom,bus-max-ddr8 = <7>; + + qcom,acd-level = <0x882e5ffd>; + }; + + qcom,gpu-pwrlevel@10 { + reg = <10>; + qcom,gpu-freq = <315000000>; + qcom,level = ; + + qcom,bus-freq-ddr7 = <2>; + qcom,bus-min-ddr7 = <2>; + qcom,bus-max-ddr7 = <9>; + + qcom,bus-freq-ddr8 = <2>; + qcom,bus-min-ddr8 = <2>; + qcom,bus-max-ddr8 = <7>; + + qcom,acd-level = <0x882f5ffd>; + }; }; }; }; diff --git a/qcom/lahaina.dtsi b/qcom/lahaina.dtsi index 5a1ef7f0b987..87178b02c004 100644 --- a/qcom/lahaina.dtsi +++ b/qcom/lahaina.dtsi @@ -5657,6 +5657,20 @@ qcom,use-ap-power-save; status = "disabled"; }; + + qfprom: qfprom@784000 { + compatible = "qcom,qfprom"; + reg = <0x784000 0x3000>; + #address-cells = <1>; + #size-cells = <1>; + read-only; + ranges; + + gpu_speed_bin: gpu_speed_bin@17b { + reg = <0x17b 0x1>; + bits = <5 3>; + }; + }; }; #include "ipcc-test.dtsi"