Thread (17 messages) 17 messages, 5 authors, 2017-02-20

[PATCH 1/5] arm64: dts: Add basic DT to support Spreadtrum's SP9860G

From: Sudeep Holla <hidden>
Date: 2017-02-14 16:45:02
Also in: linux-devicetree, lkml

On Tue, Feb 14, 2017 at 9:19 AM, Chunyan Zhang
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Orson Zhai <redacted>

SC9860G is a 8 cores of A53 SoC with 4G LTE support SoC from Spreadtrum.

According to regular hierarchy of sprd dts, whale2.dtsi contains SoC
peripherals IP nodes, sc9860.dtsi contains stuff related to ARM core stuff
and sp9860g dts is for the board level.

Signed-off-by: Orson Zhai <redacted>
Signed-off-by: Chunyan Zhang <redacted>
---
 arch/arm64/boot/dts/sprd/Makefile         |   3 +-
 arch/arm64/boot/dts/sprd/sc9860.dtsi      | 534 ++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/sprd/sp9860g-1h10.dts |  58 ++++
 arch/arm64/boot/dts/sprd/whale2.dtsi      |  66 ++++
 4 files changed, 660 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/sprd/sc9860.dtsi
 create mode 100644 arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
 create mode 100644 arch/arm64/boot/dts/sprd/whale2.dtsi
diff --git a/arch/arm64/boot/dts/sprd/Makefile b/arch/arm64/boot/dts/sprd/Makefile
index b658c5e..f0535e6 100644
--- a/arch/arm64/boot/dts/sprd/Makefile
+++ b/arch/arm64/boot/dts/sprd/Makefile
@@ -1,4 +1,5 @@
-dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb
+dtb-$(CONFIG_ARCH_SPRD) += sc9836-openphone.dtb \
+                       sp9860g-1h10.dtb

 always         := $(dtb-y)
 subdir-y       := $(dts-dirs)
diff --git a/arch/arm64/boot/dts/sprd/sc9860.dtsi b/arch/arm64/boot/dts/sprd/sc9860.dtsi
new file mode 100644
index 0000000..604a8c9
--- /dev/null
+++ b/arch/arm64/boot/dts/sprd/sc9860.dtsi
@@ -0,0 +1,534 @@
[...]
+       idle-states{
+               entry-method = "arm,psci";
+
+               CORE_PD: core_pd {
+                       compatible = "arm,idle-state";
+                       entry-latency-us = <1000>;
+                       exit-latency-us = <700>;
+                       min-residency-us = <2500>;
+                       local-timer-stop;
+                       arm,psci-suspend-param = <0x00010002>;
+               };
+
+               CLUSTER_PD: cluster_pd {
+                       compatible = "arm,idle-state";
+                       entry-latency-us = <1000>;
+                       exit-latency-us = <1000>;
+                       min-residency-us = <3000>;
+                       local-timer-stop;
+                       arm,psci-suspend-param = <0x01010003>;
+               };
+
+               DEEP_SLEEP: deep_sleep {
+                       compatible = "arm,idle-state";
+                       wakeup-latency-us = <0xffffffff>;
A value > 4294 seconds(i.e >1 hour) seems suspicious.
Are you working around the firmware issue with high latency value so
that it's never entered ? Why not remove advertising the state from DT.

Can you get me the dump of:
grep "" /sys/devices/system/cpu/cpu*/cpuidle/state*/{time,usage}

IIUC, you might have seen boot issue without this values and workaround
the issue with such high values ? If so please drop this state.
+                       entry-latency-us = <1500>;
+                       exit-latency-us = <1500>;
+                       min-residency-us = <0xffffffff>;
+                       local-timer-stop;
+                       arm,psci-suspend-param = <0x01010005>;
+               };
+       };
--
Regards,
Sudeep
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help