From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
Andy Gross <agross@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Ilia Lin <ilia.lin@kernel.org>, Viresh Kumar <vireshk@kernel.org>,
Nishanth Menon <nm@ti.com>, Stephen Boyd <sboyd@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Georgi Djakov <djakov@kernel.org>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-pm@vger.kernel.org, linux-clk@vger.kernel.org,
Christian Marangi <ansuelsmth@gmail.com>,
Stephan Gerhold <stephan@gerhold.net>
Subject: [PATCH v2 00/26] ARM: qcom: apq8064: support CPU frequency scaling
Date: Sun, 25 Jun 2023 23:25:21 +0300 [thread overview]
Message-ID: <20230625202547.174647-1-dmitry.baryshkov@linaro.org> (raw)
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.
Changes since v1:
- Added separate Krait L2 cache device driver
- Moved vdd-mem and vdd-dig scaling to the L2 cache device (Christian,
Stephen Gerhold)
- Fixed the 'INTERCONNECT' in the guarding define for krait-cc bindings
(Stephen Boyd)
- Made SAW2's regulator property -> node handling clear (Krzysztof)
- Dropped the 'regulator' property from all SAW2 devices.
Dmitry Baryshkov (26):
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
dt-bindings: cache: describe L2 cache on Qualcomm Krait platforms
interconnect: icc-clk: add support for scaling using OPP
clk: qcom: krait-cc: rewrite driver to use clk_hw instead of clk
soc: qcom: spm: add support for voltage regulator
cpufreq: qcom-nvmem: create L2 cache device
cpufreq: qcom-nvmem: also accept operating-points-v2-krait-cpu
cpufreq: qcom-nvmem: drop pvs_ver for format a fuses
cpufreq: qcom-nvmem: provide separate configuration data for apq8064
soc: qcom: Add driver for Qualcomm Krait L2 cache scaling
ARM: dts: qcom: apq8064: rename SAW nodes to power-manager
ARM: dts: qcom: apq8064: declare SAW2 regulators
ARM: dts: qcom: apq8064: add L2 cache scaling
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
ARM: dts: qcom: msm8960: declare SAW2 regulators
ARM: dts: qcom: apq8084: drop 'regulator' property from SAW2 device
ARM: dts: qcom: msm8974: drop 'regulator' property from SAW2 device
ARM: dts: qcom: ipq4019: drop 'regulator' property from SAW2 devices
ARM: dts: qcom: ipq8064: drop 'regulator' property from SAW2 devices
.../devicetree/bindings/arm/msm/qcom,saw2.txt | 58 --
.../bindings/cache/qcom,krait-l2-cache.yaml | 75 ++
.../bindings/opp/opp-v2-kryo-cpu.yaml | 12 +-
.../qcom/{qcom,spm.yaml => qcom,saw2.yaml} | 39 +-
.../dts/qcom/qcom-apq8064-asus-nexus7-flo.dts | 14 +-
.../boot/dts/qcom/qcom-apq8064-ifc6410.dts | 18 +-
arch/arm/boot/dts/qcom/qcom-apq8064.dtsi | 671 +++++++++++++++++-
arch/arm/boot/dts/qcom/qcom-apq8084.dtsi | 1 -
arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi | 5 -
arch/arm/boot/dts/qcom/qcom-ipq8064.dtsi | 2 -
arch/arm/boot/dts/qcom/qcom-msm8960.dtsi | 12 +-
arch/arm/boot/dts/qcom/qcom-msm8974.dtsi | 1 -
drivers/clk/qcom/krait-cc.c | 141 ++--
drivers/cpufreq/qcom-cpufreq-nvmem.c | 76 +-
drivers/interconnect/icc-clk.c | 13 +-
drivers/soc/qcom/Kconfig | 9 +
drivers/soc/qcom/Makefile | 1 +
drivers/soc/qcom/krait-l2-cache.c | 190 +++++
drivers/soc/qcom/spm.c | 205 +++++-
include/dt-bindings/clock/qcom,krait-cc.h | 17 +
include/dt-bindings/soc/qcom,krait-l2-cache.h | 12 +
include/linux/interconnect-clk.h | 1 +
include/soc/qcom/spm.h | 9 +
23 files changed, 1403 insertions(+), 179 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,saw2.txt
create mode 100644 Documentation/devicetree/bindings/cache/qcom,krait-l2-cache.yaml
rename Documentation/devicetree/bindings/soc/qcom/{qcom,spm.yaml => qcom,saw2.yaml} (57%)
create mode 100644 drivers/soc/qcom/krait-l2-cache.c
create mode 100644 include/dt-bindings/clock/qcom,krait-cc.h
create mode 100644 include/dt-bindings/soc/qcom,krait-l2-cache.h
--
2.39.2
next reply other threads:[~2023-06-25 20:25 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-25 20:25 Dmitry Baryshkov [this message]
2023-06-25 20:25 ` [PATCH v2 01/26] dt-bindings: opp: opp-v2-kryo-cpu: support Qualcomm Krait SoCs Dmitry Baryshkov
2023-06-29 14:48 ` Rob Herring
2023-06-25 20:25 ` [PATCH v2 02/26] dt-bindings: soc: qcom: merge qcom,saw2.txt into qcom,spm.yaml Dmitry Baryshkov
2023-06-29 14:50 ` Rob Herring
2023-06-25 20:25 ` [PATCH v2 03/26] dt-bindings: soc: qcom: qcom,saw2: define optional regulator node Dmitry Baryshkov
2023-06-29 14:52 ` Rob Herring
2023-06-25 20:25 ` [PATCH v2 04/26] dt-bindings: clock: qcom,krait-cc: Krait core clock controller Dmitry Baryshkov
2023-06-26 11:21 ` Konrad Dybcio
2023-06-26 13:37 ` Dmitry Baryshkov
2023-06-29 14:53 ` Rob Herring
2023-06-25 20:25 ` [PATCH v2 05/26] dt-bindings: cache: describe L2 cache on Qualcomm Krait platforms Dmitry Baryshkov
2023-06-25 21:48 ` Rob Herring
2023-06-25 20:25 ` [PATCH v2 06/26] interconnect: icc-clk: add support for scaling using OPP Dmitry Baryshkov
2023-06-26 11:28 ` Konrad Dybcio
2023-06-26 13:44 ` Dmitry Baryshkov
2023-06-26 16:47 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 07/26] clk: qcom: krait-cc: rewrite driver to use clk_hw instead of clk Dmitry Baryshkov
2023-06-25 20:25 ` [PATCH v2 08/26] soc: qcom: spm: add support for voltage regulator Dmitry Baryshkov
2023-06-26 11:47 ` Konrad Dybcio
2023-06-26 13:53 ` Dmitry Baryshkov
2023-06-26 14:00 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 09/26] cpufreq: qcom-nvmem: create L2 cache device Dmitry Baryshkov
2023-06-26 11:50 ` Konrad Dybcio
2023-06-26 13:36 ` Dmitry Baryshkov
2023-07-02 17:37 ` Dmitry Baryshkov
2023-06-25 20:25 ` [PATCH v2 10/26] cpufreq: qcom-nvmem: also accept operating-points-v2-krait-cpu Dmitry Baryshkov
2023-06-26 11:50 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 11/26] cpufreq: qcom-nvmem: drop pvs_ver for format a fuses Dmitry Baryshkov
2023-06-26 11:51 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 12/26] cpufreq: qcom-nvmem: provide separate configuration data for apq8064 Dmitry Baryshkov
2023-06-25 20:25 ` [PATCH v2 13/26] soc: qcom: Add driver for Qualcomm Krait L2 cache scaling Dmitry Baryshkov
2023-06-29 20:43 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 14/26] ARM: dts: qcom: apq8064: rename SAW nodes to power-manager Dmitry Baryshkov
2023-06-26 11:52 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 15/26] ARM: dts: qcom: apq8064: declare SAW2 regulators Dmitry Baryshkov
2023-06-26 11:53 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 16/26] ARM: dts: qcom: apq8064: add L2 cache scaling Dmitry Baryshkov
2023-06-26 16:37 ` Konrad Dybcio
2023-06-26 16:46 ` Konrad Dybcio
2023-06-26 19:04 ` Dmitry Baryshkov
2023-06-25 20:25 ` [PATCH v2 17/26] ARM: dts: qcom: apq8064: add simple CPUFreq support Dmitry Baryshkov
2023-06-26 16:40 ` Konrad Dybcio
2023-06-26 19:49 ` Dmitry Baryshkov
2023-06-27 12:13 ` Konrad Dybcio
2023-06-27 14:11 ` Dmitry Baryshkov
2023-06-27 16:34 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 18/26] ARM: dts: qcom: apq8064: provide voltage scaling tables Dmitry Baryshkov
2023-06-26 16:43 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 19/26] ARM: dts: qcom: apq8064: enable passive CPU cooling Dmitry Baryshkov
2023-06-26 16:43 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 20/26] ARM: dts: qcom: apq8064-asus-nexus7-flo: constraint cpufreq regulators Dmitry Baryshkov
2023-06-26 16:44 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 21/26] ARM: dts: qcom: apq8064-ifc6410: " Dmitry Baryshkov
2023-06-26 16:45 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 22/26] ARM: dts: qcom: msm8960: declare SAW2 regulators Dmitry Baryshkov
2023-06-26 14:03 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 23/26] ARM: dts: qcom: apq8084: drop 'regulator' property from SAW2 device Dmitry Baryshkov
2023-06-26 14:02 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 24/26] ARM: dts: qcom: msm8974: " Dmitry Baryshkov
2023-06-26 14:02 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 25/26] ARM: dts: qcom: ipq4019: drop 'regulator' property from SAW2 devices Dmitry Baryshkov
2023-06-26 14:02 ` Konrad Dybcio
2023-06-25 20:25 ` [PATCH v2 26/26] ARM: dts: qcom: ipq8064: " Dmitry Baryshkov
2023-06-26 14:02 ` Konrad Dybcio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230625202547.174647-1-dmitry.baryshkov@linaro.org \
--to=dmitry.baryshkov@linaro.org \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=ansuelsmth@gmail.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djakov@kernel.org \
--cc=ilia.lin@kernel.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=nm@ti.com \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sboyd@kernel.org \
--cc=stephan@gerhold.net \
--cc=vireshk@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).