From: Viresh Kumar <viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: Rafael Wysocki <rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org>,
linaro-kernel-cunTk1MwBs8s++Sfvej+rw@public.gmane.org,
linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Stephen Boyd <sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
Nishanth Menon <nm-l0cyMroinI0@public.gmane.org>,
Vincent Guittot
<vincent.guittot-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Kevin Hilman <khilman-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>,
Ulf Hansson <ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Lina Iyer <lina.iyer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Nayak Rajendra <rnayak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Subject: Re: [PATCH V2 1/2] PM / Domains: Introduce domain-performance-states binding
Date: Mon, 2 Jan 2017 15:35:03 +0530 [thread overview]
Message-ID: <20170102100503.GG13679@vireshk-i7> (raw)
In-Reply-To: <20161222183453.xlkfrb2f4stcfr32@rob-hp-laptop>
On 22-12-16, 12:34, Rob Herring wrote:
> > +Optional properties:
> > +- domain-performance-state: A phandle of a Performance state node.
> > +
> > +Example:
> > +
> > + parent: power-controller@12340000 {
> > + compatible = "foo,power-controller";
> > + reg = <0x12340000 0x1000>;
> > + #power-domain-cells = <0>;
> > + domain-performance-states = <&domain_perf_states>;
> > + };
> > +
> > + domain_perf_states: performance_states {
>
> If you want to have performance states for a domain in DT, then you need
> to actually have a node for the domain in DT. Then this should be a
> child of the domain. I wouldn't think non-CPU domain performance states
> will be common across domains.
So you suggest something like this then ?
+ parent: power-controller@12340000 {
+ compatible = "foo,power-controller";
+ reg = <0x12340000 0x1000>;
+ #power-domain-cells = <0>;
+
+ performance_states {
+ compatible = "domain-performance-state";
+ domain_perf_state1: pstate@1 {
+ performance-level = <1>;
+ domain-microvolt = <970000 975000 985000>;
+ };
+ domain_perf_state2: pstate@2 {
+ performance-level = <2>;
+ domain-microvolt = <1000000 1075000 1085000>;
+ };
+ domain_perf_state3: pstate@3 {
+ performance-level = <3>;
+ domain-microvolt = <1100000 1175000 1185000>;
+ };
+ }
+ };
+
>
> > + compatible = "domain-performance-state";
> > + domain_perf_state1: pstate@1 {
>
> A unit address should have a reg property.
There is no register address here. Similar problem as the OPP table
where we ended up using the frequency. What should we do here ?
> > + performance-level = <1>;
> > + domain-microvolt = <970000 975000 985000>;
> > + };
> > + domain_perf_state2: pstate@2 {
> > + performance-level = <2>;
> > + domain-microvolt = <1000000 1075000 1085000>;
> > + };
> > + domain_perf_state3: pstate@3 {
> > + performance-level = <3>;
> > + domain-microvolt = <1100000 1175000 1185000>;
> > + };
> > + }
> > +
> > + leaky-device@12350000 {
> > + compatible = "foo,i-leak-current";
> > + reg = <0x12350000 0x1000>;
> > + power-domains = <&power 0>;
> > + domain-performance-state = <&domain_perf_state2>;
>
> domain-performance-state and domain-performance-states are too similar
> in name. The property here should probably reflect the mode needed and
> perhaps specific to the device.
Its the state of its power domain which is required for the
functioning of the device.
> I assume a device will need multiple states/modes.
Such devices are handled by the 2nd patch, which uses OPP table for
this. The above example is for simple devices, which have a fixed
requirement.
> Also, since you refer to the performance state node directly, I'm not
> sure why you need the performance-level property.
That value will be used by the genpd core to pass on to the platform
specific code which will take care of updating the domain state. For
example in case of Qcom, it is a separate M3 core which accepts these
values.
--
viresh
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-01-02 10:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-12 10:56 [PATCH V2 0/2] PM / Domains / OPP: Introduce domain-performance-state binding Viresh Kumar
2016-12-12 10:56 ` [PATCH V2 1/2] PM / Domains: Introduce domain-performance-states binding Viresh Kumar
[not found] ` <dd95df02a1c3efd00bd4890f8aceeb717ad38788.1481539827.git.viresh.kumar-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-12-22 18:34 ` Rob Herring
2017-01-02 10:05 ` Viresh Kumar [this message]
2017-01-06 8:46 ` Rajendra Nayak
[not found] ` <586F596C.7000807-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-01-06 9:27 ` Viresh Kumar
2017-01-06 10:12 ` Rajendra Nayak
2017-01-06 10:23 ` Viresh Kumar
2017-01-06 10:36 ` Rajendra Nayak
2017-01-06 11:09 ` Viresh Kumar
2016-12-12 10:56 ` [PATCH V2 2/2] PM / OPP: Introduce domain-performance-state binding to OPP nodes Viresh Kumar
2016-12-22 18:14 ` [PATCH V2 0/2] PM / Domains / OPP: Introduce domain-performance-state binding Rob Herring
2017-01-02 10:44 ` Viresh Kumar
2017-01-03 11:07 ` 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=20170102100503.GG13679@vireshk-i7 \
--to=viresh.kumar-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=khilman-rdvid1DuHRBWk0Htik3J/w@public.gmane.org \
--cc=lina.iyer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linaro-kernel-cunTk1MwBs8s++Sfvej+rw@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=nm-l0cyMroinI0@public.gmane.org \
--cc=rjw-LthD3rsA81gm4RdzfppkhA@public.gmane.org \
--cc=rnayak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=sboyd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=ulf.hansson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=vincent.guittot-QSEj5FYQhm4dnm+yROfE0A@public.gmane.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