Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc34db6a authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: Add rpm-smd node for bengal"

parents 966f576f 9f31fb0d
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
Resource Power Manager(RPM)

RPM is a dedicated hardware engine for managing shared SoC resources,
which includes buses, clocks, power rails, etc.  The goal of RPM is
to achieve the maximum power savings while satisfying the SoC's
operational and performance requirements.  RPM accepts resource
requests from multiple RPM masters.  It arbitrates and aggregates
the requests, and configures the shared resources. The RPM masters
are the application processor, the modem processor, as well as hardware
accelerators. The RPM driver communicates with the hardware engine using
SMD.

The devicetree representation of the RPM block should be:

Required properties

- compatible: "qcom,rpm-smd"
- rpm-channel-name: The string corresponding to the channel name of the
			peripheral subsystem. Required for both smd and
			glink transports.
- rpm-channel-type: The interal SMD edge for this subsystem found in
			<soc/qcom/smd.h>
- interrupts: The IRQ used by remote processor to inform APSS about
				reception of response message packet.

Optional properties
- rpm-standalone: Allow RPM driver to run in standalone mode irrespective of RPM
			channel presence.
- reg: Contains the memory address at which rpm messaging format version is
  stored. If this field is not present, the target only supports v0 format.

Example:

	qcom,rpm-smd {
		compatible = "qcom,rpm-smd";
		interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
		qcom,rpm-channel-name = "rpm_requests";
		qcom,rpm-channel-type = 15; /* APPS_RPM_SMD */
	}
}
+47 −0
Original line number Diff line number Diff line
* RPM Stats

RPM maintains a counter of the masters i.e APPS, MPPS etc
number of times the SoC entered a deeper sleep mode involving
lowering or powering down the backbone rails - Cx and Mx and
the oscillator clock, XO.

PROPERTIES

- compatible:
	Usage: required
	Value type: <string>
	Definition: Should be "qcom,rpm-master-stats".

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: The address on the RPM RAM from where the stats are read
	            should be provided as "phys_addr_base". The offset
		    from which the stats are available should be provided as
		    "offset_addr".

- reg-names:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: Provides labels for the reg property.

- qcom,masters:
	Usage: required
	Value tye: <string list>
	Defination: Provides the masters list.

qcom,master-offset:
	Usage: required
	Value tye: <prop-encoded-array>
	Defination: Provides the masters list

EXAMPLE:

qcom,rpm-master-stats@60150 {
		compatible = "qcom,rpm-master-stats";
		reg = <0x45f0150 0x5000>;
		qcom,masters = "APSS", "MPSS", "ADSP", "CDSP", "TZ";
		qcom,master-stats-version = <2>;
		qcom,master-offset = <4096>;
	};

qcom/bengal-pm.dtsi

0 → 100644
+190 −0
Original line number Diff line number Diff line
&soc {
	qcom,lpm-levels {
		compatible = "qcom,lpm-levels";
		qcom,use-psci;
		#address-cells = <1>;
		#size-cells = <0>;
		qcom,pm-cluster@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;
			label = "system";
			qcom,spm-device-names = "cci";
			qcom,psci-mode-shift = <8>;
			qcom,psci-mode-mask = <0xf>;

			qcom,pm-cluster-level@0 {
				reg = <0>;
				label = "system-wfi";
				qcom,psci-mode = <0x0>;
				qcom,entry-latency-us = <640>;
				qcom,exit-latency-us = <1654>;
				qcom,min-residency-us = <2294>;
			};

			qcom,pm-cluster-level@1 { /* E3 */
				reg = <1>;
				label = "system-pc";
				qcom,psci-mode = <0x3>;
				qcom,entry-latency-us = <10831>;
				qcom,exit-latency-us = <4506>;
				qcom,min-residency-us = <15338>;
				qcom,min-child-idx = <2>;
				qcom,notify-rpm;
				qcom,is-reset;
			};

			qcom,pm-cluster@0 {
				reg = <0>;
				#address-cells = <1>;
				#size-cells = <0>;
				label = "pwr";
				qcom,spm-device-names = "l2";
				qcom,psci-mode-shift = <4>;
				qcom,psci-mode-mask = <0xf>;

				qcom,pm-cluster-level@0 { /* D1 */
					reg = <0>;
					label = "pwr-l2-wfi";
					qcom,psci-mode = <0x1>;
					qcom,entry-latency-us = <38>;
					qcom,exit-latency-us = <51>;
					qcom,min-residency-us = <89>;
				};

				qcom,pm-cluster-level@1 { /* D3G */
					reg = <1>;
					label = "pwr-l2-gdhs";
					qcom,psci-mode = <0x2>;
					qcom,entry-latency-us = <360>;
					qcom,exit-latency-us = <421>;
					qcom,min-residency-us = <782>;
					qcom,min-child-idx = <1>;
				};

				qcom,pm-cluster-level@2 { /* D3 */
					reg = <2>;
					label = "pwr-l2-pc";
					qcom,psci-mode = <0x4>;
					qcom,entry-latency-us = <800>;
					qcom,exit-latency-us = <2118>;
					qcom,min-residency-us = <7376>;
					qcom,min-child-idx = <1>;
					qcom,is-reset;
				};

				qcom,pm-cpu {
					#address-cells = <1>;
					#size-cells = <0>;
					qcom,psci-mode-shift = <0>;
					qcom,psci-mode-mask = <0xf>;
					qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3>;

					qcom,pm-cpu-level@0 { /* C1 */
						reg = <0>;
						label = "wfi";
						qcom,psci-cpu-mode = <0x1>;
						qcom,entry-latency-us = <49>;
						qcom,exit-latency-us = <42>;
						qcom,min-residency-us = <91>;
					};

					qcom,pm-cpu-level@1 {  /* C3 */
						reg = <1>;
						label = "pc";
						qcom,psci-cpu-mode = <0x3>;
						qcom,entry-latency-us = <290>;
						qcom,exit-latency-us = <376>;
						qcom,min-residency-us = <1182>;
						qcom,is-reset;
						qcom,use-broadcast-timer;
					};
				};
			};

			qcom,pm-cluster@1 {
				reg = <1>;
				#address-cells = <1>;
				#size-cells = <0>;
				label = "perf";
				qcom,spm-device-names = "l2";
				qcom,psci-mode-shift = <4>;
				qcom,psci-mode-mask = <0xf>;

				qcom,pm-cluster-level@0 {  /* D1 */
					reg = <0>;
					label = "perf-l2-wfi";
					qcom,psci-mode = <0x1>;
					qcom,entry-latency-us = <38>;
					qcom,exit-latency-us = <51>;
					qcom,min-residency-us = <89>;
				};

				qcom,pm-cluster-level@1 { /* D3G*/
					reg = <1>;
					label = "perf-l2-gdhs";
					qcom,psci-mode = <2>;
					qcom,entry-latency-us = <314>;
					qcom,exit-latency-us = <345>;
					qcom,min-residency-us = <660>;
					qcom,min-child-idx = <1>;
				};

				qcom,pm-cluster-level@2 { /* D3 */
					reg = <2>;
					label = "perf-l2-pc";
					qcom,psci-mode = <0x4>;
					qcom,entry-latency-us = <640>;
					qcom,exit-latency-us = <1654>;
					qcom,min-residency-us = <8094>;
					qcom,min-child-idx = <1>;
					qcom,is-reset;
				};

				qcom,pm-cpu {
					#address-cells = <1>;
					#size-cells = <0>;
					qcom,psci-mode-shift = <0>;
					qcom,psci-mode-mask = <0xf>;
					qcom,cpu = <&CPU4 &CPU5 &CPU6 &CPU7>;

					qcom,pm-cpu-level@0 { /* C1 */
						reg = <0>;
						label = "wfi";
						qcom,psci-cpu-mode = <0x1>;
						qcom,entry-latency-us = <29>;
						qcom,exit-latency-us = <39>;
						qcom,min-residency-us = <68>;
					};

					qcom,pm-cpu-level@1 { /* C3 */
						reg = <1>;
						label = "pc";
						qcom,psci-cpu-mode = <0x3>;
						qcom,entry-latency-us = <297>;
						qcom,exit-latency-us = <324>;
						qcom,min-residency-us = <1110>;
						qcom,is-reset;
						qcom,use-broadcast-timer;
					};
				};
			};
		};
	};

	qcom,rpm-stats@4600000 {
		compatible = "qcom,rpm-stats";
		reg = <0x04600000 0x1000>,
		      <0x04690014 0x4>;
		reg-names = "phys_addr_base", "offset_addr";
		qcom,sleep-stats-version = <2>;
	};

	qcom,rpm-master-stats@45f0150 {
		compatible = "qcom,rpm-master-stats";
		reg = <0x45f0150 0x5000>;
		qcom,masters = "APSS", "MPSS", "ADSP", "CDSP", "TZ";
		qcom,master-stats-version = <2>;
		qcom,master-offset = <4096>;
	};
};
+8 −0
Original line number Diff line number Diff line
@@ -659,6 +659,13 @@
		qcom,scandump-sizes = <0x40000>;
	};

	rpm_bus: qcom,rpm-smd {
		compatible = "qcom,rpm-smd";
		rpm-channel-name = "rpm_requests";
		interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
		rpm-channel-type = <15>; /* SMD_APPS_RPM */
	};

	qcom,chd_silver {
		compatible = "qcom,core-hang-detect";
		label = "silver";
@@ -1437,6 +1444,7 @@

#include "msm-arm-smmu-bengal.dtsi"
#include "bengal-regulator.dtsi"
#include "bengal-pm.dtsi"
#include "bengal-pinctrl.dtsi"
#include "bengal-qupv3.dtsi"
#include "bengal-gpu.dtsi"