From: Georgi Djakov <georgi.djakov@linaro.org>
To: vireshk@kernel.org, nm@ti.com, sboyd@kernel.org,
robh+dt@kernel.org, rjw@rjwysocki.net, saravanak@google.com,
sibis@codeaurora.org
Cc: rnayak@codeaurora.org, bjorn.andersson@linaro.org,
vincent.guittot@linaro.org, jcrouse@codeaurora.org,
evgreen@chromium.org, linux-pm@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
georgi.djakov@linaro.org
Subject: [PATCH v7 7/7] cpufreq: dt: Add support for interconnect bandwidth scaling
Date: Fri, 24 Apr 2020 18:54:04 +0300 [thread overview]
Message-ID: <20200424155404.10746-8-georgi.djakov@linaro.org> (raw)
In-Reply-To: <20200424155404.10746-1-georgi.djakov@linaro.org>
In addition to clocks and regulators, some devices can scale the bandwidth
of their on-chip interconnect - for example between CPU and DDR memory. Add
support for that, so that platforms which support it can make use of it.
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
---
v7:
* Drop using dev_pm_opp_set_paths(), as it has been removed.
* Add Kconfig dependency on INTERCONNECT, as it can be module.
v2: https://lore.kernel.org/r/20190423132823.7915-6-georgi.djakov@linaro.org
drivers/cpufreq/Kconfig | 1 +
drivers/cpufreq/cpufreq-dt.c | 15 +++++++++++++++
2 files changed, 16 insertions(+)
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig
index c3e6bd59e920..db2ad54ee67f 100644
--- a/drivers/cpufreq/Kconfig
+++ b/drivers/cpufreq/Kconfig
@@ -217,6 +217,7 @@ config CPUFREQ_DT
config CPUFREQ_DT_PLATDEV
bool
+ depends on INTERCONNECT || !INTERCONNECT
help
This adds a generic DT based cpufreq platdev driver for frequency
management. This creates a 'cpufreq-dt' platform device, on the
diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c
index 26fe8dfb9ce6..4ecef3257532 100644
--- a/drivers/cpufreq/cpufreq-dt.c
+++ b/drivers/cpufreq/cpufreq-dt.c
@@ -13,6 +13,7 @@
#include <linux/cpufreq.h>
#include <linux/cpumask.h>
#include <linux/err.h>
+#include <linux/interconnect.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pm_opp.h>
@@ -95,6 +96,7 @@ static int resources_available(void)
struct device *cpu_dev;
struct regulator *cpu_reg;
struct clk *cpu_clk;
+ struct icc_path *cpu_path;
int ret = 0;
const char *name;
@@ -121,6 +123,19 @@ static int resources_available(void)
clk_put(cpu_clk);
+ cpu_path = of_icc_get(cpu_dev, NULL);
+ ret = PTR_ERR_OR_ZERO(cpu_path);
+ if (ret) {
+ if (ret == -EPROBE_DEFER)
+ dev_dbg(cpu_dev, "defer icc path: %d\n", ret);
+ else
+ dev_err(cpu_dev, "failed to get icc path: %d\n", ret);
+
+ return ret;
+ }
+
+ icc_put(cpu_path);
+
name = find_supply_name(cpu_dev);
/* Platform doesn't require regulator */
if (!name)
next prev parent reply other threads:[~2020-04-24 15:54 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-24 15:53 [PATCH v7 0/7] Introduce OPP bandwidth bindings Georgi Djakov
2020-04-24 15:53 ` [PATCH v7 1/7] dt-bindings: opp: Introduce opp-peak-kBps and opp-avg-kBps bindings Georgi Djakov
2020-04-30 5:09 ` Viresh Kumar
2020-05-04 20:31 ` Sibi Sankar
2020-05-11 21:51 ` Rob Herring
2020-04-24 15:53 ` [PATCH v7 2/7] OPP: Add helpers for reading the binding properties Georgi Djakov
2020-04-24 17:30 ` Matthias Kaehlcke
2020-04-30 5:21 ` Viresh Kumar
2020-05-04 20:40 ` Sibi Sankar
2020-04-24 15:54 ` [PATCH v7 3/7] interconnect: Add of_icc_get_by_index() helper function Georgi Djakov
2020-04-24 18:02 ` Matthias Kaehlcke
2020-05-04 20:58 ` Sibi Sankar
2020-04-24 15:54 ` [PATCH v7 4/7] OPP: Add support for parsing interconnect bandwidth Georgi Djakov
2020-04-24 19:20 ` Matthias Kaehlcke
2020-04-28 16:21 ` Georgi Djakov
2020-04-30 5:28 ` Viresh Kumar
2020-05-04 21:03 ` Sibi Sankar
2020-04-24 15:54 ` [PATCH v7 5/7] OPP: Add sanity checks in _read_opp_key() Georgi Djakov
2020-04-24 19:26 ` Matthias Kaehlcke
2020-05-04 20:47 ` Sibi Sankar
2020-04-24 15:54 ` [PATCH v7 6/7] OPP: Update the bandwidth on OPP frequency changes Georgi Djakov
2020-04-24 19:36 ` Matthias Kaehlcke
2020-04-24 21:18 ` Saravana Kannan
2020-04-30 6:09 ` Viresh Kumar
2020-04-30 7:35 ` Saravana Kannan
2020-04-30 7:53 ` Viresh Kumar
2020-04-30 16:32 ` Saravana Kannan
2020-05-04 5:00 ` Viresh Kumar
2020-05-04 21:01 ` Saravana Kannan
2020-05-05 3:38 ` Viresh Kumar
2020-05-04 20:54 ` Sibi Sankar
2020-04-24 15:54 ` Georgi Djakov [this message]
2020-04-24 19:41 ` [PATCH v7 7/7] cpufreq: dt: Add support for interconnect bandwidth scaling Matthias Kaehlcke
2020-05-04 20:50 ` Sibi Sankar
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=20200424155404.10746-8-georgi.djakov@linaro.org \
--to=georgi.djakov@linaro.org \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=evgreen@chromium.org \
--cc=jcrouse@codeaurora.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=nm@ti.com \
--cc=rjw@rjwysocki.net \
--cc=rnayak@codeaurora.org \
--cc=robh+dt@kernel.org \
--cc=saravanak@google.com \
--cc=sboyd@kernel.org \
--cc=sibis@codeaurora.org \
--cc=vincent.guittot@linaro.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.