linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Add CPU Idle support on Armada 8K
@ 2018-09-21 16:09 Gregory CLEMENT
  2018-09-21 16:09 ` [PATCH 1/2] arm64: dts: marvell: Add node labels for the cpus Gregory CLEMENT
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Gregory CLEMENT @ 2018-09-21 16:09 UTC (permalink / raw)
  To: linux-arm-kernel

Hello,

These two patches allow to enable the Idle support for Armada 8K
boards.

Gregory

Gregory CLEMENT (1):
  arm64: dts: marvell: Add node labels for the cpus

orenbh (1):
  arm64: dts: marvell: add CPU Idle power state support on Armada 7K/8K

 arch/arm64/boot/dts/marvell/armada-372x.dtsi  |  2 +-
 arch/arm64/boot/dts/marvell/armada-37xx.dtsi  |  2 +-
 .../boot/dts/marvell/armada-ap806-dual.dtsi   |  4 +--
 .../boot/dts/marvell/armada-ap806-quad.dtsi   | 12 ++++++---
 arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 27 +++++++++++++++++++
 .../marvell/armada-ap810-ap0-octa-core.dtsi   | 16 +++++------
 6 files changed, 47 insertions(+), 16 deletions(-)

-- 
2.19.0

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

* [PATCH 1/2] arm64: dts: marvell: Add node labels for the cpus
  2018-09-21 16:09 [PATCH 0/2] Add CPU Idle support on Armada 8K Gregory CLEMENT
@ 2018-09-21 16:09 ` Gregory CLEMENT
  2018-09-21 16:09 ` [PATCH 2/2] arm64: dts: marvell: add CPU Idle power state support on Armada 7K/8K Gregory CLEMENT
  2018-10-02 14:44 ` [PATCH 0/2] Add CPU Idle support on Armada 8K Gregory CLEMENT
  2 siblings, 0 replies; 4+ messages in thread
From: Gregory CLEMENT @ 2018-09-21 16:09 UTC (permalink / raw)
  To: linux-arm-kernel

Aligned with what we have done for the others nodes. It will also allow
to easily modify the cpu configuration at board (or sub-SoC) level.

Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
---
 arch/arm64/boot/dts/marvell/armada-372x.dtsi     |  2 +-
 arch/arm64/boot/dts/marvell/armada-37xx.dtsi     |  2 +-
 .../boot/dts/marvell/armada-ap806-dual.dtsi      |  4 ++--
 .../boot/dts/marvell/armada-ap806-quad.dtsi      |  8 ++++----
 .../dts/marvell/armada-ap810-ap0-octa-core.dtsi  | 16 ++++++++--------
 5 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/arch/arm64/boot/dts/marvell/armada-372x.dtsi b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
index 97558a64e276..6800945a88ad 100644
--- a/arch/arm64/boot/dts/marvell/armada-372x.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
@@ -16,7 +16,7 @@
 	compatible = "marvell,armada3720", "marvell,armada3710";
 
 	cpus {
-		cpu at 1 {
+		cpu1: cpu at 1 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a53","arm,armv8";
 			reg = <0x1>;
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index d9531e242eb4..179e571ba40e 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -40,7 +40,7 @@
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		cpu at 0 {
+		cpu0: cpu at 0 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a53", "arm,armv8";
 			reg = <0>;
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
index 64b5e61a698e..d3c0636558ff 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
@@ -15,13 +15,13 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		cpu at 0 {
+		cpu0: cpu at 0 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x000>;
 			enable-method = "psci";
 		};
-		cpu at 1 {
+		cpu1: cpu at 1 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x001>;
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
index 746e792767f5..01ea662afba8 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
@@ -15,25 +15,25 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
-		cpu at 0 {
+		cpu0: cpu at 0 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x000>;
 			enable-method = "psci";
 		};
-		cpu at 1 {
+		cpu1: cpu at 1 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x001>;
 			enable-method = "psci";
 		};
-		cpu at 100 {
+		cpu2: cpu at 100 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x100>;
 			enable-method = "psci";
 		};
-		cpu at 101 {
+		cpu3: cpu at 101 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x101>;
diff --git a/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi b/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
index 7d00ae78fc79..b788cb63caf2 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
@@ -13,49 +13,49 @@
 		#size-cells = <0>;
 		compatible = "marvell,armada-ap810-octa";
 
-		cpu at 0 {
+		cpu0: cpu at 0 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x000>;
 			enable-method = "psci";
 		};
-		cpu at 1 {
+		cpu1: cpu at 1 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x001>;
 			enable-method = "psci";
 		};
-		cpu at 100 {
+		cpu2: cpu at 100 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x100>;
 			enable-method = "psci";
 		};
-		cpu at 101 {
+		cpu3: cpu at 101 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x101>;
 			enable-method = "psci";
 		};
-		cpu at 200 {
+		cpu4: cpu at 200 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x200>;
 			enable-method = "psci";
 		};
-		cpu at 201 {
+		cpu5: cpu at 201 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x201>;
 			enable-method = "psci";
 		};
-		cpu at 300 {
+		cpu6: cpu at 300 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x300>;
 			enable-method = "psci";
 		};
-		cpu at 301 {
+		cpu7: cpu at 301 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x301>;
-- 
2.19.0

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

* [PATCH 2/2] arm64: dts: marvell: add CPU Idle power state support on Armada 7K/8K
  2018-09-21 16:09 [PATCH 0/2] Add CPU Idle support on Armada 8K Gregory CLEMENT
  2018-09-21 16:09 ` [PATCH 1/2] arm64: dts: marvell: Add node labels for the cpus Gregory CLEMENT
@ 2018-09-21 16:09 ` Gregory CLEMENT
  2018-10-02 14:44 ` [PATCH 0/2] Add CPU Idle support on Armada 8K Gregory CLEMENT
  2 siblings, 0 replies; 4+ messages in thread
From: Gregory CLEMENT @ 2018-09-21 16:09 UTC (permalink / raw)
  To: linux-arm-kernel

From: orenbh <orenbh@marvell.com>

This patch adds CPU deep Idle and Cluster deep Idle states BUT it defines
the idle state for each cpu (defined under cpu-idle-states parameter)
only for the quad version therefore it does NOT activate CPU Idle
capability for the other version.

[gregory: extract from a larger patch]
Signed-off-by: orenbh <orenbh@marvell.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
---
 .../boot/dts/marvell/armada-ap806-quad.dtsi   |  4 +++
 arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 27 +++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
index 01ea662afba8..64632c873888 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
@@ -20,24 +20,28 @@
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x000>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_SLEEP_0>;
 		};
 		cpu1: cpu at 1 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x001>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_SLEEP_0>;
 		};
 		cpu2: cpu at 100 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x100>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_SLEEP_0>;
 		};
 		cpu3: cpu at 101 {
 			device_type = "cpu";
 			compatible = "arm,cortex-a72", "arm,armv8";
 			reg = <0x101>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_SLEEP_0>;
 		};
 	};
 };
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
index 27930394249d..4a65e4e830aa 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
@@ -27,6 +27,33 @@
 		method = "smc";
 	};
 
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		idle_states {
+			entry_method = "arm,pcsi";
+
+			CPU_SLEEP_0: cpu-sleep-0 {
+				compatible = "arm,idle-state";
+				local-timer-stop;
+				arm,psci-suspend-param = <0x0010000>;
+				entry-latency-us = <80>;
+				exit-latency-us  = <160>;
+				min-residency-us = <320>;
+			};
+
+			CLUSTER_SLEEP_0: cluster-sleep-0 {
+				compatible = "arm,idle-state";
+				local-timer-stop;
+				arm,psci-suspend-param = <0x1010000>;
+				entry-latency-us = <500>;
+				exit-latency-us = <1000>;
+				min-residency-us = <2500>;
+			};
+		};
+	};
+
 	ap806 {
 		#address-cells = <2>;
 		#size-cells = <2>;
-- 
2.19.0

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

* [PATCH 0/2] Add CPU Idle support on Armada 8K
  2018-09-21 16:09 [PATCH 0/2] Add CPU Idle support on Armada 8K Gregory CLEMENT
  2018-09-21 16:09 ` [PATCH 1/2] arm64: dts: marvell: Add node labels for the cpus Gregory CLEMENT
  2018-09-21 16:09 ` [PATCH 2/2] arm64: dts: marvell: add CPU Idle power state support on Armada 7K/8K Gregory CLEMENT
@ 2018-10-02 14:44 ` Gregory CLEMENT
  2 siblings, 0 replies; 4+ messages in thread
From: Gregory CLEMENT @ 2018-10-02 14:44 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,
 
 On ven., sept. 21 2018, Gregory CLEMENT <gregory.clement@bootlin.com> wrote:

> Hello,
>
> These two patches allow to enable the Idle support for Armada 8K
> boards.

Both patch applied on mvebu/dt64

Gregory

>
> Gregory
>
> Gregory CLEMENT (1):
>   arm64: dts: marvell: Add node labels for the cpus
>
> orenbh (1):
>   arm64: dts: marvell: add CPU Idle power state support on Armada 7K/8K
>
>  arch/arm64/boot/dts/marvell/armada-372x.dtsi  |  2 +-
>  arch/arm64/boot/dts/marvell/armada-37xx.dtsi  |  2 +-
>  .../boot/dts/marvell/armada-ap806-dual.dtsi   |  4 +--
>  .../boot/dts/marvell/armada-ap806-quad.dtsi   | 12 ++++++---
>  arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 27 +++++++++++++++++++
>  .../marvell/armada-ap810-ap0-octa-core.dtsi   | 16 +++++------
>  6 files changed, 47 insertions(+), 16 deletions(-)
>
> -- 
> 2.19.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com

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

end of thread, other threads:[~2018-10-02 14:44 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-21 16:09 [PATCH 0/2] Add CPU Idle support on Armada 8K Gregory CLEMENT
2018-09-21 16:09 ` [PATCH 1/2] arm64: dts: marvell: Add node labels for the cpus Gregory CLEMENT
2018-09-21 16:09 ` [PATCH 2/2] arm64: dts: marvell: add CPU Idle power state support on Armada 7K/8K Gregory CLEMENT
2018-10-02 14:44 ` [PATCH 0/2] Add CPU Idle support on Armada 8K Gregory CLEMENT

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