[PATCH 00/18] ARM: qcom: apq8064: support CPU frequency scaling

Dmitry Baryshkov
2023-06-12T05:39:29Z

Implement CPUFreq support for one of the oldest supported Qualcomm
platforms, APQ8064. Each core has independent power and frequency
control. Additionally the L2 cache is scaled to follow the CPU
frequencies (failure to do so results in strange semi-random crashes).

Core voltage is controlled through the SAW2 devices, one for each core.
The L2 has two regulators, vdd-mem and vdd-dig.

Depenency: [1] for interconnect-clk implementation

https://lore.kernel.org/linux-arm-msm/20230512001334.2983048-3-dmitry.baryshkov@linaro.org/

Dmitry Baryshkov (18):
dt-bindings: opp: opp-v2-kryo-cpu: support Qualcomm Krait SoCs
dt-bindings: soc: qcom: merge qcom,saw2.txt into qcom,spm.yaml
dt-bindings: soc: qcom: qcom,saw2: define optional regulator node
dt-bindings: clock: qcom,krait-cc: Krait core clock controller
clk: qcom: krait-cc: rewrite driver to use clk_hw instead of clk
clk: qcom: krait-cc: export L2 clock as an interconnect
soc: qcom: spm: add support for voltage regulator
cpufreq: qcom-nvmem: also accept operating-points-v2-krait-cpu
cpufreq: qcom-nvmem: Add support for voltage scaling
cpufreq: qcom-nvmem: drop pvs_ver for format a fuses
cpufreq: qcom-nvmem: provide separate configuration data for apq8064
ARM: dts: qcom: apq8064: rename SAW nodes to power-manager
ARM: dts: qcom: apq8064: declare SAW2 regulators
ARM: dts: qcom: apq8064: add simple CPUFreq support
ARM: dts: qcom: apq8064: provide voltage scaling tables
ARM: dts: qcom: apq8064: enable passive CPU cooling
ARM: dts: qcom: apq8064-asus-nexus7-flo: constraint cpufreq regulators
ARM: dts: qcom: apq8064-ifc6410: constraint cpufreq regulators

.../devicetree/bindings/arm/msm/qcom,saw2.txt | 58 -
.../bindings/opp/opp-v2-kryo-cpu.yaml | 11 +-
.../qcom/{qcom,spm.yaml => qcom,saw2.yaml} | 39 +-
.../boot/dts/qcom-apq8064-asus-nexus7-flo.dts | 14 +-
arch/arm/boot/dts/qcom-apq8064-ifc6410.dts | 18 +-
arch/arm/boot/dts/qcom-apq8064.dtsi | 1247 ++++++++++++++++-
drivers/clk/qcom/Kconfig | 1 +
drivers/clk/qcom/krait-cc.c | 185 +--
drivers/cpufreq/qcom-cpufreq-nvmem.c | 164 ++-
drivers/soc/qcom/spm.c | 205 ++-
include/dt-bindings/clock/qcom,krait-cc.h | 20 +
include/soc/qcom/spm.h | 9 +
12 files changed, 1806 insertions(+), 165 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,saw2.txt
rename Documentation/devicetree/bindings/soc/qcom/{qcom,spm.yaml => qcom,saw2.yaml} (58%)
create mode 100644 include/dt-bindings/clock/qcom,krait-cc.h

--
2.39.2