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@xxxxxxxxxx/ 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