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

Commit e24dcc0d authored by Archana Sathyakumar's avatar Archana Sathyakumar
Browse files

lpm-levels: Add reset property for cluster notifications



Add information on which cluster low power mode causing reset of that
cluster level. This data will be used to send out pm notifications.

Change-Id: I4eb4f3cacb590bbc1110770d422dfbfe67bb338a
Signed-off-by: default avatarArchana Sathyakumar <asathyak@codeaurora.org>
parent 1aa24ca3
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -87,6 +87,9 @@ Required properties:
	is defined at the lpm-levels root node.
	- qcom,psci-mode: ID to be passed into the PSCI firmware. Required
	only if qcom,use-psci is defined at the lpm-levels root node.
	- qcom,is-reset: This boolean property will tell whether
	cluster level need power management notifications to be sent out
	or not for the drivers to prepare for cluster collapse.

[Node bindings for qcom,pm-cpu]
qcom,pm-cpu contains the low power modes that a cpu could enter. Currently it
@@ -114,17 +117,17 @@ qcom,pm-cpu-levels.
	power collapse and the cpu relies on Broadcast timer for scheduled
	wakeups. Required only for states where the CPUs internal timer state
	is lost.
	- qcom,cpu-is-reset: This boolean property map to "power state" bit in
	PSCI state_id configuration. This property will tell whether CPU get
	reset for a particular LPM are not.

 Optional properties:
	- qcom,psci-mode-shift: Same as cluster level fields.
	- qcom,psci-mode-mask: Same as cluster level fields.
	- qcom,psci-cpu-mode: ID to be passed into PSCI firmware.
	- qcom,cpu-is-reset: Whether CPU get reset are not.
	- qcom,jtag-save-restore: A boolean specifying jtag registers save and restore
	required are not.
	- qcom,is-reset: This boolean property maps to "power state" bit in PSCI
	state_id configuration. This property will tell whether CPU get reset for
	a particular LPM or not. This property will also be used to notify the
	drivers in case of cpu reset.

[Example dts]

+2 −2
Original line number Diff line number Diff line
@@ -444,6 +444,7 @@ static int parse_cluster_level(struct device_node *node,
		if (ret)
			goto failed;

		level->is_reset = of_property_read_bool(node, "qcom,is-reset");
	} else if (!cluster->no_saw_devices) {
		key  = "no saw-devices";

@@ -648,8 +649,7 @@ static int parse_cpu_levels(struct device_node *node, struct lpm_cluster *c)
		key = "qcom,use-broadcast-timer";
		l->use_bc_timer = of_property_read_bool(n, key);

		key = "qcom,cpu-is-reset";
		l->is_reset = of_property_read_bool(n, key);
		l->is_reset = of_property_read_bool(n, "qcom,is-reset");

		key = "qcom,jtag-save-restore";
		l->jtag_save_restore = of_property_read_bool(n, key);