From: Stephen Boyd <sboyd@codeaurora.org>
To: Viresh Kumar <viresh.kumar@linaro.org>,
Rafael Wysocki <rjw@rjwysocki.net>,
rob.herring@linaro.org, arnd.bergmann@linaro.org, nm@ti.com,
broonie@kernel.org, mike.turquette@linaro.org
Cc: linaro-kernel@lists.linaro.org, linux-pm@vger.kernel.org,
grant.likely@linaro.org, olof@lixom.net, Sudeep.Holla@arm.com,
devicetree@vger.kernel.org, viswanath.puttagunta@linaro.org,
l.stach@pengutronix.de, thomas.petazzoni@free-electrons.com,
linux-arm-kernel@lists.infradead.org, ta.omasab@gmail.com,
kesavan.abhilash@gmail.com, khilman@linaro.org,
santosh.shilimkar@oracle.com
Subject: Re: [PATCH V4 1/3] OPP: Redefine bindings to overcome shortcomings
Date: Tue, 19 May 2015 17:51:08 -0700 [thread overview]
Message-ID: <555BDA7C.7020506@codeaurora.org> (raw)
In-Reply-To: <d225e73f183e01fa0b71e4b9248b6a19a3f7d697.1430394884.git.viresh.kumar@linaro.org>
On 04/30/15 05:07, Viresh Kumar wrote:
> Current OPP (Operating performance point) DT bindings are proven to be
> insufficient at multiple instances.
>
> The shortcomings we are trying to solve here:
>
> - Getting clock sharing information between CPUs. Single shared clock vs
> independent clock per core vs shared clock per cluster.
>
> - Support for specifying current levels along with voltages.
>
> - Support for multiple regulators.
>
> - Support for turbo modes.
>
> - Other per OPP settings: transition latencies, disabled status, etc.?
>
> - Expandability of OPPs in future.
>
> This patch introduces new bindings "operating-points-v2" to get these problems
> solved. Refer to the bindings for more details.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
This looks like it covers my usecases. I'm not sure if I'm going to put
all of this data in DT because of the philosophical question regarding
what should be in DT and the technical decisions that some platforms I'm
working on have made to encode parts of the OPPs in fuses, but at least
the binding looks to support all the scenarios I have today.
> ---
> Documentation/devicetree/bindings/power/opp.txt | 366 +++++++++++++++++++++++-
> 1 file changed, 362 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/power/opp.txt b/Documentation/devicetree/bindings/power/opp.txt
> index 74499e5033fc..3b67a5c8d965 100644
> --- a/Documentation/devicetree/bindings/power/opp.txt
> +++ b/Documentation/devicetree/bindings/power/opp.txt
> @@ -1,8 +1,366 @@
> -* Generic OPP Interface
> +Generic OPP (Operating Performance Points) Bindings
> +----------------------------------------------------
>
> -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.
> +Devices work at voltage-current-frequency triplets and some implementations have
> +the liberty of choosing these. These triplets are called Operating Performance
> +Points aka OPPs. This document defines bindings for these OPPs applicable across
> +wide range of devices. For illustration purpose, this document uses CPU as a
> +device.
> +
> +
> +* Property: operating-points-v2
> +
> +Devices supporting OPPs must set their "operating-points-v2" property with
> +phandle to a OPP descriptor in their DT node. The OPP core will use this phandle
> +to find the operating points for the device.
> +
> +
> +* OPP Descriptor Node
> +
> +This describes the OPPs belonging to a device. This node can have following
> +properties:
> +
> +Required properties:
> +- compatible: Allow OPPs to express their compatibility. It should be:
> + "operating-points-v2".
> +- OPP nodes: One or more OPP nodes describing voltage-current-frequency
> + triplets. Their name isn't significant but their phandle can be used to
> + reference an OPP.
> +
> +Optional properties:
> +- shared-opp: Indicates that device nodes using this OPP descriptor'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,
> + but they share OPP tables.
> +
> +
> +* OPP Node
> +
> +This defines voltage-current-frequency triplets along with other related
> +properties.
> +
> +Required properties:
> +- opp-khz: Frequency in kHz
Can this be in Hz? I thought there were some problems with kHz and Hz
before where we wanted to make this into Hz so that rounding problems
don't arise?
Also I wonder if all properties should be optional? I don't have this
scenario today, but perhaps the frequencies could be encoded in fuses,
but the voltages wouldn't be and so we might want to read out the
frequencies for a fixed set of voltages. Of course, if there's nothing
in the OPP node at all, it's not very useful, so perhaps some statement
that at least one of the frequency/voltage/amperage properties should be
present.
> +
> +Optional properties:
> +- opp-microvolt: voltage in micro Volts. It can contain entries for multiple
> + regulators.
> +
> + A single regulator's voltage is specified with an array of size one or three.
> + Single entry is for target voltage and three entries are for <target min max>
> + voltages.
> +
> + Entries for multiple regulators must be present in the same order as
> + regulators are specified in device's DT node.
> +
> +- opp-microamp: current in micro Amperes. It can contain entries for multiple
> + regulators.
> +
> + A single regulator's current is specified with an array of size one or three.
> + Single entry is for target current and three entries are for <target min max>
> + currents.
> +
> + Entries for multiple regulators must be present in the same order as
> + regulators are specified in device's DT node. If few regulators don't provide
> + capability to configure current, then values for then should be marked as
s/then/them/
> + zero.
> +
> +- clock-latency-ns: Specifies the maximum possible transition latency (in
> + nanoseconds) for switching to this OPP from any other OPP.
> +- turbo-mode: Marks the OPP to be used only for turbo modes.
> +- status: Marks the node enabled/disabled.
Please put some space between properties so they can be found quickly:
clock-latency-ns:
turbo-mode:
status:
...
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2015-05-20 0:51 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-30 12:07 [PATCH V4 0/3] OPP: Introduce OPP (V2) bindings Viresh Kumar
[not found] ` <cover.1430394884.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-04-30 12:07 ` [PATCH V4 1/3] OPP: Redefine bindings to overcome shortcomings Viresh Kumar
[not found] ` <d225e73f183e01fa0b71e4b9248b6a19a3f7d697.1430394884.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-04 12:12 ` Mark Brown
2015-05-05 10:48 ` Viresh Kumar
2015-05-05 10:57 ` Mark Brown
[not found] ` <20150505105714.GA22845-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-05-05 11:43 ` Viresh Kumar
2015-05-05 17:12 ` Mark Brown
2015-05-06 6:53 ` Viresh Kumar
2015-05-07 5:52 ` Stephen Boyd
2015-05-07 11:02 ` Mark Brown
2015-05-07 21:18 ` Stephen Boyd
2015-05-07 22:18 ` Mark Brown
[not found] ` <20150507221842.GW22845-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-05-08 6:47 ` Viresh Kumar
2015-05-08 10:58 ` Mark Brown
2015-05-08 11:01 ` Viresh Kumar
2015-05-11 1:07 ` Nishanth Menon
2015-05-12 5:20 ` Viresh Kumar
2015-05-12 19:01 ` Michael Turquette
2015-05-12 19:14 ` Nishanth Menon
2015-05-12 19:41 ` Mark Brown
2015-05-12 19:57 ` Nishanth Menon
2015-05-13 11:54 ` Mark Brown
[not found] ` <20150513115422.GQ3066-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-05-13 14:24 ` Nishanth Menon
2015-05-13 15:07 ` Mark Brown
2015-05-13 15:43 ` Nishanth Menon
2015-05-07 12:13 ` Viresh Kumar
2015-05-07 21:30 ` Stephen Boyd
2015-05-08 6:49 ` Viresh Kumar
2015-05-11 1:02 ` Nishanth Menon
2015-05-12 5:16 ` Viresh Kumar
2015-05-12 16:04 ` Nishanth Menon
2015-05-13 5:05 ` Viresh Kumar
2015-05-13 15:00 ` Nishanth Menon
2015-05-13 15:16 ` Mark Brown
2015-05-13 16:14 ` Nishanth Menon
2015-05-13 16:21 ` Mark Brown
2015-05-13 16:34 ` Nishanth Menon
2015-05-12 16:19 ` Felipe Balbi
2015-05-13 4:45 ` Viresh Kumar
2015-05-12 21:42 ` Michael Turquette
2015-05-13 8:55 ` Viresh Kumar
2015-05-13 11:03 ` Mark Brown
2015-05-14 0:32 ` Michael Turquette
[not found] ` <CAKohpokeKtcJdrBcPZBBPR2zfJgpvuM_=wRaX5q1Uto2qx1oHQ@mail.gmail.com>
2015-05-15 14:15 ` Viresh Kumar
2015-05-15 15:43 ` Nishanth Menon
2015-05-15 17:27 ` Rob Herring
2015-05-21 6:02 ` Nishanth Menon
2015-05-22 14:04 ` Viresh Kumar
2015-05-22 16:04 ` Rob Herring
2015-05-22 17:42 ` Nishanth Menon
2015-05-26 5:25 ` Viresh Kumar
2015-05-20 0:51 ` Stephen Boyd [this message]
2015-05-20 2:07 ` Viresh Kumar
2015-05-20 19:39 ` Stephen Boyd
2015-05-21 4:33 ` Viresh Kumar
2015-05-25 11:59 ` Viresh Kumar
2015-04-30 12:08 ` [PATCH V4 2/3] OPP: Allow multiple OPP tables to be passed via DT Viresh Kumar
2015-05-12 16:09 ` Nishanth Menon
2015-05-13 4:41 ` Viresh Kumar
2015-05-20 0:52 ` Stephen Boyd
2015-04-30 12:08 ` [PATCH V4 3/3] OPP: Add 'opp-next' in operating-points-v2 bindings Viresh Kumar
2015-05-12 21:47 ` Michael Turquette
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=555BDA7C.7020506@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=Sudeep.Holla@arm.com \
--cc=arnd.bergmann@linaro.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@linaro.org \
--cc=kesavan.abhilash@gmail.com \
--cc=khilman@linaro.org \
--cc=l.stach@pengutronix.de \
--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=ta.omasab@gmail.com \
--cc=thomas.petazzoni@free-electrons.com \
--cc=viresh.kumar@linaro.org \
--cc=viswanath.puttagunta@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 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).