From dc78f5516c358715234868de7cafd052a0a64bb1 Mon Sep 17 00:00:00 2001 From: Raghavendra Kakarla Date: Thu, 26 Nov 2020 13:44:50 +0530 Subject: [PATCH 1/3] ARM: dts: msm: Add LPM device nodes and stats for Monaco Add Low Power Modes, soc sleep stats and rpm master stats device nodes. Change-Id: If49a907ff39b9c39e007530708799a4f0f85cbac --- qcom/monaco-pm.dtsi | 90 +++++++++++++++++++++++++++++++++++++++++++++ qcom/monaco.dtsi | 5 +++ 2 files changed, 95 insertions(+) create mode 100644 qcom/monaco-pm.dtsi diff --git a/qcom/monaco-pm.dtsi b/qcom/monaco-pm.dtsi new file mode 100644 index 000000000000..3b67d4b32af0 --- /dev/null +++ b/qcom/monaco-pm.dtsi @@ -0,0 +1,90 @@ +&soc { + qcom,lpm-levels { + compatible = "qcom,lpm-levels"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm-cluster@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + idle-state-name = "L2"; + qcom,psci-mode-shift = <4>; + qcom,psci-mode-mask = <0xf>; + + CLUSTER_WFI: qcom,pm-cluster-level@0 { /* D1 */ + reg = <0>; + compatible = "arm,idle-state"; + idle-state-name = "l2-wfi"; + entry-latency-us = <38>; + exit-latency-us = <51>; + min-residency-us = <89>; + arm,psci-suspend-param = <0x10>; + qcom,psci-mode = <0x1>; + }; + + CLUSTER_OFF: qcom,pm-cluster-level@1 { /* D4 */ + reg = <1>; + compatible = "arm,idle-state"; + idle-state-name = "l2-rail-pc"; + entry-latency-us = <800>; + exit-latency-us = <2118>; + min-residency-us = <7376>; + arm,psci-suspend-param = <0x40>; + qcom,psci-mode = <0x4>; + qcom,notify-rpm; + qcom,min-child-idx = <1>; + qcom,is-reset; + }; + + qcom,pm-cpu@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + qcom,psci-mode-shift = <0>; + qcom,psci-mode-mask = <0xf>; + label = "pwr"; + qcom,disable-ipi-prediction; + qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3>; + + CORE_WFI: qcom,pm-cpu-level@0 { /* C1 */ + reg = <0>; + compatible = "arm,idle-state"; + idle-state-name = "wfi"; + entry-latency-us = <49>; + exit-latency-us = <42>; + min-residency-us = <91>; + arm,psci-suspend-param = <0x1>; + qcom,psci-cpu-mode = <0x1>; + }; + + CORE_PC: qcom,pm-cpu-level@1 { /* C3 */ + reg = <1>; + compatible = "arm,idle-state"; + idle-state-name = "pc"; + entry-latency-us = <290>; + exit-latency-us = <376>; + min-residency-us = <1182>; + qcom,psci-cpu-mode = <0x3>; + arm,psci-suspend-param = <0x40000003>; + local-timer-stop; + qcom,is-reset; + qcom,use-broadcast-timer; + }; + }; + }; + }; + + rpm_sleep_stats: soc-sleep-stats@4690000 { + compatible = "qcom,rpm-sleep-stats"; + reg = <0x04690000 0x400>; + }; + + subsystem-sleep-stats { + compatible = "qcom,subsystem-sleep-stats"; + }; + + rpmh-master-stats { + compatible = "qcom,rpmh-master-stats-v1"; + }; +}; diff --git a/qcom/monaco.dtsi b/qcom/monaco.dtsi index 4187cdcc689a..f34adb3d7534 100644 --- a/qcom/monaco.dtsi +++ b/qcom/monaco.dtsi @@ -34,6 +34,7 @@ device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x0>; + cpu-idle-states = <&CORE_PC>; enable-method = "psci"; d-cache-size = <0x8000>; i-cache-size = <0x8000>; @@ -58,6 +59,7 @@ device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x1>; + cpu-idle-states = <&CORE_PC>; enable-method = "psci"; d-cache-size = <0x8000>; i-cache-size = <0x8000>; @@ -77,6 +79,7 @@ device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x2>; + cpu-idle-states = <&CORE_PC>; enable-method = "psci"; d-cache-size = <0x8000>; i-cache-size = <0x8000>; @@ -96,6 +99,7 @@ device_type = "cpu"; compatible = "arm,armv8"; reg = <0x0 0x3>; + cpu-idle-states = <&CORE_PC>; enable-method = "psci"; d-cache-size = <0x8000>; i-cache-size = <0x8000>; @@ -1119,6 +1123,7 @@ #include "monaco-stub-regulator.dtsi" #include "monaco-gdsc.dtsi" #include "monaco-qupv3.dtsi" +#include "monaco-pm.dtsi" &qupv3_se6_2uart { status = "ok"; From 8f715870f7d1dfbbd45c9731f971bff36c9d7b96 Mon Sep 17 00:00:00 2001 From: Raghavendra Kakarla Date: Thu, 26 Nov 2020 14:14:02 +0530 Subject: [PATCH 2/3] ARM: dts: msm: Add system_pm_rpm node for Monaco Add System_pm_rpm node. Change-Id: Iff0c7996c654770d186351c3530cb0a207eebe9a --- qcom/monaco.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qcom/monaco.dtsi b/qcom/monaco.dtsi index f34adb3d7534..9122227a77af 100644 --- a/qcom/monaco.dtsi +++ b/qcom/monaco.dtsi @@ -1115,6 +1115,10 @@ vote = <43>; }; }; + + system_pm_rpm { + compatible = "qcom,system-pm-rpm"; + }; }; #include "monaco-pinctrl.dtsi" From e9e928e0116154611e93bc2bcb95693b23b3a373 Mon Sep 17 00:00:00 2001 From: Raghavendra Kakarla Date: Thu, 3 Dec 2020 16:56:38 +0530 Subject: [PATCH 3/3] ARM: dts: msm: Add wakeup interrupt controller for Monaco Add wakeup interrupt controller node to support wakeup capabale interrupts and add mpm as wakeup parent for TLMM. Change-Id: Icfdf050510d0102e1906a3848557e7dd806425ad --- bindings/interrupt-controller/qcom,mpm.txt | 1 + qcom/monaco-pinctrl.dtsi | 1 + qcom/monaco.dtsi | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/bindings/interrupt-controller/qcom,mpm.txt b/bindings/interrupt-controller/qcom,mpm.txt index b998c94d89f1..2b4beeeb7a37 100644 --- a/bindings/interrupt-controller/qcom,mpm.txt +++ b/bindings/interrupt-controller/qcom,mpm.txt @@ -26,6 +26,7 @@ Properties: "qcom,mpm-gic-holi" "qcom,mpm-gic-scuba" "qcom,mpm-gic-sdxnightjar" + "qcom,mpm-gic-monaco" - interrupts: Usage: required diff --git a/qcom/monaco-pinctrl.dtsi b/qcom/monaco-pinctrl.dtsi index 6961c9d6e4e4..fc3bff370d59 100644 --- a/qcom/monaco-pinctrl.dtsi +++ b/qcom/monaco-pinctrl.dtsi @@ -7,6 +7,7 @@ #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; + wakeup-parent = <&wakegic>; qupv3_se6_2uart_pins: qupv3_se6_2uart_pins { qupv3_se6_2uart_active: qupv3_se6_2uart_active { diff --git a/qcom/monaco.dtsi b/qcom/monaco.dtsi index 9122227a77af..90685c5413d1 100644 --- a/qcom/monaco.dtsi +++ b/qcom/monaco.dtsi @@ -1119,6 +1119,18 @@ system_pm_rpm { compatible = "qcom,system-pm-rpm"; }; + + wakegic: wake-gic { + compatible = "qcom,mpm-gic-monaco", "qcom,mpm"; + interrupts = ; + reg = <0x45f01b8 0x1000>, + <0xf111008 0x4>; + reg-names = "vmpm", "ipc"; + qcom,num-mpm-irqs = <96>; + interrupt-controller; + interrupt-parent = <&intc>; + #interrupt-cells = <2>; + }; }; #include "monaco-pinctrl.dtsi"