diff --git a/qcom/sdxlemur-pinctrl.dtsi b/qcom/sdxlemur-pinctrl.dtsi index 044d4d3a..30f42d91 100644 --- a/qcom/sdxlemur-pinctrl.dtsi +++ b/qcom/sdxlemur-pinctrl.dtsi @@ -12,6 +12,7 @@ interrupt-controller; interrupt-parent = <&intc>; #interrupt-cells = <2>; + wakeup-parent = <&pdc>; uart3_console_active: uart3_console_active { mux { diff --git a/qcom/sdxlemur-pm.dtsi b/qcom/sdxlemur-pm.dtsi new file mode 100644 index 00000000..e894acf7 --- /dev/null +++ b/qcom/sdxlemur-pm.dtsi @@ -0,0 +1,104 @@ +#include + +&soc { + qcom,lpm-levels { + compatible = "qcom,lpm-levels"; + #address-cells = <1>; + #size-cells = <0>; + + qcom,pm-cluster@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + idle-state-name = "system"; + qcom,psci-mode-shift = <0>; + qcom,psci-mode-mask = <0xf>; + + CX_ACTIVE: qcom,pm-cluster-level@0 { + reg = <0>; + idle-state-name = "cx-active"; + compatible = "arm,idle-state"; + qcom,psci-mode = <0>; + arm,psci-suspend-param = <0x40000004>; + entry-latency-us = <120>; + exit-latency-us = <150>; + min-residency-us = <6488>; + }; + + CX_MIN: qcom,pm-cluster-level@1 {/* C8=>XO off in f/w */ + reg = <1>; + idle-state-name = "cx-min"; + compatible = "arm,idle-state"; + qcom,psci-mode = <0x4>; + arm,psci-suspend-param = <0x40000008>; + entry-latency-us = <140>; + exit-latency-us = <200>; + min-residency-us = <8000>; + local-timer-stop; + qcom,min-child-idx = <2>; + qcom,notify-rpm; + qcom,is-reset; + }; + + qcom,pm-cpu@0 { + #address-cells = <1>; + #size-cells = <0>; + qcom,psci-mode-shift = <0>; + qcom,psci-mode-mask = <0xf>; + qcom,disable-ipi-prediction; + qcom,cpu = <&CPU0>; + + qcom,pm-cpu-level@0 { + reg = <0>; + idle-state-name = "wfi"; + compatible = "arm,idle-state"; + qcom,psci-cpu-mode = <0x1>; + arm,psci-suspend-param = <0x1>; + entry-latency-us = <57>; + exit-latency-us = <43>; + min-residency-us = <83>; + }; + + A7_SPC: qcom,pm-cpu-level@1 {/* C3 */ + reg = <1>; + idle-state-name ="standalone-pc"; + compatible = "arm,idle-state"; + qcom,psci-cpu-mode = <0x3>; + arm,psci-suspend-param = <0x40000003>; + entry-latency-us = <120>; + exit-latency-us = <120>; + min-residency-us = <4488>; + local-timer-stop; + qcom,use-broadcast-timer; + qcom,is-reset; + }; + + A7_PC: qcom,pm-cpu-level@2 { /* C4 */ + reg = <2>; + idle-state-name = "pc"; + compatible = "arm,idle-state"; + qcom,psci-cpu-mode = <0x4>; + arm,psci-suspend-param = <0x40000004>; + entry-latency-us = <120>; + exit-latency-us = <150>; + min-residency-us = <6488>; + local-timer-stop; + qcom,use-broadcast-timer; + qcom,is-reset; + }; + + }; + }; + }; + + rpmh-master-stats@b211200 { + compatible = "qcom,rpmh-master-stats-v1"; + reg = <0xb211200 0x60>; + }; + + soc-sleep-stats@C370000 { + compatible = "qcom,rpmh-sleep-stats"; + reg = <0xc370000 0x400>; + }; + +}; diff --git a/qcom/sdxlemur.dtsi b/qcom/sdxlemur.dtsi index fd604562..0a796401 100644 --- a/qcom/sdxlemur.dtsi +++ b/qcom/sdxlemur.dtsi @@ -4,6 +4,7 @@ #include #include #include +#include / { #address-cells = <1>; @@ -25,6 +26,12 @@ #size-cells = <1>; ranges; + cmd_db: reserved-memory@8fe20000 { + compatible = "qcom,cmd-db"; + no-map; + reg = <0x8fe20000 0x20000>; + }; + peripheral2_mem: peripheral2_region@8fd00000 { no-map; reg = <0x8fd00000 0x140000>; @@ -46,6 +53,8 @@ device_type = "cpu"; compatible = "arm,cortex-a7"; reg = <0x0>; + enable-method = "psci"; + cpu-idle-states = <&A7_SPC &A7_PC &CX_MIN>; }; }; @@ -274,6 +283,35 @@ #reset-cells = <1>; }; + apps_rsc: rsc@17830000 { + label = "apps_rsc"; + compatible = "qcom,rpmh-rsc"; + reg = <0x17830000 0x10000>, + <0x17840000 0x10000>; + reg-names = "drv-0", "drv-1"; + interrupts = , + ; + qcom,tcs-offset = <0xd00>; + qcom,drv-id = <1>; + qcom,tcs-config = , + , + , + ; + + system_pm { + compatible = "qcom,system-pm"; + }; + }; + + pdc: interrupt-controller@b210000 { + compatible = "qcom,sdxlemur-pdc"; + reg = <0xb210000 0x30000>; + qcom,pdc-ranges = <0 147 52>, <52 266 32>; + #interrupt-cells = <3>; + interrupt-parent = <&intc>; + interrupt-controller; + }; + /* GCC GDSCs */ gcc_pcie_gdsc: qcom,gdsc@143004 { compatible = "regulator-fixed"; @@ -470,3 +508,4 @@ #include "sdxlemur-pinctrl.dtsi" #include "sdxlemur-stub-regulator.dtsi" #include "sdxlemur-usb.dtsi" +#include "sdxlemur-pm.dtsi"