linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephan Gerhold <stephan@gerhold.net>
To: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Andy Gross <agross@kernel.org>,
	linux-arm-msm@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	~postmarketos/upstreaming@lists.sr.ht,
	phone-devel@vger.kernel.org,
	Stephan Gerhold <stephan@gerhold.net>
Subject: [PATCH 13/15] arm64: dts: qcom: msm8916: Add CPU ACC and SAW/SPM
Date: Tue, 28 Sep 2021 19:12:29 +0200	[thread overview]
Message-ID: <20210928171231.12766-14-stephan@gerhold.net> (raw)
In-Reply-To: <20210928171231.12766-1-stephan@gerhold.net>

Add the device tree nodes necessary for SMP bring-up and cpuidle
without PSCI on ARM32. The hardware is typically controlled by the
PSCI implementation in the TrustZone firmware and is therefore marked
as status = "reserved" by default (from the device tree specification):

  "Indicates that the device is operational, but should not be used.
   Typically this is used for devices that are controlled by another
   software component, such as platform firmware."

Since this is part of the MSM8916 SoC it should be added to msm8916.dtsi
but in practice these nodes should only get enabled via an extra include
on ARM32.

This is necessary for some devices with outdated (signed) firmware
which is missing both PSCI and ARM64 support and can therefore only
boot ARM32 kernels.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
---
 arch/arm64/boot/dts/qcom/msm8916.dtsi | 56 +++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index 6b06b387b021..3e7e5c9e6f1b 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -124,6 +124,8 @@ CPU0: cpu@0 {
 			#cooling-cells = <2>;
 			power-domains = <&CPU_PD0>;
 			power-domain-names = "psci";
+			qcom,acc = <&cpu0_acc>;
+			qcom,saw = <&cpu0_saw>;
 		};
 
 		CPU1: cpu@1 {
@@ -137,6 +139,8 @@ CPU1: cpu@1 {
 			#cooling-cells = <2>;
 			power-domains = <&CPU_PD1>;
 			power-domain-names = "psci";
+			qcom,acc = <&cpu1_acc>;
+			qcom,saw = <&cpu1_saw>;
 		};
 
 		CPU2: cpu@2 {
@@ -150,6 +154,8 @@ CPU2: cpu@2 {
 			#cooling-cells = <2>;
 			power-domains = <&CPU_PD2>;
 			power-domain-names = "psci";
+			qcom,acc = <&cpu2_acc>;
+			qcom,saw = <&cpu2_saw>;
 		};
 
 		CPU3: cpu@3 {
@@ -163,6 +169,8 @@ CPU3: cpu@3 {
 			#cooling-cells = <2>;
 			power-domains = <&CPU_PD3>;
 			power-domain-names = "psci";
+			qcom,acc = <&cpu3_acc>;
+			qcom,saw = <&cpu3_saw>;
 		};
 
 		L2_0: l2-cache {
@@ -1877,6 +1885,54 @@ frame@b028000 {
 				status = "disabled";
 			};
 		};
+
+		cpu0_acc: power-manager@b088000 {
+			compatible = "qcom,msm8916-acc";
+			reg = <0x0b088000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
+
+		cpu0_saw: power-manager@b089000 {
+			compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
+			reg = <0x0b089000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
+
+		cpu1_acc: power-manager@b098000 {
+			compatible = "qcom,msm8916-acc";
+			reg = <0x0b098000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
+
+		cpu1_saw: power-manager@b099000 {
+			compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
+			reg = <0x0b099000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
+
+		cpu2_acc: power-manager@b0a8000 {
+			compatible = "qcom,msm8916-acc";
+			reg = <0x0b0a8000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
+
+		cpu2_saw: power-manager@b0a9000 {
+			compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
+			reg = <0x0b0a9000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
+
+		cpu3_acc: power-manager@b0b8000 {
+			compatible = "qcom,msm8916-acc";
+			reg = <0x0b0b8000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
+
+		cpu3_saw: power-manager@b0b9000 {
+			compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
+			reg = <0x0b0b9000 0x1000>;
+			status = "reserved"; /* Controlled by PSCI firmware */
+		};
 	};
 
 	thermal-zones {
-- 
2.33.0


  parent reply	other threads:[~2021-09-28 17:21 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-28 17:12 [PATCH 00/15] Add support for Samsung Galaxy S4 Mini Value Edition Stephan Gerhold
2021-09-28 17:12 ` [PATCH 01/15] arm64: dts: qcom: Add device tree " Stephan Gerhold
2021-09-28 17:12 ` [PATCH 02/15] arm64: dts: qcom: msm8916-samsung-serranove: Add touch screen Stephan Gerhold
2021-09-28 17:12 ` [PATCH 03/15] arm64: dts: qcom: msm8916-samsung-serranove: Add touch key Stephan Gerhold
2021-09-28 17:12 ` [PATCH 04/15] arm64: dts: qcom: msm8916-samsung-serranove: Add IMU Stephan Gerhold
2021-09-28 17:12 ` [PATCH 05/15] arm64: dts: qcom: msm8916-samsung-serranove: Add rt5033 battery Stephan Gerhold
2021-09-28 17:12 ` [PATCH 06/15] arm64: dts: qcom: msm8916-samsung-serranove: Add NFC Stephan Gerhold
2021-09-28 17:12 ` [PATCH 07/15] ARM: qcom: Add ARCH_MSM8916 for MSM8916 on ARM32 Stephan Gerhold
2021-09-28 17:12 ` [PATCH 08/15] dt-bindings: arm: cpus: Document qcom,msm8916-smp enable-method Stephan Gerhold
2021-10-04 18:34   ` Rob Herring
2021-10-04 18:37     ` Rob Herring
2021-10-04 20:56       ` Stephan Gerhold
2021-09-28 17:12 ` [PATCH 09/15] ARM: qcom: Add qcom,msm8916-smp enable-method identical to MSM8226 Stephan Gerhold
2021-09-28 17:12 ` [PATCH 10/15] dt-bindings: soc: qcom: spm: Document qcom,msm8916-saw2-v3.0-cpu Stephan Gerhold
2021-10-04 18:38   ` Rob Herring
2021-09-28 17:12 ` [PATCH 11/15] soc: qcom: spm: Add 8916 SPM register data Stephan Gerhold
2021-09-28 17:12 ` [PATCH 12/15] firmware: qcom: scm: Add support for MC boot address API Stephan Gerhold
2021-09-28 17:12 ` Stephan Gerhold [this message]
2021-09-28 17:12 ` [PATCH 14/15] ARM: dts: qcom: msm8916: Add include for SMP without PSCI on ARM32 Stephan Gerhold
2021-09-28 17:12 ` [PATCH 15/15] ARM: dts: qcom: msm8916-samsung-serranove: Include dts from arm64 Stephan Gerhold

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210928171231.12766-14-stephan@gerhold.net \
    --to=stephan@gerhold.net \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=phone-devel@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=~postmarketos/upstreaming@lists.sr.ht \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).