mirror of
https://github.com/Evolution-X-Devices/kernel_xiaomi_sm8450-devicetrees
synced 2026-02-01 04:59:05 +00:00
ARM: dts: msm: Add power management devices for sdxlemur
Add RSC, System PM, LPM, RPMH master stats, SoC sleep stats, PDC device bindings for sdxlemur. Change-Id: I91ea2dd7accd5098e719c35d6b81dbf65a7045d6
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&intc>;
|
||||
#interrupt-cells = <2>;
|
||||
wakeup-parent = <&pdc>;
|
||||
|
||||
uart3_console_active: uart3_console_active {
|
||||
mux {
|
||||
|
||||
104
qcom/sdxlemur-pm.dtsi
Normal file
104
qcom/sdxlemur-pm.dtsi
Normal file
@@ -0,0 +1,104 @@
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
&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>;
|
||||
};
|
||||
|
||||
};
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interconnect/qcom,sdxlemur.h>
|
||||
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
|
||||
|
||||
/ {
|
||||
#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 = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
||||
qcom,tcs-offset = <0xd00>;
|
||||
qcom,drv-id = <1>;
|
||||
qcom,tcs-config = <ACTIVE_TCS 2>,
|
||||
<SLEEP_TCS 2>,
|
||||
<WAKE_TCS 2>,
|
||||
<CONTROL_TCS 1>;
|
||||
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user