devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* arm64: dts: zx: support cpu-freq for zx296718
@ 2016-12-01 12:08 Baoyou Xie
       [not found] ` <1480594135-27273-1-git-send-email-baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Baoyou Xie @ 2016-12-01 12:08 UTC (permalink / raw)
  To: robh+dt, mark.rutland, catalin.marinas, will.deacon, jun.nie,
	shawnguo
  Cc: devicetree, linux-arm-kernel, linux-kernel, baoyou.xie,
	xie.baoyou, chen.chaokai, wang.qiang01

This patch adds the CPU clock phandle in CPU's node
and uses operating-points-v2 to register operating points.

So it can be used by cpufreq-dt driver.

Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org>
---
 arch/arm64/boot/dts/zte/zx296718.dtsi | 37 +++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/arch/arm64/boot/dts/zte/zx296718.dtsi b/arch/arm64/boot/dts/zte/zx296718.dtsi
index 7a1aed7..16f7d5e 100644
--- a/arch/arm64/boot/dts/zte/zx296718.dtsi
+++ b/arch/arm64/boot/dts/zte/zx296718.dtsi
@@ -44,6 +44,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/zx296718-clock.h>
 
 / {
 	compatible = "zte,zx296718";
@@ -81,6 +82,8 @@
 			compatible = "arm,cortex-a53","arm,armv8";
 			reg = <0x0 0x0>;
 			enable-method = "psci";
+			clocks = <&topcrm A53_GATE>;
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
 		cpu1: cpu@1 {
@@ -88,6 +91,7 @@
 			compatible = "arm,cortex-a53","arm,armv8";
 			reg = <0x0 0x1>;
 			enable-method = "psci";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
 		cpu2: cpu@2 {
@@ -95,6 +99,7 @@
 			compatible = "arm,cortex-a53","arm,armv8";
 			reg = <0x0 0x2>;
 			enable-method = "psci";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
 		cpu3: cpu@3 {
@@ -102,6 +107,38 @@
 			compatible = "arm,cortex-a53","arm,armv8";
 			reg = <0x0 0x3>;
 			enable-method = "psci";
+			operating-points-v2 = <&cluster0_opp>;
+		};
+	};
+
+	cluster0_opp: opp_table0 {
+		compatible = "operating-points-v2";
+		opp-shared;
+
+		opp@500000000 {
+			opp-hz = /bits/ 64 <500000000>;
+			opp-microvolt = <857000>;
+			clock-latency-ns = <500000>;
+		};
+		opp@648000000 {
+			opp-hz = /bits/ 64 <648000000>;
+			opp-microvolt = <857000>;
+			clock-latency-ns = <500000>;
+		};
+		opp@800000000 {
+			opp-hz = /bits/ 64 <800000000>;
+			opp-microvolt = <882000>;
+			clock-latency-ns = <500000>;
+		};
+		opp@1000000000 {
+			opp-hz = /bits/ 64 <1000000000>;
+			opp-microvolt = <892000>;
+			clock-latency-ns = <500000>;
+		};
+		opp@1188000000 {
+			opp-hz = /bits/ 64 <1188000000>;
+			opp-microvolt = <1009000>;
+			clock-latency-ns = <500000>;
 		};
 	};
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: arm64: dts: zx: support cpu-freq for zx296718
       [not found] ` <1480594135-27273-1-git-send-email-baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
@ 2016-12-02  2:36   ` Shawn Guo
  2016-12-02  2:54     ` Viresh Kumar
  0 siblings, 1 reply; 3+ messages in thread
From: Shawn Guo @ 2016-12-02  2:36 UTC (permalink / raw)
  To: Baoyou Xie
  Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	catalin.marinas-5wv7dgnIgG8, will.deacon-5wv7dgnIgG8,
	jun.nie-QSEj5FYQhm4dnm+yROfE0A, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	xie.baoyou-Th6q7B73Y6EnDS1+zs4M5A,
	chen.chaokai-Th6q7B73Y6EnDS1+zs4M5A,
	wang.qiang01-Th6q7B73Y6EnDS1+zs4M5A, Viresh Kumar

+ Viresh, the author of the bindings.

On Thu, Dec 01, 2016 at 08:08:55PM +0800, Baoyou Xie wrote:
> This patch adds the CPU clock phandle in CPU's node
> and uses operating-points-v2 to register operating points.
> 
> So it can be used by cpufreq-dt driver.
> 
> Signed-off-by: Baoyou Xie <baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>

Just out of curiosity, why is there no '[PATCH]' prefix in the subject?

> ---
>  arch/arm64/boot/dts/zte/zx296718.dtsi | 37 +++++++++++++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/zte/zx296718.dtsi b/arch/arm64/boot/dts/zte/zx296718.dtsi
> index 7a1aed7..16f7d5e 100644
> --- a/arch/arm64/boot/dts/zte/zx296718.dtsi
> +++ b/arch/arm64/boot/dts/zte/zx296718.dtsi
> @@ -44,6 +44,7 @@
>  #include <dt-bindings/input/input.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  #include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/clock/zx296718-clock.h>
>  
>  / {
>  	compatible = "zte,zx296718";
> @@ -81,6 +82,8 @@
>  			compatible = "arm,cortex-a53","arm,armv8";
>  			reg = <0x0 0x0>;
>  			enable-method = "psci";
> +			clocks = <&topcrm A53_GATE>;
> +			operating-points-v2 = <&cluster0_opp>;
>  		};
>  
>  		cpu1: cpu@1 {
> @@ -88,6 +91,7 @@
>  			compatible = "arm,cortex-a53","arm,armv8";
>  			reg = <0x0 0x1>;
>  			enable-method = "psci";
> +			operating-points-v2 = <&cluster0_opp>;
>  		};
>  
>  		cpu2: cpu@2 {
> @@ -95,6 +99,7 @@
>  			compatible = "arm,cortex-a53","arm,armv8";
>  			reg = <0x0 0x2>;
>  			enable-method = "psci";
> +			operating-points-v2 = <&cluster0_opp>;
>  		};
>  
>  		cpu3: cpu@3 {
> @@ -102,6 +107,38 @@
>  			compatible = "arm,cortex-a53","arm,armv8";
>  			reg = <0x0 0x3>;
>  			enable-method = "psci";
> +			operating-points-v2 = <&cluster0_opp>;
> +		};
> +	};
> +
> +	cluster0_opp: opp_table0 {

I know this is how examples in the bindings doc written, but it's
recommended to use hyphen rather than underscore in node name.  That
said, the following naming form is better.

	cluster0_opp: opp-table0

> +		compatible = "operating-points-v2";
> +		opp-shared;
> +
> +		opp@500000000 {
> +			opp-hz = /bits/ 64 <500000000>;
> +			opp-microvolt = <857000>;
> +			clock-latency-ns = <500000>;
> +		};

We prefer to have a newline between nodes.

> +		opp@648000000 {
> +			opp-hz = /bits/ 64 <648000000>;
> +			opp-microvolt = <857000>;
> +			clock-latency-ns = <500000>;
> +		};
> +		opp@800000000 {
> +			opp-hz = /bits/ 64 <800000000>;
> +			opp-microvolt = <882000>;
> +			clock-latency-ns = <500000>;
> +		};
> +		opp@1000000000 {
> +			opp-hz = /bits/ 64 <1000000000>;
> +			opp-microvolt = <892000>;
> +			clock-latency-ns = <500000>;
> +		};
> +		opp@1188000000 {
> +			opp-hz = /bits/ 64 <1188000000>;
> +			opp-microvolt = <1009000>;

So we have 5 setpoints with different frequency-voltage pair.  I have
seen 'clocks' specified in cpu0 node and understand how frequency
scaling works.  But what about voltage scaling?  There is no
'cpu-supply' defined, and how does voltage scale among these
opp-microvolt settings?

Another related question: if we do not support voltage scaling for now,
what's the actually voltage when system is up running?  Is that voltage
safe for cpu to run at all those 5 frequencies?

Shawn

> +			clock-latency-ns = <500000>;
>  		};
>  	};
>  
> -- 
> 2.7.4
> 
--
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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: arm64: dts: zx: support cpu-freq for zx296718
  2016-12-02  2:36   ` Shawn Guo
@ 2016-12-02  2:54     ` Viresh Kumar
  0 siblings, 0 replies; 3+ messages in thread
From: Viresh Kumar @ 2016-12-02  2:54 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Baoyou Xie, robh+dt, mark.rutland, catalin.marinas, will.deacon,
	jun.nie, devicetree, linux-arm-kernel, linux-kernel, xie.baoyou,
	chen.chaokai, wang.qiang01

On 02-12-16, 10:36, Shawn Guo wrote:
> + Viresh, the author of the bindings.
> 
> On Thu, Dec 01, 2016 at 08:08:55PM +0800, Baoyou Xie wrote:
> > This patch adds the CPU clock phandle in CPU's node
> > and uses operating-points-v2 to register operating points.
> > 
> > So it can be used by cpufreq-dt driver.
> > 
> > Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org>
> 
> Just out of curiosity, why is there no '[PATCH]' prefix in the subject?
> 
> > ---
> >  arch/arm64/boot/dts/zte/zx296718.dtsi | 37 +++++++++++++++++++++++++++++++++++
> >  1 file changed, 37 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/zte/zx296718.dtsi b/arch/arm64/boot/dts/zte/zx296718.dtsi
> > index 7a1aed7..16f7d5e 100644
> > --- a/arch/arm64/boot/dts/zte/zx296718.dtsi
> > +++ b/arch/arm64/boot/dts/zte/zx296718.dtsi
> > @@ -44,6 +44,7 @@
> >  #include <dt-bindings/input/input.h>
> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
> >  #include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/clock/zx296718-clock.h>
> >  
> >  / {
> >  	compatible = "zte,zx296718";
> > @@ -81,6 +82,8 @@
> >  			compatible = "arm,cortex-a53","arm,armv8";
> >  			reg = <0x0 0x0>;
> >  			enable-method = "psci";
> > +			clocks = <&topcrm A53_GATE>;
> > +			operating-points-v2 = <&cluster0_opp>;
> >  		};
> >  
> >  		cpu1: cpu@1 {
> > @@ -88,6 +91,7 @@
> >  			compatible = "arm,cortex-a53","arm,armv8";
> >  			reg = <0x0 0x1>;
> >  			enable-method = "psci";
> > +			operating-points-v2 = <&cluster0_opp>;
> >  		};
> >  
> >  		cpu2: cpu@2 {
> > @@ -95,6 +99,7 @@
> >  			compatible = "arm,cortex-a53","arm,armv8";
> >  			reg = <0x0 0x2>;
> >  			enable-method = "psci";
> > +			operating-points-v2 = <&cluster0_opp>;
> >  		};
> >  
> >  		cpu3: cpu@3 {
> > @@ -102,6 +107,38 @@
> >  			compatible = "arm,cortex-a53","arm,armv8";
> >  			reg = <0x0 0x3>;
> >  			enable-method = "psci";
> > +			operating-points-v2 = <&cluster0_opp>;
> > +		};
> > +	};
> > +
> > +	cluster0_opp: opp_table0 {

Also, you better add "clocks" property in all above nodes.

-- 
viresh

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-12-02  2:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-01 12:08 arm64: dts: zx: support cpu-freq for zx296718 Baoyou Xie
     [not found] ` <1480594135-27273-1-git-send-email-baoyou.xie-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-12-02  2:36   ` Shawn Guo
2016-12-02  2:54     ` Viresh Kumar

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).