From: Lucas Stach <l.stach@pengutronix.de>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Rafael Wysocki <rjw@rjwysocki.net>,
arnd.bergmann@linaro.org, rob.herring@linaro.org,
grant.likely@linaro.org, olof@lixom.net,
linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org,
nm@ti.com, Sudeep.Holla@arm.com, sboyd@codeaurora.org,
devicetree@vger.kernel.org, santosh.shilimkar@oracle.com,
mike.turquette@linaro.org, kesavan.abhilash@gmail.com,
catalin.marinas@arm.com, ta.omasab@gmail.com,
linux-arm-kernel@lists.infradead.org,
thomas.petazzoni@free-electrons.com, broonie@kernel.org
Subject: Re: [RFC V2] OPP: Redefine bindings to overcome shortcomings
Date: Fri, 23 Jan 2015 12:39:14 +0100 [thread overview]
Message-ID: <1422013154.29475.11.camel@pengutronix.de> (raw)
In-Reply-To: <cbe949d7a69c3b16a3e9d6e5429eb81d3ae9d8b9.1422009157.git.viresh.kumar@linaro.org>
Am Freitag, den 23.01.2015, 16:14 +0530 schrieb Viresh Kumar:
> Rob et al,
>
> This is another attempt to redefine OPP bindings which we concluded to after
> first round of reviews.
>
> Current OPP (Operating performance point) DT bindings are proven to be
> insufficient at multiple instances.
>
> There had been multiple band-aid approaches to get them fixed (The latest one
> being: http://www.mail-archive.com/devicetree@vger.kernel.org/msg53398.html).
> For obvious reasons Rob rejected them and shown the right path forward.
>
> The shortcomings we are trying to solve here:
>
> - How to select which driver to probe for a platform, when multiple drivers are
> available. For example: how to choose between cpufreq-dt and arm_big_little
> drivers.
>
> - Getting clock sharing information between CPUs. Single shared clock vs
> independent clock per core vs shared clock per cluster.
>
> - Support for turbo modes
>
> - Support for intermediate frequencies
>
> - Other per OPP settings: transition latencies, disabled status, etc.?
>
> Please see the below bindings for further details.
>
> I haven't incorporated the comments given by Mark Brown as I had some doubts.
> @broonie: Is this what you wanted to mention earlier ? : http://pastebin.com/1RZTccmm
>
I think we should work this out for the new bindings, as
voltage-tolerance is a completely bogus value.
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
>
> Documentation/devicetree/bindings/power/opp.txt | 309 +++++++++++++++++++++++-
> 1 file changed, 308 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/power/opp.txt b/Documentation/devicetree/bindings/power/opp.txt
> index 74499e5033fc..9cdc0c9b09af 100644
> --- a/Documentation/devicetree/bindings/power/opp.txt
> +++ b/Documentation/devicetree/bindings/power/opp.txt
> @@ -1,9 +1,316 @@
> -* Generic OPP Interface
> +Generic OPP (Operating Performance Points) Interface
> +----------------------------------------------------
>
> SoCs have a standard set of tuples consisting of frequency and
> voltage pairs that the device will support per voltage domain. These
> are called Operating Performance Points or OPPs.
>
> +This documents defines OPP bindings with its required/optional properties. OPPs
> +can be defined for any device, this file uses CPU as an example to illustrate
> +how to define OPPs.
> +
> +opp nodes and opp-lists
> +
> +- opp-listN:
> + List of nodes defining performance points. Following belong to the nodes
> + within the opp-lists.
> +
> + Required properties:
> + - opp-khz: Frequency in kHz
> + - opp-microvolt: voltage in micro Volts
Each OPP voltage should be defined by the triplet of minimum,
nominal/typical, maximum. This lets you specify exact tolerances in each
direction and should cover most use-cases.
IMHO it would make sense to just define opp-microvolt as an array of
those 3 values, so the DT doesn't get bloated with a lot more
properties.
A typical value for a CPU could then look like this:
opp-microvolt = <800000 850000 1100000>
For devices without any tolerance you can just specify the same value
three times and be done with it:
opp-microvolt = <900000 900000 900000>
> +
> + Optional properties:
> + - turbo-mode: Marks the volt-freq pair as turbo pair.
> + - status: Marks the node enabled/disabled.
> + - voltage-tolerance: Specify the CPU voltage tolerance in percentage.
Please let's drop this.
> + - clock-latency-ns: Specify the possible maximum transition latency (in
> + nanoseconds) for switching to this opp from any other opp.
> +
> +- oppN:
> + Operating performance point node per device. Devices using it should have its
> + phandle in their "operating-points-v2" property.
> +
> + Required properties:
> + - compatible: allow OPPs to express their compatibility.
> + - opp-list: phandle to opp-list defined above.
> +
> + Optional properties:
> + - opp-intermediate: Stable opp we *must* switch to, before switching to the
> + target opp. Contains phandle of one of the opp-node present in opp-list.
> +
[...]
Regards,
Lucas
WARNING: multiple messages have this Message-ID (diff)
From: l.stach@pengutronix.de (Lucas Stach)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC V2] OPP: Redefine bindings to overcome shortcomings
Date: Fri, 23 Jan 2015 12:39:14 +0100 [thread overview]
Message-ID: <1422013154.29475.11.camel@pengutronix.de> (raw)
In-Reply-To: <cbe949d7a69c3b16a3e9d6e5429eb81d3ae9d8b9.1422009157.git.viresh.kumar@linaro.org>
Am Freitag, den 23.01.2015, 16:14 +0530 schrieb Viresh Kumar:
> Rob et al,
>
> This is another attempt to redefine OPP bindings which we concluded to after
> first round of reviews.
>
> Current OPP (Operating performance point) DT bindings are proven to be
> insufficient at multiple instances.
>
> There had been multiple band-aid approaches to get them fixed (The latest one
> being: http://www.mail-archive.com/devicetree at vger.kernel.org/msg53398.html).
> For obvious reasons Rob rejected them and shown the right path forward.
>
> The shortcomings we are trying to solve here:
>
> - How to select which driver to probe for a platform, when multiple drivers are
> available. For example: how to choose between cpufreq-dt and arm_big_little
> drivers.
>
> - Getting clock sharing information between CPUs. Single shared clock vs
> independent clock per core vs shared clock per cluster.
>
> - Support for turbo modes
>
> - Support for intermediate frequencies
>
> - Other per OPP settings: transition latencies, disabled status, etc.?
>
> Please see the below bindings for further details.
>
> I haven't incorporated the comments given by Mark Brown as I had some doubts.
> @broonie: Is this what you wanted to mention earlier ? : http://pastebin.com/1RZTccmm
>
I think we should work this out for the new bindings, as
voltage-tolerance is a completely bogus value.
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
>
> Documentation/devicetree/bindings/power/opp.txt | 309 +++++++++++++++++++++++-
> 1 file changed, 308 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/power/opp.txt b/Documentation/devicetree/bindings/power/opp.txt
> index 74499e5033fc..9cdc0c9b09af 100644
> --- a/Documentation/devicetree/bindings/power/opp.txt
> +++ b/Documentation/devicetree/bindings/power/opp.txt
> @@ -1,9 +1,316 @@
> -* Generic OPP Interface
> +Generic OPP (Operating Performance Points) Interface
> +----------------------------------------------------
>
> SoCs have a standard set of tuples consisting of frequency and
> voltage pairs that the device will support per voltage domain. These
> are called Operating Performance Points or OPPs.
>
> +This documents defines OPP bindings with its required/optional properties. OPPs
> +can be defined for any device, this file uses CPU as an example to illustrate
> +how to define OPPs.
> +
> +opp nodes and opp-lists
> +
> +- opp-listN:
> + List of nodes defining performance points. Following belong to the nodes
> + within the opp-lists.
> +
> + Required properties:
> + - opp-khz: Frequency in kHz
> + - opp-microvolt: voltage in micro Volts
Each OPP voltage should be defined by the triplet of minimum,
nominal/typical, maximum. This lets you specify exact tolerances in each
direction and should cover most use-cases.
IMHO it would make sense to just define opp-microvolt as an array of
those 3 values, so the DT doesn't get bloated with a lot more
properties.
A typical value for a CPU could then look like this:
opp-microvolt = <800000 850000 1100000>
For devices without any tolerance you can just specify the same value
three times and be done with it:
opp-microvolt = <900000 900000 900000>
> +
> + Optional properties:
> + - turbo-mode: Marks the volt-freq pair as turbo pair.
> + - status: Marks the node enabled/disabled.
> + - voltage-tolerance: Specify the CPU voltage tolerance in percentage.
Please let's drop this.
> + - clock-latency-ns: Specify the possible maximum transition latency (in
> + nanoseconds) for switching to this opp from any other opp.
> +
> +- oppN:
> + Operating performance point node per device. Devices using it should have its
> + phandle in their "operating-points-v2" property.
> +
> + Required properties:
> + - compatible: allow OPPs to express their compatibility.
> + - opp-list: phandle to opp-list defined above.
> +
> + Optional properties:
> + - opp-intermediate: Stable opp we *must* switch to, before switching to the
> + target opp. Contains phandle of one of the opp-node present in opp-list.
> +
[...]
Regards,
Lucas
next prev parent reply other threads:[~2015-01-23 11:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-23 10:44 [RFC V2] OPP: Redefine bindings to overcome shortcomings Viresh Kumar
2015-01-23 10:44 ` Viresh Kumar
[not found] ` <cbe949d7a69c3b16a3e9d6e5429eb81d3ae9d8b9.1422009157.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-01-23 10:46 ` Viresh Kumar
2015-01-23 10:46 ` Viresh Kumar
2015-01-29 16:22 ` Rob Herring
2015-01-29 16:22 ` Rob Herring
2015-01-30 5:36 ` Viresh Kumar
2015-01-30 5:36 ` Viresh Kumar
2015-01-23 11:39 ` Lucas Stach [this message]
2015-01-23 11:39 ` Lucas Stach
[not found] ` <1422013154.29475.11.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2015-01-23 11:52 ` Mark Brown
2015-01-23 11:52 ` Mark Brown
2015-01-23 12:55 ` Viresh Kumar
2015-01-23 12:55 ` Viresh Kumar
2015-01-23 12:53 ` Viresh Kumar
2015-01-23 12:53 ` Viresh Kumar
2015-01-28 20:06 ` Mark Brown
2015-01-28 20:06 ` Mark Brown
[not found] ` <20150128200600.GR21293-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-01-29 1:39 ` Viresh Kumar
2015-01-29 1:39 ` Viresh Kumar
2015-01-29 11:07 ` Mark Brown
2015-01-29 11:07 ` Mark Brown
[not found] ` <20150129110744.GU21293-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-01-29 11:34 ` Viresh Kumar
2015-01-29 11:34 ` Viresh Kumar
2015-01-29 15:42 ` Rob Herring
2015-01-29 15:42 ` Rob Herring
[not found] ` <CAL_Jsq+mhuR-DnjXo9Mmgpazgb_3R+sm+Ztkd7+6Q3iVw0aKOA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-30 5:17 ` Viresh Kumar
2015-01-30 5:17 ` Viresh Kumar
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=1422013154.29475.11.camel@pengutronix.de \
--to=l.stach@pengutronix.de \
--cc=Sudeep.Holla@arm.com \
--cc=arnd.bergmann@linaro.org \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@linaro.org \
--cc=kesavan.abhilash@gmail.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=mike.turquette@linaro.org \
--cc=nm@ti.com \
--cc=olof@lixom.net \
--cc=rjw@rjwysocki.net \
--cc=rob.herring@linaro.org \
--cc=santosh.shilimkar@oracle.com \
--cc=sboyd@codeaurora.org \
--cc=ta.omasab@gmail.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=viresh.kumar@linaro.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.