All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Stephen Boyd <sboyd@codeaurora.org>,
	Rob Herring <robherring2@gmail.com>, Nishanth Menon <nm@ti.com>,
	kernel@stlinux.com,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>,
	Rafael Wysocki <rjw@rjwysocki.net>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Sebastian Reichel <sre@kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Arnd Bergmann <arnd.bergmann@linaro.org>,
	Ajit Pal Singh <ajitpal.singh@st.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v4 2/2] dt: power: st: Provide bindings for ST's OPPs
Date: Mon, 10 Aug 2015 14:22:47 +0100	[thread overview]
Message-ID: <20150810132247.GH3249@x1> (raw)
In-Reply-To: <20150803034642.GV899@linux>

On Mon, 03 Aug 2015, Viresh Kumar wrote:

> On 31-07-15, 09:37, Stephen Boyd wrote:
> > For qcom platforms, the frequency is almost always constant.
> > There may be some tables where we have a couple higher
> > frequencies than others because the speed bin is different.
> > Otherwise the voltage/current is changing based on the silicon
> > characteristics. So the biggest duplication is the frequency
> > property.
> > 
> > As far as I know there isn't any algorithm to generate the
> > voltage values. It's all hand tuned tables based on the silicon
> > characterization, so we're left to store these tables in DT and
> > pick the right one at runtime. With regards to the table
> > explosion, on qcom platforms we haven't worried that we have ~40
> > tables, but I'm not opposed to expressing it in a smaller set of
> > nodes, tables, etc. if that's what's desired.
> > 
> > Do we need vendor specific properties for that though? Or do we
> > need some sort of extended frequency/voltage properties that are
> > arrays of values that we can index into based on some silicon
> > characteristics? I like the name based approach because it's
> > simple. Use this OPP table because it's called
> > x-y-z-characteristics and be done. Cramming the tables into less
> > lines may save us some typing and dtb space, but I'm not sure
> > what else it does.
> 
> What about something like this:
> 
> diff --git a/Documentation/devicetree/bindings/opp/opp.txt b/Documentation/devicetree/bindings/opp/opp.txt
> index 0cb44dc21f97..bad7a8299b9c 100644
> --- a/Documentation/devicetree/bindings/opp/opp.txt
> +++ b/Documentation/devicetree/bindings/opp/opp.txt
> @@ -74,6 +74,8 @@ This describes the OPPs belonging to a device. This node can have following
>    reference an OPP.
>  
>  Optional properties:
> +- opp-cuts: One or more strings, describing the versions of hardware the OPPs
> +  can support.

This isn't very generic.

I'm guessing some vendors my have quite a few ways to differentiate
between board versions/revisions/cuts etc.

How about another array where a vendor can choose to identify a piece
of hardware however they see fit.

Example 1 (simple version):

/* Version 1 */
opp-version = <1>;

Example 2 (using the kernel's versioning):

/* 2.6.32-rc1 */
opp-version = <2 6 32 1>;

Example 3 (using ST's versioning):

/* Major 2, Minor 0, Cut 2, All substrates */
opp-version = <2 0 2 0xff>;

Qcom (or anyone else wanting to use names to identify their revisions)
can continue to use their node name method, as it doesn't break any
convention.

>  - opp-shared: Indicates that device nodes using this OPP Table Node's phandle
>    switch their DVFS state together, i.e. they share clock/voltage/current lines.
>    Missing property means devices have independent clock/voltage/current lines,
> @@ -100,6 +102,9 @@ properties.
>    Entries for multiple regulators must be present in the same order as
>    regulators are specified in device's DT node.
>  
> +  If used with 'opp-cuts', then the number of entries present here must match
> +  the number of strings present in 'opp-cuts'.
> +
>  - opp-microamp: The maximum current drawn by the device in microamperes
>    considering system specific parameters (such as transients, process, aging,
>    maximum operating temperature range etc.) as necessary. This may be used to
> 

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 2/2] dt: power: st: Provide bindings for ST's OPPs
Date: Mon, 10 Aug 2015 14:22:47 +0100	[thread overview]
Message-ID: <20150810132247.GH3249@x1> (raw)
In-Reply-To: <20150803034642.GV899@linux>

On Mon, 03 Aug 2015, Viresh Kumar wrote:

> On 31-07-15, 09:37, Stephen Boyd wrote:
> > For qcom platforms, the frequency is almost always constant.
> > There may be some tables where we have a couple higher
> > frequencies than others because the speed bin is different.
> > Otherwise the voltage/current is changing based on the silicon
> > characteristics. So the biggest duplication is the frequency
> > property.
> > 
> > As far as I know there isn't any algorithm to generate the
> > voltage values. It's all hand tuned tables based on the silicon
> > characterization, so we're left to store these tables in DT and
> > pick the right one at runtime. With regards to the table
> > explosion, on qcom platforms we haven't worried that we have ~40
> > tables, but I'm not opposed to expressing it in a smaller set of
> > nodes, tables, etc. if that's what's desired.
> > 
> > Do we need vendor specific properties for that though? Or do we
> > need some sort of extended frequency/voltage properties that are
> > arrays of values that we can index into based on some silicon
> > characteristics? I like the name based approach because it's
> > simple. Use this OPP table because it's called
> > x-y-z-characteristics and be done. Cramming the tables into less
> > lines may save us some typing and dtb space, but I'm not sure
> > what else it does.
> 
> What about something like this:
> 
> diff --git a/Documentation/devicetree/bindings/opp/opp.txt b/Documentation/devicetree/bindings/opp/opp.txt
> index 0cb44dc21f97..bad7a8299b9c 100644
> --- a/Documentation/devicetree/bindings/opp/opp.txt
> +++ b/Documentation/devicetree/bindings/opp/opp.txt
> @@ -74,6 +74,8 @@ This describes the OPPs belonging to a device. This node can have following
>    reference an OPP.
>  
>  Optional properties:
> +- opp-cuts: One or more strings, describing the versions of hardware the OPPs
> +  can support.

This isn't very generic.

I'm guessing some vendors my have quite a few ways to differentiate
between board versions/revisions/cuts etc.

How about another array where a vendor can choose to identify a piece
of hardware however they see fit.

Example 1 (simple version):

/* Version 1 */
opp-version = <1>;

Example 2 (using the kernel's versioning):

/* 2.6.32-rc1 */
opp-version = <2 6 32 1>;

Example 3 (using ST's versioning):

/* Major 2, Minor 0, Cut 2, All substrates */
opp-version = <2 0 2 0xff>;

Qcom (or anyone else wanting to use names to identify their revisions)
can continue to use their node name method, as it doesn't break any
convention.

>  - opp-shared: Indicates that device nodes using this OPP Table Node's phandle
>    switch their DVFS state together, i.e. they share clock/voltage/current lines.
>    Missing property means devices have independent clock/voltage/current lines,
> @@ -100,6 +102,9 @@ properties.
>    Entries for multiple regulators must be present in the same order as
>    regulators are specified in device's DT node.
>  
> +  If used with 'opp-cuts', then the number of entries present here must match
> +  the number of strings present in 'opp-cuts'.
> +
>  - opp-microamp: The maximum current drawn by the device in microamperes
>    considering system specific parameters (such as transients, process, aging,
>    maximum operating temperature range etc.) as necessary. This may be used to
> 

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2015-08-10 13:22 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-27 15:20 [PATCH v4 1/2] dt: cpufreq: st: Provide bindings for ST's CPUFreq implementation Lee Jones
2015-07-27 15:20 ` Lee Jones
2015-07-27 15:20 ` [PATCH v4 2/2] dt: power: st: Provide bindings for ST's OPPs Lee Jones
2015-07-27 15:20   ` Lee Jones
2015-07-28  2:29   ` Viresh Kumar
2015-07-28  2:29     ` Viresh Kumar
2015-07-28  7:34     ` Lee Jones
2015-07-28  7:34       ` Lee Jones
2015-07-28  7:47       ` Viresh Kumar
2015-07-28  7:47         ` Viresh Kumar
2015-07-28  8:30         ` Lee Jones
2015-07-28  8:30           ` Lee Jones
2015-07-28 22:55     ` Stephen Boyd
2015-07-28 22:55       ` Stephen Boyd
2015-07-29  8:14       ` Lee Jones
2015-07-29  8:14         ` Lee Jones
2015-07-29 22:15         ` Stephen Boyd
2015-07-29 22:15           ` Stephen Boyd
2015-07-30  8:46           ` Lee Jones
2015-07-30  8:46             ` Lee Jones
2015-07-30 16:16             ` Rob Herring
2015-07-30 16:16               ` Rob Herring
2015-07-30 16:16               ` Rob Herring
2015-07-31 16:37               ` Stephen Boyd
2015-07-31 16:37                 ` Stephen Boyd
2015-08-01 11:36                 ` Viresh Kumar
2015-08-01 11:36                   ` Viresh Kumar
2015-08-03  3:46                 ` Viresh Kumar
2015-08-03  3:46                   ` Viresh Kumar
2015-08-10 13:22                   ` Lee Jones [this message]
2015-08-10 13:22                     ` Lee Jones
2015-08-11  8:00                     ` Viresh Kumar
2015-08-11  8:00                       ` Viresh Kumar
2015-08-11  8:00                       ` Viresh Kumar
2015-08-11  9:30                       ` Lee Jones
2015-08-11  9:30                         ` Lee Jones
2015-08-11 10:09                         ` Viresh Kumar
2015-08-11 10:09                           ` Viresh Kumar
2015-08-11 10:09                           ` Viresh Kumar
2015-08-11 11:54                           ` Lee Jones
2015-08-11 11:54                             ` Lee Jones
2015-08-11 12:01                             ` Viresh Kumar
2015-08-11 12:01                               ` Viresh Kumar
2015-08-11 13:27                               ` Lee Jones
2015-08-11 13:27                                 ` Lee Jones
2015-08-11 14:28                                 ` Viresh Kumar
2015-08-11 14:28                                   ` Viresh Kumar
2015-08-11 15:17                                   ` Lee Jones
2015-08-11 15:17                                     ` Lee Jones
2015-08-12 11:08                                     ` Viresh Kumar
2015-08-12 11:08                                       ` Viresh Kumar
2015-08-26 12:06                                       ` Lee Jones
2015-08-26 12:06                                         ` Lee Jones
2015-09-02  8:06                                         ` Viresh Kumar
2015-09-02  8:06                                           ` Viresh Kumar
2015-09-02  8:06                                           ` Viresh Kumar
2015-09-02 18:58                                           ` Rob Herring
2015-09-02 18:58                                             ` Rob Herring
2015-09-09  6:27                                             ` Viresh Kumar
2015-09-09  6:27                                               ` Viresh Kumar
2015-09-09  7:59                                               ` Lee Jones
2015-09-09  7:59                                                 ` Lee Jones
2015-09-09  8:30                                                 ` Viresh Kumar
2015-09-09  8:30                                                   ` Viresh Kumar
2015-09-09  8:30                                                   ` Viresh Kumar
2015-09-09 13:39                                                   ` Lee Jones
2015-09-09 13:39                                                     ` Lee Jones
2015-09-09 16:02                                                     ` Viresh Kumar
2015-09-09 16:02                                                       ` Viresh Kumar
2015-09-09 16:36                                                       ` Lee Jones
2015-09-09 16:36                                                         ` Lee Jones
2015-09-09 23:50                                                         ` Rob Herring
2015-09-09 23:50                                                           ` Rob Herring
2015-09-10  0:57                                                           ` Stephen Boyd
2015-09-10  0:57                                                             ` Stephen Boyd
2015-09-10  1:04                                                             ` Viresh Kumar
2015-09-10  1:04                                                               ` Viresh Kumar
2015-09-10  8:31                                                               ` Lee Jones
2015-09-10  8:31                                                                 ` Lee Jones
2015-09-16  4:33                                                                 ` Viresh Kumar
2015-09-16  4:33                                                                   ` Viresh Kumar
2015-09-16  6:52                                                                   ` Lee Jones
2015-09-16  6:52                                                                     ` Lee Jones
     [not found]   ` <1438010430-5802-2-git-send-email-lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-07-28 13:55     ` Rob Herring
2015-07-28 13:55       ` Rob Herring
2015-07-28 13:55       ` Rob Herring
     [not found]       ` <CAL_JsqL=e+fL_67_GPKjt_7wJ81GfFx7m9gjxmBDvW_JBXWpfQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-28 14:39         ` Lee Jones
2015-07-28 14:39           ` Lee Jones
2015-07-28 14:39           ` Lee Jones
2015-07-28 15:35           ` Rob Herring
2015-07-28 15:35             ` Rob Herring
2015-07-28 15:43             ` Lee Jones
2015-07-28 15:43               ` Lee Jones
2015-07-28  2:23 ` [PATCH v4 1/2] dt: cpufreq: st: Provide bindings for ST's CPUFreq implementation Viresh Kumar
2015-07-28  2:23   ` Viresh Kumar
2015-07-28  7:41   ` Lee Jones
2015-07-28  7:41     ` Lee Jones
2015-07-28  7:50     ` Viresh Kumar
2015-07-28  7:50       ` Viresh Kumar
2015-07-28  8:35 ` Viresh Kumar
2015-07-28  8:35   ` Viresh Kumar
2015-07-28  8:55   ` Lee Jones
2015-07-28  8:55     ` Lee Jones

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=20150810132247.GH3249@x1 \
    --to=lee.jones@linaro.org \
    --cc=ajitpal.singh@st.com \
    --cc=arnd.bergmann@linaro.org \
    --cc=dbaryshkov@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@stlinux.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=rjw@rjwysocki.net \
    --cc=robherring2@gmail.com \
    --cc=sboyd@codeaurora.org \
    --cc=sre@kernel.org \
    --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.